Mit PromQL können Sie Cloud Monitoring-Daten aus den folgenden Quellen abfragen und grafisch darstellen:
- Google Cloud Dienste wie die Google Kubernetes Engine oder die Compute Engine, die Messwerte schreiben, die in den Listen der Systemmesswerte für die Cloud-Überwachung beschrieben sind.
- Benutzerdefinierte Messwerte, z. B. logbasierte Messwerte und benutzerdefinierte Messwerte in Cloud Monitoring
- Google Cloud Managed Service for Prometheus, die vollständig verwaltete Multi-Cloud-Lösung für Prometheus vonGoogle CloudInformationen zum verwalteten Dienst, einschließlich Unterstützung durch PromQL, finden Sie unter Google Cloud Managed Service for Prometheus.
Sie können auch Tools wie Grafana verwenden, um Messwertdaten, die in Cloud Monitoring aufgenommen wurden, in Diagrammen darzustellen. Zu den verfügbaren Messwerten gehören Messwerte aus Managed Service for Prometheus und Cloud Monitoring, die in den Listen der Messwerte aufgeführt sind. Informationen zum Einrichten von Grafana und anderen Tools, die auf der Prometheus API basieren, finden Sie in der Managed Service for Prometheus-Dokumentation unter Grafana.
Sie können auch Ihre Grafana-Dashboards in Cloud Monitoring importieren.
Namenskonventionen
Das Prometheus-Messwertmodell und die Benennungskonventionen unterscheiden sich von denen, die in Cloud Monitoring verwendet werden. Wenn Sie Cloud Monitoring-Messwertdaten mit PromQL abfragen möchten, müssen Sie Cloud Monitoring-Namen in PromQL-kompatible Äquivalente umwandeln. Informationen zu den Benennungskonventionen finden Sie unter Cloud Monitoring-Messwerte PromQL zuordnen.
Zugriff auf PromQL in Cloud Monitoring
Sie können PromQL auf den folgenden Seiten in der Google Cloud Console auf dem Tab Code verwenden:
- Metrics Explorer
- Diagramm hinzufügen, wenn Sie benutzerdefinierte Dashboards erstellen
Informationen zum Zugriff auf den Editor und zur Verwendung finden Sie unter PromQL-Editor verwenden.
Prometheus-Regeln und -Benachrichtigungen
Sie können mit PromQL Aufnahme- und Benachrichtigungsregeln für jeden Messwert in Cloud Monitoring erstellen, indem Sie Benachrichtigungen im Prometheus-Format in Cloud Monitoring verwenden. Weitere Informationen 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. Die folgenden Ressourcen können Ihnen den Einstieg erleichtern:
Unterschiede bei PromQL
PromQL für Cloud Monitoring funktioniert möglicherweise etwas anders als Upstream-PromQL.
PromQL-Abfragen in Cloud Monitoring werden teilweise im Monarch-Backend mithilfe einer internen Abfragesprache ausgewertet. Es gibt einige bekannte Unterschiede bei den Abfrageergebnissen. Abgesehen von den in diesem Abschnitt aufgeführten Unterschieden entspricht die PromQL-Version in Cloud Monitoring der PromQL-Version in Prometheus 2.44.PromQL-Funktionen, die nach Prometheus-Version 2.44 hinzugefügt wurden, werden möglicherweise nicht unterstützt.
Abgleich mit Messwertnamen
Es wird nur der exakte Abgleich mit Messwertnamen unterstützt. Sie müssen in Ihrer Abfrage eine genaue Übereinstimmung mit dem Messwertnamen angeben.
Für häufige Szenarien, in denen ein regulärer Ausdruck für das __name__
-Label verwendet wird, empfehlen wir die folgenden Umgehungslösungen:
- In Prometheus-Adapterkonfigurationen wird häufig der Operator
=~
verwendet, um mehrere Messwertnamen abzugleichen. Um dieses Problem zu beheben, erweitern Sie die Konfiguration, damit für jeden Messwert eine separate Richtlinie verwendet wird, und benennen Sie jeden Messwert explizit. Außerdem wird verhindert, dass das Autoscaling versehentlich auf unerwartete Messwerte angewendet wird. - Mithilfe von regulären Ausdrücken lassen sich häufig mehrere nichtdimensionale Messwerte im selben Diagramm darstellen. Wenn Sie beispielsweise einen Messwert wie
cpu_servicename_usage
haben, können Sie mit einem Platzhalter alle Ihre Dienste zusammen in einem Diagramm darstellen. Die Verwendung nicht dimensionsbasierter Messwerte wie dieser ist in Cloud Monitoring ausdrücklich unzulässig und führt zu einer extrem schlechten Abfrageleistung. Um dieses Problem zu beheben, verschieben Sie alle Dimensionen in Messwertlabels, anstatt sie in den Messwertnamen einzubetten. - Abfragen mehrerer Messwerte werden oft verwendet, um zu sehen, welche Messwerte abgefragt werden können. Wir empfehlen stattdessen den
/labels/__name__/values
-Aufruf, um Messwerte zu ermitteln. Sie können Messwerte auch über die Cloud Monitoring-Benutzeroberfläche entdecken. - Wenn Sie mehrere Messwerte abgleichen, sehen Sie, wie viele Datensätze pro Messwert gescrapt, aufgenommen und in Rechnung gestellt wurden. In Cloud Monitoring finden Sie diese Informationen auf der Seite Messwertverwaltung. Sie können auch mithilfe der Messwerte Aufgenommene Datensätze oder Datensätze nach Attributions-ID auf diese Informationen als Messdaten zugreifen.
Veraltung
Veralterung wird im Monarch-Backend nicht unterstützt.
Berechnung von irate
Wenn das Lookback-Window für die Funktion irate
kleiner als die Schrittgröße ist, wird das Fenster auf die Schrittgröße erhöht.
Monarch erfordert diese Änderung, um sicherzustellen, dass keine der Eingabedaten in der Ausgabe vollständig ignoriert werden. Dieser Unterschied gilt auch für rate
-Berechnungen.
Berechnung von rate
und increase
Wenn das Lookback-Window für die Funktion rate
kleiner als die Schrittgröße ist, wird das Fenster auf die Schrittgröße erhöht.
Monarch erfordert diese Änderung, um sicherzustellen, dass keine der Eingabedaten in der Ausgabe vollständig ignoriert werden. Dieser Unterschied gilt auch für irate
-Berechnungen.
Es gibt Unterschiede bei Interpolations- und Extrapolationsberechnungen. Monarch verwendet einen anderen Interpolationsalgorithmus als Prometheus. Dieser Unterschied kann zu leicht unterschiedlichen Ergebnissen führen. Beispielsweise werden Monarch-Zählerstichproben mit einem Zeitraum gespeichert, nicht mit dem einzelnen Zeitstempel, den Prometheus verwendet. Daher können Zählerstichproben in Monarch in eine Ratenberechnung einbezogen werden, obwohl sie vom Prometheus-Zeitstempel ausgeschlossen werden würden. Dies führt in der Regel zu genaueren Ergebnissen, insbesondere bei Abfragen am Anfang oder Ende der zugrunde liegenden Zeitreihe.
Berechnung von histogram_quantile
Eine PromQL-histogram_quantile
-Berechnung in einem Histogramm ohne Stichproben erzeugt einen NaN-Wert. Die Berechnung der internen Abfragesprache ergibt keinen Wert. Stattdessen wird der Punkt am Zeitstempel ignoriert.
Die Unterschiede bei der Ratenberechnung können sich auch auf die Eingabe für histogram_quantile
-Abfragen auswirken.
Typspezifische Funktionen für unterschiedlich typisierte Messwerte
Obwohl das vorgelagerte Prometheus schwach typisiert ist, ist Monarch streng typisiert. Das bedeutet, dass die Ausführung von Funktionen mit spezifischer Typisierung auf einem Messwert mit anderer Typisierung (z. B. rate()
auf einem GAUGE-Messwert oder histogram_quantile()
auf einem COUNTER- oder nicht typisierten Messwert) in Cloud Monitoring nicht funktioniert, obwohl diese Funktionen im vorgelagerten Prometheus funktionieren.