Cloud Monitoring 측정항목을 PromQL에 매핑

Prometheus Query Language(PromQL)를 사용하여 Cloud Monitoring에서 저장된 모든 측정항목을 쿼리할 수 있습니다.

Cloud Monitoring 측정항목 이름을 PromQL에 매핑

Cloud Monitoring 측정항목 이름에는 도메인(예: compute.googleapis.com/)과 경로(예: instance/disk/max_read_ops_count)의 두 가지 구성요소가 있습니다. PromQL은 특수문자 :_만 지원하므로 먼저 Monitoring 측정항목 이름을 PromQL과 호환되도록 해야 합니다. Monitoring 측정항목 이름을 PromQL에 매핑하려면 다음 규칙을 적용합니다.

  • 첫 번째 /:으로 바꿉니다.
  • 다른 모든 특수문자(. 및 기타 / 문자 포함)를 _로 바꿉니다.

다음 표에는 몇 가지 측정항목 이름과 해당하는 PromQL이 나열되어 있습니다.

Cloud Monitoring 측정항목 이름 PromQL 측정항목 이름
compute.googleapis.com/instance/cpu/utilization compute_googleapis_com:instance_cpu_utilization
logging.googleapis.com/log_entry_count logging_googleapis_com:log_entry_count

Cloud Monitoring 분포 값 측정항목은 측정항목 이름에 _count, _sum 또는 _bucket 서픽스가 추가된 Prometheus 히스토그램처럼 쿼리될 수 있습니다.

Cloud Monitoring 측정항목 이름 PromQL 측정항목 이름
networking.googleapis.com/vm_flow/rtt networking_googleapis_com:vm_flow_rtt_sum
networking_googleapis_com:vm_flow_rtt_count
networking_googleapis_com:vm_flow_rtt_bucket

모니터링 리소스 유형 지정

측정항목이 단일 Cloud Monitoring 모니터링 리소스 유형에만 연결된 경우 PromQL 쿼리는 리소스 유형을 수동으로 지정하지 않고도 작동합니다. 하지만 일부 시스템 측정항목을 포함하여 Cloud Monitoring 내 일부 측정항목은 리소스 유형 두 개 이상에 매핑됩니다.

Trusted Cloud by S3NS 측정항목 목록을 참조하여 측정항목에 매핑되는 모니터링 리소스 유형을 확인할 수 있습니다. 문서의 각 항목에는 연결된 모니터링 리소스 유형이 유형 아래의 각 항목의 첫 번째 열에 나열됩니다. 모니터링 리소스 유형이 나열되지 않으면 측정항목을 모든 유형에 연결할 수 있습니다.

측정항목이 리소스 유형 2개 이상과 연결되어 있는 경우 PromQL 쿼리에서 리소스 유형을 지정해야 합니다. 리소스 유형을 선택하는 데 사용할 수 있는 특수 라벨 monitored_resource가 있습니다.

모니터링 리소스 유형은 대부분의 경우 gce_instance와 같은 짧은 문자열이지만 monitoring.googleapis.com/MetricIngestionAttribution과 같이 전체 URI로 표시되는 경우도 있습니다. 올바른 형식의 PromQL 쿼리는 다음과 같습니다.

  • logging_googleapis_com:byte_count{monitored_resource="k8s_container"}
  • loadbalancing_googleapis_com:l3_external_egress_bytes_count{monitored_resource="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"}

필요할 때 monitored_resource 라벨을 사용하지 않으면 다음 오류가 발생합니다.

metric is configured to be used with more than one monitored resource type; series selector must specify a label matcher on monitored resource name

라벨 충돌 해결

Cloud Monitoring에서 라벨은 측정항목이나 리소스에 속할 수 있습니다. 측정항목 라벨에 리소스 라벨과 동일한 키 이름이 있으면 쿼리의 라벨 키 이름에 metric_ 프리픽스를 추가하여 구체적으로 측정항목 라벨을 참조할 수 있습니다.

예를 들어 example.googleapis.com/user/widget_count 측정항목에 pod_name이라는 리소스 라벨과 측정항목 라벨이 있다고 가정해 보겠습니다.

  • 리소스 라벨 값을 필터링하려면
    example_googleapis_com:user_widget_count{pod_name="RESOURCE_LABEL_VALUE"}를 사용합니다.

  • 측정항목 라벨 값을 필터링하려면
    example_googleapis_com:user_widget_count{metric_pod_name="METRIC_LABEL_VALUE"}를 사용합니다.