Prometheus 측정항목 수집

이 문서에서는 Compute Engine에서 Prometheus 측정항목을 수집하기 위해 사용할 수 있는 운영 에이전트 측정항목 수신자의 구성과 사용 방법에 대해 설명합니다. 이 문서에서는 수신자를 시도하기 위해 사용할 수 있는 예시에 대해서도 설명합니다.

Google Kubernetes Engine 사용자는 지금까지 Google Cloud Managed Service for Prometheus를 사용하여 Prometheus 측정항목을 수집할 수 있었습니다. 운영 에이전트 Prometheus 수신자는 Compute Engine 사용자에게 동일한 기능을 제공합니다.

PromQL을 포함하여 Cloud Monitoring에서 제공하는 모든 도구를 사용하여 Prometheus 수신자에서 수집되는 데이터를 보고 분석할 수 있습니다. 예를 들어 Monitoring을 위한 Google Cloud 콘솔에 설명된 대로 측정항목 탐색기를 사용하여 데이터를 쿼리할 수 있습니다. 또한 Prometheus 측정항목을 모니터링하도록 Cloud Monitoring 대시보드알림 정책을 만들 수 있습니다. Prometheus 측정항목에 대한 쿼리 언어로는 PromQL을 사용하는 것이 좋습니다.

또한 Prometheus UIGrafana와 같이 Cloud Monitoring 외부 인터페이스에서 Prometheus 측정항목을 볼 수 있습니다.

올바른 수신자 선택

Prometheus 수신자를 사용하도록 결정하기 전에 사용 중인 애플리케이션에 대해 운영 에이전트 통합이 이미 있는지 확인합니다. 운영 에이전트와의 기존 통합에 대한 자세한 내용은 타사 애플리케이션 모니터링을 참조하세요. 기존 통합이 있으면 이를 사용하는 것이 좋습니다. 자세한 내용은 기존 통합 선택을 참조하세요.

다음 조건에 해당할 때는 운영 에이전트 Prometheus 수신자를 사용하는 것이 좋습니다.

  • Prometheus 사용 경험이 있고, Prometheus 표준을 따르고 있고, 스크래핑 간격 및 카디널리티와 같은 요소가 비용에 영향을 주는 방식을 이해하고 있습니다. 자세한 내용은 Prometheus 수신자 선택을 참조하세요.

  • 모니터링 중인 소프트웨어가 아직 기존 운영 에이전트 통합의 일부가 아닙니다.

기존 통합

운영 에이전트는 다양한 타사 애플리케이션에 대해 통합을 제공합니다. 이러한 통합은 다음을 제공합니다.

  • 애플리케이션에 대한 선택한 workload.googleapis.com 측정항목 집합
  • 측정항목을 시각화하기 위한 대시보드

기존 통합을 사용하여 수집되는 측정항목은 에이전트가 수집한 측정항목에 대한 바이트 기반 가격 책정에 따라 달라집니다. 측정항목의 개수와 유형은 이미 알려져 있으며, 이 정보를 사용하여 비용을 예측할 수 있습니다.

예를 들어 Apache 웹 서버(httpd) 통합을 사용 중이면 운영 에이전트가 5개의 스칼라 측정항목을 수집합니다. 각 데이터 포인트는 8바이트로 계산됩니다. 운영 에이전트의 기본 샘플링 빈도를 60초로 유지할 때 하루에 수집되는 바이트 수는 57,600에 호스트 수를 곱한 값입니다.

  • 8(바이트) * 1440(하루 중 분 단위 시간) * 5(측정항목) * n(호스트) 또는
  • 57,600 * n(호스트)

예상 비용에 대한 자세한 내용은 수집한 바이트 기반의 가격 책정 예시를 참조하세요.

Prometheus 수신자

