Le query PromQL in Google Cloud Managed Service per Prometheus vengono valutate parzialmente nel backend di Monarch utilizzando Monitoring Query Language (MQL) e sono note alcune differenze nei risultati delle query. Questo documento descrive le differenze.
A parte le differenze elencate in questo documento, il linguaggio PromQL in Managed Service per Prometheus è alla pari con quello disponibile in Prometheus versione 2.44.
Nuove funzioni PromQL
Le funzioni PromQL aggiunte dopo la versione 2.44 di Prometheus potrebbero non essere supportate.
Corrispondenza per i nomi delle metriche
È supportata solo la corrispondenza esatta dei nomi delle metriche.
Mancato aggiornamento
L'attributo Staleness non è supportato nel backend di Monarch.
Calcolo di irate
Quando l'intervallo di ricerca della funzione irate
è inferiore alla dimensione del passaggio, aumentiamo l'intervallo fino alla dimensione del passaggio.
MQL richiede questa modifica per garantire che nessuno dei dati di input venga completamente ignorato nell'output. Questa differenza si applica anche ai calcoli di rate
.
Calcolo di rate
e increase
Quando l'intervallo di ricerca della funzione rate
è inferiore alla dimensione del passaggio, aumentiamo l'intervallo fino alla dimensione del passaggio.
MQL richiede questa modifica per garantire che nessuno dei dati di input venga completamente ignorato nell'output. Questa differenza si applica anche ai calcoli di irate
.
Esistono differenze nei calcoli di interpolazione ed estrapolazione. Monarch utilizza un algoritmo di interpolazione diverso da Prometheus e questa differenza può portare a risultati leggermente diversi. Ad esempio, i campioni dei contatori Monarch vengono archiviati con un intervallo di tempo anziché con il singolo timestamp utilizzato da Prometheus. Pertanto, i campioni del contatore in Monarch possono essere inclusi nel calcolo di una tariffa anche se il timestamp di Prometheus li escluderebbe. In genere, questo consente di ottenere risultati più precisi, in particolare quando esegui query sull'inizio o sulla fine della serie temporale sottostante.
Calcolo di histogram_quantile
Un calcolo histogram_quantile
PromQL su un istogramma senza campioni produce un valore NaN. Il calcolo dell'MQL non produce alcun valore, ovvero l'MQL inserisce il punto al timestamp.
Le differenze di calcolo del tasso possono influire anche sui dati inseriti nelle queryhistogram_quantile
.
Funzioni specifiche per tipo su metriche di tipo diverso
Sebbene Prometheus upstream sia a tipi deboli, Monarch è a tipi forti. Ciò significa che l'esecuzione di funzioni specifiche per un singolo tipo su una metrica di tipo diverso (ad esempio l'esecuzione di rate()
su una metrica GAUGE o di histogram_quantile()
su una metrica COUNTER o non tipizzata) non funzionerà in Managed Service per Prometheus, anche se queste funzioni funzionano in Prometheus esistente.