Compatibilità con PromQL

Le query PromQL in Google Cloud Managed Service per Prometheus vengono valutate parzialmente nel backend di Monarch utilizzando MQL (Monitoring Query Language) e esistono alcune differenze note nei risultati delle query. Questo documento descrive le differenze.

A parte le differenze elencate in questo documento, PromQL in Managed Service per Prometheus è alla pari con il PromQL disponibile nella versione di Prometheus 2.44.

Nuove funzioni PromQL

Le funzioni PromQL aggiunte dopo la versione 2.44 di Prometheus potrebbero non essere supportate.

Corrispondenza in base ai nomi delle metriche

È supportata solo la corrispondenza esatta per i nomi delle metriche.

Inattività

L'inattività non è supportata nel backend di Monarch.

Calcolo di irate

Quando la finestra temporale per la funzione irate è inferiore alla dimensione del passaggio, la aumentiamo fino alla dimensione del passaggio. MQL richiede questa modifica per garantire che nessuno dei dati di input venga ignorato completamente nell'output. Questa differenza si applica anche ai calcoli di rate.

Calcolo di rate e increase

Quando la finestra temporale per la funzione rate è inferiore alla dimensione del passaggio, la aumentiamo fino alla dimensione del passaggio. MQL richiede questa modifica per garantire che nessuno dei dati di input venga ignorato completamente nell'output. Questa differenza si applica anche ai calcoli di irate.

Ci sono differenze nei calcoli di interpolazione ed estrapolazione. Monarch utilizza un algoritmo di interpolazione diverso rispetto a Prometheus e questa differenza può portare a risultati leggermente diversi. Ad esempio, i contatori dei campioni di Monarch sono archiviati con un intervallo di tempo anziché con il singolo timestamp utilizzato da Prometheus. Pertanto, i campioni dei contatori in Monarch possono essere inclusi in un calcolo del tasso anche se il timestamp di Prometheus li esclude. Ciò si traduce in genere in risultati di frequenza più precisi, soprattutto quando si eseguono query all'inizio o alla fine delle serie temporali sottostanti.

Calcolo di histogram_quantile

Un calcolo PromQL histogram_quantile su un istogramma senza campioni produce un valore NaN. Il calcolo di MQL non produce alcun valore, ovvero MQL elimina il punto in corrispondenza del timestamp.

Le differenze nel calcolo della tariffa possono anche influire sull'input delle query histogram_quantile.

Funzioni specifiche per tipo su metriche digitate in modo diverso

Sebbene Prometheus a monte sia di tipo debole, Monarch ha un tipo di digitazione marcato. Ciò significa che l'esecuzione di funzioni specifiche di un singolo tipo su una metrica con tipi diversi (ad esempio, l'esecuzione di rate() su una metrica GAUGE o histogram_quantile() su un CONTATORE o di una metrica non digitata) non funzionerà in Managed Service per Prometheus, anche se queste funzioni funzionano in Prometheus a monte.