운영 에이전트를 사용하여 Prometheus 측정항목을 수집하면 다음이 적용됩니다.

  • 애플리케이션에서 내보내는 측정항목의 개수와 카디널리티는 사용자가 제어할 수 있습니다. 선별된 측정항목 집합은 존재하지 않습니다. 수집하는 데이터 양은 Prometheus 애플리케이션 및 운영 에이전트 Prometheus 수신자의 구성에 따라 결정됩니다.

  • 측정항목은 Cloud Monitoring에 prometheus.googleapis.com 측정항목으로 수집됩니다. 이러한 측정항목은 Cloud Monitoring에 수집될 때 '커스텀' 측정항목 유형으로 분류되고 커스텀 측정항목에 대한 할당량 및 한도에 따라 달라집니다.

  • 수집하는 측정항목 집합과 비즈니스 요구에 따라 필요한 Cloud Monitoring 대시보드를 디자인하고 만들어야 합니다. 대시보드 만들기에 대한 자세한 내용은 대시보드 및 차트를 참조하세요.

  • 측정항목 수집에 대한 가격 책정은 수집된 샘플 수를 기준으로 합니다. Prometheus 수신자를 사용할 때 비용을 예측하려면 결제 주기 중에 수집하려는 샘플 수를 확인해야 합니다. 예상 값은 다음 요소를 기준으로 합니다.

    • 스칼라 측정항목의 개수. 각 값이 하나의 샘플에 해당합니다.
    • 분포 측정항목의 개수. 각 히스토그램이 (2 + 히스토그램의 버킷 수) 샘플로 계산됩니다.
    • 각 측정항목의 샘플링 빈도
    • 측정항목이 샘플링되는 호스트 수

    샘플 수 계산과 비용 예측에 대한 자세한 내용은 수집된 샘플 기반의 가격 책정 예시를 참조하세요.

기본 요건

Prometheus 수신자를 사용하여 Prometheus 측정항목을 수집하려면 운영 에이전트 버전 2.25.0 이상을 설치해야 합니다.

운영 에이전트에는 Prometheus 측정항목을 내보내는 엔드포인트가 필요합니다. 따라서 애플리케이션이 그러한 엔드포인트를 직접 제공하거나 Prometheus 라이브러리 또는 내보내기 도구를 사용하여 엔드포인트를 노출해야 합니다. Spring 및 DropWizard와 같은 많은 라이브러리 및 언어 프레임워크 또는 Prometheus 이외의 측정항목을 내보내는 StatsD, DogStatsD, Graphite와 같은 애플리케이션에서 Prometheus 클라이언트 라이브러리 또는 내보내기 도구를 사용하여 Prometheus 스타일의 측정항목을 내보낼 수 있습니다. 예를 들어 Prometheus 측정항목을 내보내려면 다음 안내를 따르세요.

직접 또는 라이브러리나 내보내기 도구를 사용하여 애플리케이션이 Prometheus 측정항목을 내보내는 경우 Prometheus 수신자로 구성된 운영 에이전트가 측정항목을 수집할 수 있습니다.

운영 에이전트 구성

운영 에이전트 구성 모델에는 일반적으로 다음 항목의 정의가 포함됩니다.

  • 수집되는 측정항목을 결정하는 수신자
  • 운영 에이전트의 측정항목 수집 방법을 설명하는 프로세서
  • 수신자 및 프로세서가 서비스에 하나로 연결하는 파이프라인

Prometheus 측정항목 수집 구성은 약간 다르며, 프로세서가 포함되지 않습니다.

Prometheus 측정항목 구성

Prometheus 측정항목 수집을 위한 운영 에이전트 구성은 다음과 같이 일반적인 구성과 다릅니다.

  • Prometheus 측정항목에 대해 운영 에이전트 프로세서를 만들지 않습니다. Prometheus 수신자는 라벨 재지정 옵션을 포함하여 Prometheus scrape_config 사양으로 지정된 거의 모든 구성 옵션을 지원합니다.

    운영 에이전트 프로세서를 사용하는 대신 Prometheus 수신자에 지정된 대로 스크래핑 구성의 relabel_configsmetric_relabel_configs 섹션을 사용하여 모든 측정항목 처리가 수행됩니다. 자세한 내용은 라벨 재지정: 스크래핑되는 데이터 수정을 참조하세요.

  • Prometheus 수신자로만 Prometheus 파이프라인을 정의합니다. 프로세서를 지정하지 않습니다. 또한 Prometheus 측정항목에 대한 파이프라인에서 Prometheus가 아닌 수신자를 사용할 수 없습니다.

