将 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 |
您可以像查询 Prometheus 直方图一样查询 Cloud Monitoring 分布值指标,并将 _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
,但偶尔显示为完整 URI,如 monitoring.googleapis.com/MetricIngestionAttribution
。格式正确的 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"}