New Relic oferece suporte à consulta no estilo PromQL, e nosso criador de consulta oferece um modo de consulta no estilo PromQL que traduz a consulta de sintaxe do PromQL na aproximação mais próxima NRQL . Embora o método de aproximação signifique que alguns casos extremos não são totalmente suportados, ele fornece cobertura para a esmagadora maioria das consultas, suportando mais de 99,5% das consultas nos 7,8 milhões de downloads principais dashboard Grafana.
Continue lendo para saber como trabalhamos com a consulta PromQL, bem como as diferenças entre o PromQL padrão e nossa linguagem de consulta semelhante ao PromQL que queremos que você conheça.
Importante
Para obter informações gerais sobre consultas e operadores do Prometheus, consulte a documentação do Prometheus.io .
Recurso suportado
Oferecemos suporte às seguintes funções de agregação, aritmética, matemática e semelhantes a taxas. À medida que continuamos a expandir o suporte para Prometheus e PromQL, esta lista será atualizada.
PromQL resolução de problemas
Esta seção descreve as diferenças de comportamento entre o PromQL e nosso comportamento de consulta no estilo PromQL e como trabalhar com essas diferenças e contorná-las. Isto é particularmente relevante se você quiser usar consulta avançada e nosso modo estilo PromQL no criador de consulta.
Tipos métricos
As recomendações do Prometheus observam que você deve usar apenas algumas funções, como delta(), no medidor, e apenas outras como rate() e increase() nos contadores, mas as consultas no Prometheus ainda funcionam na maior parte do tempo, mesmo que não funcionem siga essas instruções.
No entanto, como o NRDB converte contadores acumulados no estilo PromQL em contadores delta
, nossa implementação é implacável ao usar essas funções no tipo de dados errado e produzirá respostas diferentes ou incorretas.
Por esse motivo, é melhor seguir todas as recomendações do Prometheus ao trabalhar com nossa consulta estilo PromQL, mesmo que você não siga essas recomendações no Prometheus.
Limites
- Para garantir a estabilidade e o desempenho do nosso sistema para todos os usuários, colocamos alguns limites nas consultas que podem ser executadas. Em todos os casos, aplicamos um limite de 366 passos na consulta de alcance. Por padrão, também retornamos apenas 100 séries temporais da consulta.
- Se quiser ver mais (ou menos), você precisa adicionar explicitamente um
topk()
à sua consulta. (Observe que a implementaçãotopk()
em nossa consulta no estilo PromQL é diferente daquela do Prometheus.) - Limitamos a memória total que uma consulta pode usar. Isso significa que solicitações para um grande número de etapas de tempo ou um grande número de séries temporais podem ser rejeitadas, especialmente se forem combinadas com uma agregação como
count
ouquantile
exclusivo, que requer significativamente mais memória para calcular do que simples agregações aritméticas.
Seletores de vetor de faixa (janelas deslizantes e comportamento de suavização)
Fornecemos suporte para agregações de séries temporais em janelas deslizantes. Para obter mais informações, consulte nossa referência NRQL e detalhes sobre janelas deslizantes.
Para obter informações sobre como traduzir entre NRQL e nossa linguagem estilo PromQL, consulte Traduzir consulta PromQL para NRQL.
Intervalo de consulta e intervalos de coleta de dados
- O intervalo da sua consulta no PromQL deve ser maior que a duração do tamanho da etapa da consulta para evitar o erro "
TIMESERIES
tamanho do intervalo é maior que a janela de tempo atual". - Inspecionamos dados com até um minuto de idade ao atender consultas instantâneas. Se o intervalo de raspagem for superior a 1 minuto, algumas consultas poderão resultar em No data found. Evite isso enviando dados pelo menos uma vez por minuto.
- Se a unidade da série temporal da sua consulta NRQL for menor que o intervalo de raspagem do seu aplicativo, alguns períodos não terão dados e o gráfico resultante poderá ser irregular ou conter picos e vales. Em geral, defina o tamanho do passo para o intervalo de raspagem ou superior.