수신자 구성의 대부분은 스크래핑 구성 옵션의 사양입니다. 다음은 Prometheus 수신자를 사용하는 운영 에이전트 구성의 구조를 보여주며, 간단한 설명을 위해 해당 옵션이 생략되어 있습니다. RECEIVER_IDPIPELINE_ID의 값을 지정합니다.

metrics:
  receivers:
    RECEIVER_ID:
      type: prometheus
      config:
        scrape_configs:
          [... omitted for brevity ...]

  service:
    pipelines:
      PIPELINE_ID:
        receivers: [RECEIVER_ID]

다음 섹션에서는 Prometheus 수신자에 대해 더 자세히 설명합니다. 수신자 및 파이프라인의 기능적인 예시는 운영 에이전트 수신자 및 파이프라인 추가를 참조하세요.

Prometheus 수신자

Prometheus 측정항목의 수신자를 지정하려면 prometheus 유형의 측정항목 수신자를 만들고 scrape_config 옵션 집합을 지정합니다. 수신자는 모든 Prometheus scrape_config 옵션을 지원하며, 다음 예외가 있습니다.

  • 서비스 검색 섹션 *_sd_config
  • honor_labels 설정

따라서 기존 스크래핑 구성을 복사하고 이를 거의 수정하지 않은 상태로 운영 에이전트에 사용할 수 있습니다.

Prometheus 수신자의 전체 구조는 다음을 참조하세요.

metrics:
  receivers:
    prom_application:
      type: prometheus
      config:
        scrape_configs:
          - job_name: 'STRING' # must be unique across all Prometheus receivers
              scrape_interval: # duration, like 10m or 15s
              scrape_timeout:  # duration, like 10m or 15s
              metrics_path: # resource path for metrics, default = /metrics
              honor_timestamps: # boolean, default = false
              scheme: # http or https, default = http
              params:
                - STRING: STRING
              basic_auth:
                username: STRING
                password: SECRET
                password_file: STRING
              authorization:
                type: STRING # default = Bearer
                credentials: SECRET
                credentials_file: FILENAME

              oauth2: OAUTH2 # See Prometheus oauth2
              follow_redirects: # boolean, default = true
              enable_http2: # boolean, default = true
              tls_config: TLS_CONFIG # See Prometheus tls_config
              proxy_url: STRING

              static_configs:
                STATIC_CONFIG # See Prometheus static_config
              relabel_configs:
                RELABEL_CONFIG # See Prometheus relabel_config
              metric_relabel_configs:
                METRIC_RELABEL_CONFIGS # See Prometheus metric_relabel_configs

라벨 재지정 구성의 예시는 추가 수신자 구성을 참조하세요.

예시: Prometheus의 운영 에이전트 구성

이 섹션에서는 애플리케이션에서 Prometheus 측정항목을 수집하도록 운영 에이전트를 구성하는 방법의 예시를 보여줍니다. 이 예시에서는 포트 7979로 Prometheus 측정항목을 노출하는 Prometheus 커뮤니티에서 제공된 JSON 내보내기 도구(json_exporter)가 사용됩니다.

예시 설정을 위해서는 다음 리소스를 설치해야 할 수 있습니다.

  • git
  • curl
  • make
  • python3
  • Go 언어, 버전 1.19 이상

애플리케이션 만들기 또는 구성

