Compatibilité PromQL

Les requêtes PromQL envoyées à Google Cloud Managed Service pour Prometheus sont partiellement évaluées au niveau du backend Monarch à l'aide du langage MQL (Monitoring Query Language) et il existe des différences connues dans les résultats de la requête. Ce document décrit les différences.

À l'exception des différences mentionnées dans ce document, PromQL dans Managed Service pour Prometheus est identique à celui de PromQL disponible dans la version Prometheus.2.44.

Nouvelles fonctions PromQL

Les fonctions PromQL ajoutées après la version Prometheus 2.44 peuvent ne pas être compatibles.

Correspondance des noms de métriques

Seule une correspondance exacte avec les noms de métriques est acceptée.

Obsolescence

L'obsolescence n'est pas disponible dans le backend Monarch.

Calcul de irate

Lorsque la période d'analyse de la fonction irate est inférieure à la taille de l'étape, nous augmentons cette période à la taille de l'étape. Cette modification est nécessaire dans MQL afin de s'assurer qu'aucune des données d'entrée n'est complètement ignorée dans le résultat. Cette différence s'applique également aux calculs de rate.

Calcul de rate et increase

Lorsque la période d'analyse de la fonction rate est inférieure à la taille de l'étape, nous augmentons cette période à la taille de l'étape. Cette modification est nécessaire dans MQL afin de s'assurer qu'aucune des données d'entrée n'est complètement ignorée dans le résultat. Cette différence s'applique également aux calculs de irate.

Il existe des différences dans les calculs d'interpolation et d'extrapolation. Monarch utilise un algorithme d'interpolation différent de celui de Prometheus, et cette différence peut produire des résultats légèrement différents. Par exemple, les échantillons de compteur Monarch sont stockés avec une période, alors que Prometheus utilise un seul horodatage. Par conséquent, les échantillons de compteur Monarch peuvent être inclus dans un calcul de taux, même si l'horodatage Prometheus l'exclut. Cela permet généralement d'obtenir des résultats de taux plus précis, en particulier lors de requêtes sur le début ou la fin de la série temporelle sous-jacente.

Calcul de histogram_quantile

Un calcul PromQL de histogram_quantile sur un histogramme sans échantillon génère une valeur NaN. Le calcul MQL n'affiche aucune valeur. Autrement dit, MQL supprime le point à l'horodatage.

Les différences de calcul de taux peuvent également affecter l'entrée des requêtes histogram_quantile.

Fonctions spécifiques au type sur des métriques de types différents

Bien que Prometheus en amont soit faiblement typé, Monarch est fortement typé. Cela signifie que l'exécution de fonctions spécifiques à un seul type sur une métrique de type différent (par exemple, l'exécution de rate() sur une métrique GAUGE ou de histogram_quantile() sur une métrique COUNTER ou une métrique non typée) ne fonctionnera pas dans Managed Service for Prometheus, même si ces fonctions sont compatibles avec Prometheus en amont.