Cloud Monitoring の指標と PromQL のマッピング

Prometheus Query Language(PromQL)を使用すると、Cloud Monitoring によって保存されているすべての指標をクエリできます。

Cloud Monitoring の指標名と PromQL のマッピング

Cloud Monitoring の指標名には、ドメイン(compute.googleapis.com/ など)とパス(instance/disk/max_read_ops_count など)の 2 つのコンポーネントが含まれます。PromQL は特殊文字 :_ のみをサポートしているため、PromQL と互換性のある Monitoring 指標名にする必要があります。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 の分布値指標に対しては、Prometheus ヒストグラムと同様に、指標名に _count_sum_bucket サフィックスを追加して、クエリを実行できます。

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 指標のリストでご確認ください。ドキュメント内の各エントリでは、そのタイプの各エントリの最初の列に、関連するモニタリング対象リソースタイプが示されています。モニタリング対象リソースタイプが表示されていない場合は、指標を任意のタイプに関連付けることができます。

指標が複数のリソースタイプに関連付けられている場合は、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"}