JSON 내보내기 도구를 가져오고 실행하려면 다음 절차를 따릅니다.

  1. json_exporter 저장소를 클론하고 다음 명령어를 실행하여 내보내기 도구를 체크아웃합니다.

    git clone https://github.com/prometheus-community/json_exporter.git
    
    cd json_exporter
    
    git checkout v0.5.0
    
  2. 다음 명령어를 실행하여 내보내기 도구를 빌드합니다.

    make build
    
  3. 다음 명령어를 실행하여 Python HTTP 서버를 시작합니다.

    python3 -m http.server 8000 &
    
  4. 다음 명령어를 실행하여 JSON 내보내기 도구를 시작합니다.

    ./json_exporter --config.file examples/config.yml &
    
  5. JSON 내보내기 도구를 쿼리하여 포트 7979에서 실행되고 노출되는지 확인합니다.

    curl "http://localhost:7979/probe?module=default&target=http://localhost:8000/examples/data.json"
    

    쿼리가 성공하면 다음과 비슷한 출력이 표시됩니다.

    # HELP example_global_value Example of a top-level global value scrape in the json
    # TYPE example_global_value untyped
    example_global_value{environment="beta",location="planet-mars"} 1234
    # HELP example_value_active Example of sub-level value scrapes from a json
    # TYPE example_value_active untyped
    example_value_active{environment="beta",id="id-A"} 1
    example_value_active{environment="beta",id="id-C"} 1
    # HELP example_value_boolean Example of sub-level value scrapes from a json
    # TYPE example_value_boolean untyped
    example_value_boolean{environment="beta",id="id-A"} 1
    example_value_boolean{environment="beta",id="id-C"} 0
    # HELP example_value_count Example of sub-level value scrapes from a json
    # TYPE example_value_count untyped
    example_value_count{environment="beta",id="id-A"} 1
    example_value_count{environment="beta",id="id-C"} 3
    

    이 출력에서 example_value_active와 같은 문자열은 라벨 및 값이 중괄호로 표시된 측정항목 이름입니다. 데이터 값은 라벨 집합을 따릅니다.

운영 에이전트 수신자 파이프라인 추가

