라벨 측정항목

라벨을 사용하면 측정항목의 특성을 구분할 수 있습니다. 측정항목을 수집하는 것 외에도 MonitoringTarget 커스텀 리소스를 사용하면 선택적 관측 가능성 기능의 측정항목에 라벨을 지정할 수 있습니다.

측정항목 재라벨링에 대한 자세한 내용은 https://grafana.com/blog/2022/03/21/how-relabeling-in-prometheus-works/를 참고하세요.

시작하기 전에

MonitoringTarget 커스텀 리소스를 관리하려면 필요한 권한이 있어야 합니다.

IAM 조직 역할 요청

조직 IAM 관리자에게 문의하여 다음 역할을 요청하세요.

  • MonitoringTarget PA 생성자 (monitoringtarget-pa-creator): MonitoringTarget 커스텀 리소스를 만듭니다.
  • MonitoringTarget PA 편집자 (monitoringtarget-pa-editor): MonitoringTarget 커스텀 리소스를 수정합니다.
  • MonitoringTarget PA 뷰어 (monitoringtarget-pa-viewer~): viewMonitoringTarget` 커스텀 리소스를 봅니다.

IAM 프로젝트 역할 요청

프로젝트 IAM 관리자에게 문의하여 다음 역할을 요청하세요.

  • MonitoringTarget 편집자 (monitoringtarget-editor): 프로젝트 네임스페이스에서 MonitoringTarget 커스텀 리소스를 수정합니다.
  • MonitoringTarget 뷰어 (monitoringtarget-viewer): 프로젝트 네임스페이스에서 MonitoringTarget 커스텀 리소스를 봅니다.

측정항목을 다른 프로젝트로 전송

컨테이너 작성자는 소유하지 않은 프로젝트를 포함하여 다른 프로젝트로 전송할 특정 측정항목을 코딩할 수 있습니다. 특정 프로젝트로 측정항목을 전송하려면 코드의 측정항목에 _gdch_project 라벨을 추가하고 값을 대상 프로젝트 이름으로 설정합니다.

또는 MonitoringTarget 커스텀 리소스를 사용하여 수집된 모든 측정항목 데이터를 다른 프로젝트로 전송합니다. metricsRelabelings 필드에서 _gdch_project 라벨을 대상 라벨로 설정하고 새 프로젝트 이름을 대체 값으로 설정합니다.

다음 코드 샘플에서는 MonitoringTarget 커스텀 리소스에서 _gdch_project 대상 라벨을 설정하여 another-project-name이라는 프로젝트로 측정항목을 전송하는 방법을 보여줍니다.

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        targetLabel: _gdch_project
        replacement: another-project-name
      [...]

다음을 바꿉니다.

  • PROJECT_NAMESPACE: 프로젝트 네임스페이스입니다.
  • MONITORING_TARGET_NAME: MonitoringTarget 정의 파일의 이름입니다.

측정항목에 새 라벨 추가

라벨은 측정항목 특성을 식별하여 관측 가능성과 모니터링에 도움이 됩니다. 스크레이핑된 컨테이너가 처음에는 노출하지 않는 라벨을 추가할 수 있습니다. MonitoringTarget 커스텀 리소스에서 새 라벨을 타겟으로 설정하고 대체 값을 제공합니다. 이 키-값 쌍은 리소스가 수집하는 모든 측정항목에 추가됩니다.

다음 코드 샘플에서는 MonitoringTarget 커스텀 리소스에서 my_new_label 대상 라벨을 설정하고 값을 my_label_value로 구성하는 방법을 보여줍니다.

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        targetLabel: my_new_label
        replacement: my_label_value
      [...]

다음을 바꿉니다.

  • PROJECT_NAMESPACE: 프로젝트 네임스페이스입니다.
  • MONITORING_TARGET_NAME: MonitoringTarget 정의 파일의 이름입니다.

측정항목 이름 바꾸기

MonitoringTarget 리소스를 사용하여 컨테이너의 측정항목 이름을 바꿀 수 있습니다. metricsRelabelings 필드에서 원래 측정항목 이름과 대체 이름을 설정합니다. 원래 이름은 정규 표현식 (regex)으로 처리되며 새 이름으로 대체됩니다.

다음 코드 샘플에서는 cpu_usage 측정항목 이름 (정규 표현식)을 cpu_usage_new_name으로 바꾸는 방법을 보여줍니다.MonitoringTarget

apiVersion: monitoring.gdc.goog/v1
kind: MonitoringTarget
metadata:
  # Choose the same namespace as the workload pods.
  namespace: PROJECT_NAMESPACE
  name: MONITORING_TARGET_NAME
spec:
  [...]
  podMetricsEndpoints:
    [...]
    metricsRelabelings:
      - action: replace
        regex: cpu_usage
        replacement: cpu_usage_new_name
        sourceLabels: [__name__]
        targetLabel: __name__
      [...]

다음을 바꿉니다.

  • PROJECT_NAMESPACE: 프로젝트 네임스페이스입니다.
  • MONITORING_TARGET_NAME: MonitoringTarget 정의 파일의 이름입니다.