PromQL-Abfragen in Google Cloud Managed Service for Prometheus werden mithilfe der Monitoring Query Language (MQL) teilweise im Monarch-Backend ausgewertet und es gibt einige bekannte Unterschiede bei den Abfrageergebnissen. In diesem Dokument werden die Unterschiede beschrieben.
Abgesehen von den in diesem Dokument aufgeführten Unterschieden entspricht die PromQL in Managed Service for Prometheus der PromQL, die in der Prometheus-Version 2.44 verfügbar ist.
Neue PromQL-Funktionen
Nach der Prometheus-Version 2.44 hinzugefügte PromQL-Funktionen werden möglicherweise nicht unterstützt.
Abgleich mit Messwertnamen
Es wird nur der exakte Abgleich mit Messwertnamen unterstützt.
Veralterung
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.
MQL 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.
MQL 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 Ratenergebnissen, insbesondere bei Abfragen am Anfang oder Ende der zugrunde liegenden Zeitachse.
Berechnung von histogram_quantile
Eine PromQL-histogram_quantile
-Berechnung in einem Histogramm ohne Stichproben erzeugt einen NaN-Wert. Die Berechnung von MQL erzeugt keinen Wert. Das heißt, MQL ignoriert stattdessen den Punkt am Zeitstempel.
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 Managed Service for Prometheus nicht funktioniert, obwohl diese Funktionen im vorgelagerten Prometheus funktionieren.