JSON 내보내기 도구 애플리케이션에서 측정항목을 수집하도록 운영 에이전트를 구성하려면 Prometheus 수신자 및 파이프라인을 추가하도록 에이전트 구성을 수정해야 합니다. JSON 내보내기 도구 예시를 보려면 다음 절차를 수행합니다.

  1. 운영 에이전트 구성 파일 /etc/google-cloud-ops-agent/config.yaml을 수정하고 다음 Prometheus 수신자 및 파이프라인 항목을 추가합니다.

    metrics:
      receivers:
        prometheus:
            type: prometheus
            config:
              scrape_configs:
                - job_name: 'json_exporter'
                  scrape_interval: 10s
                  metrics_path: /probe
                  params:
                    module: [default]
                    target: [http://localhost:8000/examples/data.json]
                  static_configs:
                    - targets: ['localhost:7979']
      service:
        pipelines:
          prometheus_pipeline:
            receivers:
              - prometheus
     

    이 파일에 이미 다른 구성 항목이 있으면 Prometheus 수신자 및 파이프라인을 기존 metricsservice 항목에 추가합니다. 자세한 내용은 측정항목 구성을 참조하세요.

    수신자에서 라벨 재지정 구성의 예시는 추가 수신자 구성을 참조하세요.

운영 에이전트 다시 시작

구성 변경사항을 적용하려면 운영 에이전트를 다시 시작해야 합니다.

LINUX

  1. 에이전트를 다시 시작하려면 인스턴스에서 다음 명령어를 실행합니다.

    sudo service google-cloud-ops-agent restart
    
  2. 에이전트가 다시 시작되었는지 확인하려면 다음 명령어를 실행하고 '측정항목 에이전트' 및 'Logging 에이전트' 구성요소가 시작되었는지 확인합니다.

    sudo systemctl status google-cloud-ops-agent"*"
    

Windows

  1. RDP 또는 유사한 도구를 사용하여 인스턴스에 연결하고 Windows에 로그인합니다.

  2. PowerShell 아이콘을 마우스 오른쪽 버튼으로 클릭하고 관리자 권한으로 실행을 선택하여 관리자 권한이 있는 PowerShell 터미널을 엽니다.

  3. 에이전트를 다시 시작하려면 다음 PowerShell 명령어를 실행합니다.

    Restart-Service google-cloud-ops-agent -Force
    
  4. 에이전트가 다시 시작되었는지 확인하려면 다음 명령어를 실행하고 '측정항목 에이전트' 및 'Logging 에이전트' 구성요소가 시작되었는지 확인합니다.

    Get-Service google-cloud-ops-agent*
    

Cloud Monitoring의 Prometheus 측정항목

Prometheus 수신자에서 수집된 데이터에 Cloud Monitoring에서 제공되는 도구를 사용할 수 있습니다. 예를 들어 Monitoring을 위한 Google Cloud 콘솔에 설명된 대로 측정항목 탐색기를 사용하여 데이터를 차트로 작성할 수 있습니다. 다음 섹션에서는 측정항목 탐색기와 함께 Cloud Monitoring에서 사용할 수 있는 쿼리 도구에 대해 설명합니다.

측정항목에 대해 Cloud Monitoring 대시보드 및 알림 정책을 만들 수 있습니다. 대시보드 및 사용 가능한 차트 유형에 대한 자세한 내용은 대시보드 및 차트를 참조하세요. 알림 정책에 대한 자세한 내용은 알림 정책 사용을 참조하세요.

Prometheus UI 및 Grafana와 같은 다른 인터페이스에서 측정항목을 볼 수도 있습니다. 이러한 인터페이스 설정에 대한 자세한 내용은 Google Cloud Managed Service for Prometheus 문서에서 다음 섹션을 참조하세요.

PromQL 사용

PromQL은 Prometheus 수신자를 통해 수집된 측정항목에 권장되는 쿼리 언어입니다.

Prometheus 데이터 수집이 수행되는지 확인하는 가장 간단한 방법은 Google Cloud 콘솔에서 Cloud Monitoring 측정항목 탐색기 페이지를 사용하는 것입니다.

  1. Google Cloud 콘솔에서  측정항목 탐색기 페이지로 이동합니다.

    측정항목 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2. 쿼리 빌더 창의 툴바에서 이름이  MQL 또는  PromQL인 버튼을 선택합니다.

  3. PromQL 전환 버튼에 PromQL이 선택되어 있는지 확인합니다. 언어 전환 버튼은 쿼리 형식을 지정할 수 있는 동일한 툴바에 있습니다.

  4. 편집기에 다음 쿼리를 입력한 후 쿼리 실행을 클릭합니다.

    up
    

데이터가 수집되고 있는 경우 다음과 같은 차트가 표시됩니다.

json-exporter up 측정항목의 측정항목 탐색기 차트

JSON 내보내기 도구 예시를 실행하는 경우 다음과 같이 쿼리를 수행할 수도 있습니다.

  • 이름별로 내보낸 특정 측정항목에 대해 모든 데이터를 쿼리합니다. 예를 들면 다음과 같습니다.

    example_value_count
    

    다음은 JSON 내보내기 도구 애플리케이션으로 정의된 라벨과 운영 에이전트로 추가된 라벨을 포함하는 example_value_count에 대한 차트를 보여줍니다.

    json-exporter example_value_count 측정항목에 대한 측정항목 탐색기 차트

  • 특정 네임스페이스에서 시작된 내보낸 측정항목에 대한 쿼리 데이터. namespace 라벨의 값은 VM에 할당된 5671897148133813325와 같은 긴 숫자인 Compute Engine 인스턴스 ID입니다. 쿼리는 다음과 같이 표시됩니다.

    example_value_count{namespace="INSTANCE_ID"}
    
  • 특정 정규 표현식과 일치하는 쿼리 데이터. JSON 내보내기 도구는 id-A, id-B, id-C와 같은 값이 포함된 id 라벨을 사용하여 측정항목을 내보냅니다. 이 패턴과 일치하는 id 라벨을 사용하여 측정항목을 필터링하려면 다음 쿼리를 사용합니다.

    example_value_count{id=~"id.*"}
    

측정항목 탐색기와 Cloud Monitoring 차트에서 PromQL을 사용하는 방법에 대한 자세한 내용은 Cloud Monitoring의 PromQL을 참조하세요.

MQL 사용

Prometheus 데이터를 Cloud Monitoring 시계열로 확인하고 차트 및 대시보드를 만들려면 메뉴 기반 인터페이스 또는 MQL을 사용하면 됩니다. 다음은 측정항목 탐색기의 간단한 쿼리를 보여줍니다.

  1. Google Cloud 콘솔에서  측정항목 탐색기 페이지로 이동합니다.

    측정항목 탐색기로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2. 차트에 표시될 데이터를 지정합니다. 앞에서 설명한 PromQL 탭을 사용하는 것 외에 MQL을 사용할 수도 있습니다.

    • MQL을 사용하려면 다음 단계를 따르세요.

      1. 쿼리 빌더 창의 툴바에서 이름이  MQL 또는  PromQL인 버튼을 선택합니다.
      2. MQL 전환 버튼에 MQL이 선택되어 있는지 확인합니다. 언어 전환 버튼은 쿼리 형식을 지정할 수 있는 동일한 툴바에 있습니다.
      3. 다음 쿼리를 입력합니다.

        fetch prometheus_target::prometheus.googleapis.com/up/gauge
        
      4. 쿼리 실행을 클릭합니다.

    • 메뉴 기반 인터페이스를 사용하려면 다음을 수행합니다.

      1. 리소스 유형 필드에서 'prometheus'를 입력하여 목록을 필터링한 후 Prometheus 대상을 선택합니다.

      2. 측정항목 필드에서 'up/'을 입력하여 목록을 필터링한 후 prometheus/up/gauge를 선택합니다.

이러한 쿼리의 결과로 생성된 차트에는 PromQL 예시로 표시된 차트와 동일한 데이터가 표시됩니다.

prometheus_target 리소스

Cloud Monitoring에서는 시계열 데이터가 모니터링되는 리소스 유형에 따라 작성됩니다. Prometheus 측정항목의 경우 모니터링되는 리소스 유형은 prometheus_target입니다. PromQL로 작성되지 않은 Prometheus 측정항목의 모니터링 쿼리는 이 리소스 유형을 지정해야 합니다.

prometheus_target 리소스에는 쿼리된 데이터 필터링 및 조작에 사용할 수 있는 다음 라벨이 있습니다.

  • project_id: my-project와 같이 운영 에이전트가 실행 중인 Google Cloud 프로젝트의 식별자입니다.
  • location: 운영 에이전트가 실행 중인 Google Cloud 또는 AWS 리전입니다. 예를 들면 us-east1-a(Google Cloud) 또는 aws:us-east-1a(AWS)입니다.
  • cluster: 운영 에이전트를 사용하여 수집된 Prometheus 측정항목의 경우 항상 __gce__입니다.
  • namespace: 운영 에이전트가 실행 중인 VM의 Compute Engine 인스턴스 ID입니다.
  • job: 수신자 구성의 job_name 필드 값입니다.
  • instance: 수신자 구성에서 가져온 Prometheus 대상의 인스턴스 라벨입니다. 기본값은 대상입니다.

이러한 라벨의 값은 수집 중에 설정됩니다. namespace, location, cluster 라벨의 값은 변경할 수 없습니다. 애플리케이션에서 스크래핑된 측정항목에도 이러한 라벨이 포함된 경우 운영 에이전트가 스크래핑된 라벨에 exported_ 문자열을 프리픽스로 추가합니다.

Cloud Monitoring에서 측정항목 사용 및 진단 보기

Cloud Monitoring 측정항목 관리 페이지에서는 관측 가능성에 영향을 주지 않고 청구 가능 측정항목에 지출하는 금액을 제어할 수 있는 정보를 제공합니다. 측정항목 관리 페이지에서는 다음 정보를 보고합니다.

  • 측정항목 도메인 및 개별 측정항목의 바이트 기반 및 샘플 기반 청구에 대한 수집량
  • 측정항목의 라벨 및 카디널리티에 대한 데이터
  • 각 측정항목 읽기 수입니다.
  • 알림 정책 및 커스텀 대시보드의 측정항목 사용
  • 측정항목 쓰기 오류의 비율

또한 측정항목 관리를 사용하면 불필요한 측정항목을 제외하여 수집 비용을 절감할 수 있습니다.

측정항목 관리 페이지를 보려면 다음을 수행합니다.

  1. Google Cloud 콘솔에서  측정항목 관리 페이지로 이동합니다.

    측정항목 관리로 이동

    검색창을 사용하여 이 페이지를 찾은 경우 부제목이 Monitoring인 결과를 선택합니다.

  2. 툴바에서 기간을 선택합니다. 기본적으로 측정항목 관리 페이지에는 이전 1일 동안 수집된 측정항목에 대한 정보가 표시됩니다.

측정항목 관리 페이지에 대한 자세한 내용은 측정항목 사용량 보기 및 관리를 참조하세요.

라벨 재지정: 스크래핑 중인 데이터 수정

라벨 재지정을 사용하여 대상이 스크래핑되기 전에 스크래핑 대상의 라벨 집합 또는 해당 측정항목을 수정할 수 있습니다. 라벨 재지정 구성에 여러 단계가 포함된 경우 구성 파일에 표시된 순서로 적용됩니다.

운영 에이전트는 메타 라벨 집합(__meta_ 문자열이 프리픽스로 추가된 라벨)을 만듭니다. 이러한 메타 라벨은 운영 에이전트가 실행되는 Compute Engine 인스턴스에 대한 정보를 기록합니다. 메타 라벨을 포함하여 __ 문자열이 프리픽스로 추가된 라벨은 라벨 재지정 중에만 사용할 수 있습니다. 라벨 재지정을 사용하여 스크래핑되는 라벨에서 이러한 라벨의 값을 캡처할 수 있습니다.

측정항목 라벨 재지정이 샘플에 적용됩니다. 이것이 수집 전 마지막 단계입니다. 측정항목 라벨 재지정을 사용해서 수집할 필요가 없는 시계열을 삭제할 수 있습니다. 이러한 시계열을 삭제하면 수집되는 샘플 수를 줄여서 비용을 줄일 수 있습니다.

라벨 재지정에 대한 자세한 내용은 relabel_configmetric_relabel_configs에 대한 Prometheus 문서를 참조하세요.

라벨 재지정에 사용할 수 있는 Compute Engine 메타 라벨

운영 에이전트는 측정항목을 스크래핑할 때는 여기에 에이전트가 실행되는 Compute Engine VM의 구성에 따라 해당 값이 달라지는 메타 라벨의 집합이 포함됩니다. 이러한 라벨 및 Prometheus 수신자의 relabel_configs 섹션을 사용하여 수집된 VM에 대한 측정항목에 추가 메타데이터를 추가할 수 있습니다. 예시는 추가 수신자 구성을 참조하세요.

relabel_configs 섹션에서 사용할 대상에서 다음 메타 라벨을 사용할 수 있습니다.

  • __meta_gce_instance_id: Compute Engine 인스턴스(로컬)의 숫자 ID입니다.
  • __meta_gce_instance_name: Compute Engine 인스턴스(로컬)의 이름입니다. 운영 에이전트는 측정항목의 변경 가능한 instance_name 라벨에 이 값을 자동으로 배치합니다.
  • __meta_gce_machine_type: 인스턴스의 머신 유형에 대한 전체 또는 일부 URL입니다. 운영 에이전트는 측정항목의 변경 가능한 machine_type 라벨에 이 값을 자동으로 배치합니다.
  • __meta_gce_metadata_NAME: 인스턴스의 각 메타데이터 항목입니다.
  • __meta_gce_network: 인스턴스의 네트워크 URL입니다.
  • __meta_gce_private_ip: 인스턴스의 비공개 IP 주소입니다.
  • __meta_gce_interface_ipv4_NAME: 각 이름이 지정된 인터페이스의 IPv4 주소입니다.
  • __meta_gce_project: 인스턴스가 실행 중인(로컬) Google Cloud 프로젝트입니다.
  • __meta_gce_public_ip: 인스턴스의 공개 IP 주소입니다(있는 경우).
  • __meta_gce_tags: 쉼표로 구분된 인스턴스 태그 목록입니다.
  • __meta_gce_zone: 인스턴스가 실행 중인 Compute Engine 영역 URL입니다.

이러한 라벨의 값은 운영 에이전트가 시작될 때 설정됩니다. 값을 수정할 경우 운영 에이전트를 다시 시작하여 값을 새로고침해야 합니다.

추가 수신자 구성

이 섹션에서는 Prometheus 수신자의 relabel_configsmetric_relabel_configs 섹션을 사용해서 수집된 측정항목의 개수와 구조를 수정하는 예시를 보여줍니다. 이 섹션에는 또한 라벨 재지정 옵션을 사용하는 JSON 내보내기 도구 예시에 대한 수정된 수신자 버전이 포함되어 있습니다.

VM 메타데이터 추가

relabel_configs 섹션을 사용하여 측정항목에 라벨을 추가할 수 있습니다. 예를 들어 다음은 zone__프리픽스가 없기 때문에 라벨 재지정 후에 보존되는 측정항목 라벨 zone을 만들기 위해 운영 에이전트에서 제공된 메타 라벨 __meta_gce_zone을 사용합니다.

사용 가능한 메타 라벨 목록은 라벨 재지정 중간에 사용할 수 있는 Compute Engine 메타 라벨을 참조하세요. 일부 메타 라벨은 기본 운영 에이전트 구성에 따라 라벨이 재지정됩니다.

relabel_configs:
  - source_labels: [__meta_gce_zone]
    regex: '(.+)'
    replacement: '${1}'
    target_label: zone

예시: Prometheus의 운영 에이전트 구성에 표시된 Prometheus 수신자에는 이 라벨 추가가 포함됩니다.

측정항목 삭제

metrics_relabel_configs 섹션을 사용하여 수집하지 않으려는 측정항목을 삭제할 수 있습니다. 이 패턴은 비용을 억제하는 데 유용합니다. 예를 들어 다음 패턴을 사용해서 이름이 METRIC_NAME_REGEX_1 또는 METRIC_NAME_REGEX_2와 일치하는 측정항목을 삭제할 수 있습니다.

metric_relabel_configs:
  - source_labels: [ __name__ ]
    regex: 'METRIC_NAME_REGEX_1'
    action: drop
  - source_labels: [ __name__ ]
    regex: 'METRIC_NAME_REGEX_2'
    action: drop

정적 라벨 추가

metrics_relabel_configs 섹션을 사용하여 Prometheus 수신자로 수집된 모든 측정항목에 정적 라벨을 추가할 수 있습니다. 다음 패턴을 사용하여 모든 수집된 측정항목에 staticLabel1staticLabel2 라벨을 추가할 수 있습니다.

metric_relabel_configs:
  - source_labels: [ __address__ ]
    action: replace
    replacement: 'STATIC_VALUE_1'
    target_label: staticLabel1
  - source_labels: [ __address__ ]
    action: replace
    replacement: 'STATIC_VALUE_2'
    target_label: staticLabel2

JSON 내보내기 도구 예시에 대한 다음 버전의 Prometheus 수신자는 이러한 구성 패턴을 사용해서 다음을 수행합니다.

  • 운영 에이전트에서 제공된 __meta_gce_zone 메타 라벨의 값으로부터 zone 라벨을 설정합니다.
  • 내보내기 도구의 example_global_value 측정항목을 삭제합니다.
  • 값이 'A static value'인 staticLabel 라벨을 모든 수집된 측정항목에 추가합니다.
metrics:
  receivers:
    prometheus:
        type: prometheus
        config:
          scrape_configs:
            - job_name: 'json_exporter'
              scrape_interval: 10s
              metrics_path: /probe
              params:
                module: [default]
                target: [http://localhost:8000/examples/data.json]
              static_configs:
                - targets: ['localhost:7979']
              relabel_configs:
                - source_labels: [__meta_gce_zone]
                  regex: '(.+)'
                  replacement: '${1}'
                  target_label: zone
              metric_relabel_configs:
                - source_labels: [ __name__ ]
                  regex: 'example_global_value'
                  action: drop
                - source_labels: [ __address__ ]
                  action: replace
                  replacement: 'A static value'
                  target_label: staticLabel