라벨 측정항목

라벨을 사용하면 측정항목의 특성을 구분할 수 있습니다. 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 커스텀 리소스를 사용하여 수집된 모든 측정항목 데이터를 다른 프로젝트로 전송합니다. _gdch_project 라벨을 metricsRelabelings 필드의 타겟 라벨로 설정하고 새 프로젝트 이름을 대체 값으로 설정합니다.

다음 코드 샘플은 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 커스텀 리소스에서 새 라벨을 타겟으로 설정하고 대체 값을 제공합니다. 이 키-값 쌍은 리소스가 수집하는 모든 측정항목에 추가됩니다.

다음 코드 샘플은 my_new_label 대상 라벨을 설정하고 MonitoringTarget 커스텀 리소스에서 값을 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)으로 처리되고 새 이름으로 대체됩니다.

다음 코드 샘플은 MonitoringTarget 커스텀 리소스에서 cpu_usage 측정항목 이름(정규식)을 cpu_usage_new_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
        regex: cpu_usage
        replacement: cpu_usage_new_name
        sourceLabels: [__name__]
        targetLabel: __name__
      [...]

다음을 바꿉니다.

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