PromQL-Kompatibilität

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.