라벨 측정항목

Google Distributed Cloud(GDC) 에어 갭 어플라이언스의 MonitoringTarget 커스텀 리소스를 사용하면 스크래핑된 측정항목에 라벨을 지정하여 측정항목 특성을 구분하고 시계열 데이터를 필터링할 수 있습니다. 측정항목 수집 외에도 라벨 재지정 규칙을 구성하여 측정항목을 다른 프로젝트로 라우팅하거나, 커스텀 키-값 라벨을 추가하거나, 수집 전에 측정항목 이름을 바꿀 수 있습니다.

키-값 라벨 쌍의 고유한 조합마다 새 시계열이 생성되므로 데이터 스토리지가 크게 증가할 수 있습니다. 사용자 ID 또는 이메일 주소와 같이 가능한 값이 많은 카디널리티가 높은 측정기준에는 라벨을 사용하지 마세요. 측정항목 라벨 재지정에 대한 자세한 내용은 Prometheus에서 라벨 재지정 작동 방식을 참조하세요.

시작하기 전에

MonitoringTarget 커스텀 리소스를 관리하려면 관리자에게 필요한 권한을 요청하세요.

필요한 IAM 역할

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

  • MonitoringTarget 생성자(monitoringtarget-creator): 프로젝트 네임스페이스에 MonitoringTarget 커스텀 리소스를 만듭니다.
  • 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)으로 처리되고 새 이름으로 대체됩니다.

다음 코드 샘플은 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 정의 파일의 이름입니다.