As consultas da PromQL no serviço gerenciado do Google Cloud para o Prometheus são parcialmente avaliadas no back-end do Monarch usando a linguagem de consulta do Monitoring (MQL, na sigla em inglês) e há algumas diferenças conhecidas nos resultados da consulta. Veja neste documento as diferenças.
Além das diferenças listadas neste documento, o PromQL no serviço gerenciado para Prometheus é igual ao PromQL disponível na versão 2.44 do Prometheus.
Novas funções do PromQL
As funções PromQL adicionadas após a versão 2.44 do Prometheus podem não ser compatíveis.
Como corresponder com nomes de métricas
Só é possível fazer a correspondência exata com nomes de métricas.
Inatividade
A inatividade não é compatível com o back-end do Monarch.
Cálculo de irate
Quando a janela de lookback da função irate
é menor que o tamanho da etapa, aumentamos a janela para o tamanho da etapa.
A MQL requer essa mudança para garantir que nenhum dos dados de entrada seja completamente ignorado na saída. Essa diferença também se aplica a cálculos rate
.
Cálculo de rate
e increase
Quando a janela de lookback da função rate
é menor que o tamanho da etapa, aumentamos a janela para o tamanho da etapa.
A MQL requer essa mudança para garantir que nenhum dos dados de entrada seja completamente ignorado na saída. Essa diferença também se aplica a cálculos irate
.
Há diferenças nos cálculos de interpolação e extrapolação. O Monarch usa um algoritmo de interpolação diferente do Prometheus, e essa diferença pode levar a resultados um pouco diferentes. Por exemplo, as amostras do contador Monarch são armazenadas com um intervalo de tempo em vez do único carimbo de data/hora usado pelo Prometheus. Portanto, as amostras de contador no Monarch podem ser incluídas em um cálculo de taxa, mesmo que o carimbo de data/hora do Prometheus as exclua. Isso normalmente gera resultados de taxa mais precisos, especialmente ao consultar o início ou o fim da série temporal subjacente.
Cálculo de histogram_quantile
Um cálculo histogram_quantile
do PromQL em um histograma sem amostras produz um valor NaN. O cálculo da MQL não produz valor. ou seja, a MQL descarta o ponto no carimbo de data/hora.
As diferenças de cálculo de taxa também podem afetar a entrada em consultas histogram_quantile
.
Funções específicas de tipo em métricas de tipos diferentes
Embora o Prometheus upstream seja do tipo fraco, o Monarch tem uma classificação forte. Isso significa que a execução de funções específicas para um único tipo em uma métrica de tipo diferente (por exemplo, executar rate()
em uma métrica do GAUGE ou histogram_quantile()
em uma métrica de COUNTER ou sem tipo) não funcionará em Serviço gerenciado para o Prometheus, mesmo que essas funções funcionem no Prometheus upstream.