Sie können die Prometheus-Abfragesprache (PromQL) verwenden, um alle Messwerte in Cloud Monitoring abzufragen, einschließlich: Google Cloud-Systemmesswerte, Kubernetes-Messwerte ,benutzerdefinierte Messwerte und logbasierte Messwerte.
Cloud Monitoring-Messwertnamen PromQL zuordnen
Cloud Monitoring-Messwertnamen umfassen zwei Komponenten: eine Domain (z. B. compute.googleapis.com/
) und einen Pfad (z. B. instance/disk/max_read_ops_count
). Da PromQL nur die Sonderzeichen :
und _
unterstützt, müssen Sie zuerst Monitoring-Messwertnamen mit PromQL kompatibel machen. Wenden Sie die folgenden Regeln an, um Monitoring-Messwertnamen zu PromQL zuzuordnen:
- Ersetzen Sie den ersten
/
durch:
. - Ersetzen Sie alle anderen Sonderzeichen (einschließlich
.
und anderer/
-Zeichen) durch_
.
In der folgenden Tabelle sind einige Messwertnamen und ihre PromQL-Entsprechungen aufgeführt:
Cloud Monitoring-Messwertname | PromQL-Messwertname |
---|---|
kubernetes.io/container/cpu/limit_cores |
kubernetes_io:container_cpu_limit_cores |
compute.googleapis.com/instance/cpu/utilization |
compute_googleapis_com:instance_cpu_utilization |
logging.googleapis.com/log_entry_count |
logging_googleapis_com:log_entry_count |
custom.googleapis.com/opencensus/opencensus.io/ |
custom_googleapis_com:opencensus_opencensus_io_ |
agent.googleapis.com/disk/io_time |
agent_googleapis_com:disk_io_time |
Cloud Monitoring-Verteilungsmesswerte können wie Prometheus-Histogramme abgefragt werden, wobei das Suffix _count
, _sum
oder _bucket
an den Messwertnamen angehängt wird:
Cloud Monitoring-Messwertname | PromQL-Messwertnamen |
---|---|
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
|
Typ der überwachten Ressource angeben
Wenn ein Messwert nur einem einzelnen von Cloud Monitoring überwachten Ressourcentyp zugeordnet ist, funktioniert die PromQL-Abfrage, ohne manuell einen Ressourcentyp anzugeben. Einige Messwerte innerhalb von Cloud Monitoring, darunter einige Systemmesswerte und viele der von den logbasierten Messwerten generierte Messwerte, lassen sich jedoch mehr als einem Ressourcentyp zuordnen.Sie können prüfen, welche überwachten Ressourcentypen einem Messwert zugeordnet sind. Gehen Sie dabei so vor:
- Informationen zu den von Google ausgewählten Messwerten finden Sie in den Listen der verfügbaren Messwerte, einschließlich der Google Cloud-Messwerte und Kubernetes-Messwerte. Jeder Eintrag in der Dokumentation enthält die zugehörigen überwachten Ressourcentypen in der ersten Spalte des jeweiligen Eintrags unter dem Typ. Wenn keine überwachten Ressourcentypen aufgeführt sind, kann der Messwert einem beliebigen Typ zugeordnet werden.
Im Metrics Explorer haben Sie folgende Möglichkeiten:
- Geben Sie den Namen des Messwerts in das Feld Messwert auswählen ein und wählen Sie ihn dann über die Menüs aus. Im Ressourcenmenü sind die gültigen Ressourcentypen für diesen Messwert aufgeführt, z. B. „VM-Instanz“.
- Klicken Sie in der Symbolleiste des Bereichs "Query Builder" auf die Schaltfläche code MQL oder code PromQL.
Prüfen Sie, ob MQL im Schalter Sprache ausgewählt ist. Die Sprachschaltfläche befindet sich in derselben Symbolleiste, mit der Sie Ihre Abfrage formatieren können.
In der angezeigten Abfrage ist der Ressourcentyp zu sehen. MQL ist insbesondere für Messwerte nützlich, die mit vielen überwachten Ressourcentypen verknüpft werden können, z. B. logbasierte Messwerte oder benutzerdefinierte Messwerte.
Wenn ein Messwert mit mehr als einem Ressourcentyp verknüpft ist, müssen Sie den Ressourcentyp in Ihrer PromQL-Abfrage angeben. Mit dem speziellen Label monitored_resource
können Sie den Ressourcentyp auswählen.
Überwachte Ressourcentypen sind in den meisten Fällen ein kurzer String wie gce_instance
. Gelegentlich werden sie jedoch als vollständige URIs wie monitoring.googleapis.com/MetricIngestionAttribution
angezeigt. Korrekt formulierte PromQL-Abfragen können so aussehen:
logging_googleapis_com:byte_count{monitored_resource="k8s_container"}
custom_googleapis_com:opencensus_opencensus_io_http_server_request_count_by_method{monitored_resource="global"}
loadbalancing_googleapis_com:l3_external_egress_bytes_count{monitored_resource="loadbalancing.googleapis.com/ExternalNetworkLoadBalancerRule"}
Der Wert von ""
für das Label monitored_resource
ist besonders und bezieht sich auf den standardmäßigen prometheus_target
-Ressourcentyp, der für Managed Service for Prometheus-Messwerte verwendet wird.
Wenn Sie das Label monitored_resource
nicht verwenden, wenn es benötigt wird, erhalten Sie folgende Fehlermeldung:
metric is configured to be used with more than one monitored resource type;
series selector must specify a label matcher on monitored resource name
Metadatenlabels verwenden
Sie können in PromQL Metadatenlabels wie jedes andere Label verwenden, wobei wie bei Messwertnamen auch Metadatenlabels von PromQL kompatibel sein müssen. Die Syntax für den Verweis auf ein Metadatensystemlabel vom Typ version
lautet metadata_system_version
und die Syntax für Metadatennutzerlabel vom Typ version
lautet metadata_user_version
. Korrekt formulierte PromQL-Abfragen mit Metadatenlabels können so aussehen:
compute_googleapis_com:instance_cpu_utilization{monitored_resource="gce_instance",metadata_user_env="prod"}
sum(compute_googleapis_com:instance_cpu_utilization) by (metadata_system_region)
Das einzige Sonderzeichen, das Sie in Metadatenlabelschlüsseln verwenden können, ist das Zeichen _
. Eine Aggregation mit Metadatenlabels vom Typ MULTI_STRING
oder KEY_VALUE
wird nicht unterstützt.
Labelkonflikte lösen
In Cloud Monitoring können Labels entweder zum Messwert oder zur Ressource gehören.
Wenn ein Messwertlabel denselben Schlüsselnamen wie ein Ressourcenlabel hat, können Sie speziell auf das Messwertlabel verweisen, indem Sie dem Labelschlüsselnamen in Ihrer Abfrage das Präfix metric_
hinzufügen.
Angenommen, Sie haben ein Ressourcenlabel und ein Messwertlabel mit dem Namen pod_name
im Messwert example.googleapis.com/user/widget_count
.
Um nach dem Wert des Ressourcenlabels zu filtern, verwenden Sie
example_googleapis_com:user_widget_count{pod_name="RESOURCE_LABEL_VALUE"}
Um nach dem Wert des Messwertlabels zu filtern, verwenden Sie
example_googleapis_com:user_widget_count{metric_pod_name="METRIC_LABEL_VALUE"}
Weitere Informationen
Regeln und Benachrichtigungen
Sie können Cloud Monitoring-Messwerte sowohl in Aufnahme- als auch in Benachrichtigungsregeln im Managed Service for Prometheus verwenden. Eine Anleitung finden Sie unter Verwaltete Regelauswertung und Benachrichtigungen oder Selbst bereitgestellte Regelauswertung und Benachrichtigung.
PromQL lernen
Grundlagen zur Verwendung von PromQL erhalten Sie in der Open-Source-Dokumentation. Hier einige nützliche Links:
Unterschiede bei PromQL
PromQL für Managed Service for Prometheus funktioniert möglicherweise etwas anders als Upstream-PromQL. Eine Liste dieser Unterschiede finden Sie unter PromQL-Unterschiede.