PromQL Explainer · Observabilidade
Entenda qualquer consulta PromQL.
Cole uma consulta PromQL e obtenha um desmembramento em linguagem simples de cada cláusula — seletores, ranges, rate, agregações e comparações — grátis, inteiramente no seu navegador, sem cadastro.
Playground do PromQL Explainer
Tip: press Esc to release focus.
Load an example or paste your own PromQL query, then explain it to see a plain-English summary and a token-by-token breakdown here.
A lacuna
PromQL se escreve uma vez e nunca mais se lê.
Um alerta de PromQL é fácil de escrever e difícil de reler. Seis meses depois — ou no pull request de um colega — uma linha como sum by (job) (rate(...[5m])) / sum by (job) (rate(...[5m])) > 0.05 exige esforço de verdade para decifrar: qual janela, quais rótulos, qual limite, e por que uma razão afinal?
O explainer transforma esse trabalho em um relance. Ele analisa a expressão e narra cada cláusula — o seletor e seus comparadores, o range, o rate, o agrupamento sum by, e a comparação final — para que um revisor, um engenheiro de plantão ou qualquer um que tente entender a expressão de uma regra de alerta do Prometheus possa ler a intenção sem reconstruir a consulta na cabeça.
Novo na sintaxe? Dê uma olhada na sintaxe que decodificamos ou experimente o playground ao vivo acima.
O pipeline
Como funciona.
Quatro passos determinísticos rodam de ponta a ponta a cada toque em Explicar, todos dentro da aba do seu navegador, sempre.
-
Analisa a consulta.
Sua expressão PromQL é analisada em uma árvore de sintaxe — seletores, ranges, chamadas de função, agregações e operadores binários — no mesmo formato que o Prometheus lê.
-
Nomeia cada cláusula.
Cada nó é rotulado pelo seu papel: a métrica e seus comparadores de rótulos, qualquer vetor de range e offset, o rate ou a agregação que o envolve, e a comparação.
-
Traduz para linguagem simples.
Cada cláusula nomeada é transformada em uma frase curta e legível que descreve o que ela seleciona, calcula ou afirma, sem deixar jargão sem definição.
-
Mostra o desmembramento.
As cláusulas anotadas são costuradas em um único resumo em linguagem simples mais uma lista parte por parte, para que você leia a consulta de cima para baixo ou cláusula a cláusula.
A sintaxe
O que ele decodifica.
O explainer lê PromQL padrão. Se você já escreveu uma consulta de alerta ou de dashboard do Prometheus, estes exemplos vão parecer familiares — cole qualquer um deles no playground para ver o desmembramento completo.
Uma razão de alerta
Um clássico alerta de taxa de erro: um comparador regex =~ em status, um range 5m, um rate, duas agregações sum by (job) divididas em uma razão, e um limite > 0.05. O explainer nomeia cada um.
sum by (job) (
rate(http_requests_total{status=~"5.."}[5m])
)
/
sum by (job) (
rate(http_requests_total[5m])
) > 0.05 Um quantil de latência
Uma consulta de latência p99: histogram_quantile sobre um sum by (le) dos rates de buckets. O explainer destaca o quantil 0.99, o agrupamento le que faz o histograma funcionar, e a janela de range.
histogram_quantile(
0.99,
sum by (le) (
rate(http_request_duration_seconds_bucket[5m])
)
) Para a gramática formal, consulte os fundamentos de consulta e a referência de funções do Prometheus.
Uma nota sobre o escopo
O explainer descreve o que uma consulta significa, não o que ela retorna: ele nunca se conecta a um servidor Prometheus e não avalia nenhum dado. Ele cobre os padrões comuns de alertas e dashboards — seletores e comparadores, ranges e offsets, rate / increase, os operadores de agregação, histogram_quantile e companhia, e comparações binárias. Subconsultas profundamente aninhadas podem ser resumidas em vez de totalmente decompostas. Trate a saída como uma leitura fiel da expressão, não um substituto da documentação oficial.
FAQ
Suas perguntas, respondidas.
Toque em uma pergunta para expandir a resposta.
O que é o PromQL Explainer?
O PromQL Explainer é uma ferramenta gratuita, que roda no navegador, que pega uma consulta PromQL do Prometheus e a decompõe em uma explicação em linguagem simples. Ele percorre cada parte da expressão — o seletor de métrica e seus comparadores de rótulos, qualquer range ou offset, o rate ou a agregação que o envolve, e a comparação de limite no final — para que você possa ler o que uma consulta realmente faz sem analisá-la de cabeça.
Minha consulta sai do meu navegador em algum momento?
Não. O explainer roda 100% no lado do cliente. Sua consulta é analisada e explicada dentro da aba do seu navegador: nada é enviado para um servidor, e não há conta nem cadastro. Você pode colar com segurança consultas que referenciam nomes internos de métricas ou rótulos.
Quais recursos do PromQL ele entende?
O explainer cobre os padrões que você encontra com mais frequência em alertas e dashboards: seletores de vetores instantâneos e de range com comparadores de rótulos (=, !=, =~, !~), durações de range e offsets, rate / irate / increase, os operadores de agregação (sum, avg, max, min, count e companhia) com agrupamento by / without, funções comuns como histogram_quantile e clamp, e comparações binárias contra um limite. Subconsultas exóticas ou profundamente aninhadas podem ser resumidas em vez de totalmente decompostas.
Qual a diferença disto para rodar a consulta no Prometheus?
O Prometheus mostra o resultado de uma consulta; o explainer mostra o significado dela. Ele não se conecta a um servidor Prometheus nem retorna dados de séries temporais: lê a própria expressão e descreve a intenção. Isso o torna útil para revisar a regra de alerta de um colega, aprender PromQL ou conferir a sanidade de uma consulta antes de publicá-la.
Posso usá-lo para aprender PromQL?
Sim. Como cada cláusula é nomeada e descrita, o explainer também funciona como apoio didático: cole um exemplo de um runbook ou dashboard e veja exatamente de qual seletor, range, agregação e comparação ele é construído. Combine-o com a documentação oficial de consultas do Prometheus para a gramática formal.
O PromQL Explainer é afiliado ao Prometheus?
Não. É uma ferramenta independente e comunitária, e não é afiliada nem endossada pelo projeto Prometheus nem pela Cloud Native Computing Foundation. Prometheus é uma marca registrada da The Linux Foundation. A ferramenta modela a sintaxe do PromQL por familiaridade e usa o nome do fornecedor apenas para descrever o que ela explica.
O que a função rate() significa em uma consulta PromQL?
rate() calcula a taxa média de aumento por segundo de um contador ao longo da janela de range — por exemplo, rate(http_requests_total[5m]) faz a média do aumento por segundo durante os cinco minutos completos. Ela suaviza os picos e é a escolha padrão para métricas de contador e regras de alerta. O explainer identifica rate() e nomeia a duração do range para que você leia a janela num relance.
Qual é a diferença entre rate() e irate() no PromQL?
rate() faz a média do aumento por segundo ao longo de todo o vetor de range, produzindo valores estáveis que se adequam a alertas e contadores de movimento lento. irate() usa apenas as duas últimas amostras da janela, o que o torna mais responsivo, porém mais ruidoso — melhor reservá-lo para gráficos de contadores de movimento rápido em que você quer ver picos curtos. O explainer rotula aquele que aparecer na sua consulta e descreve o seu comportamento.
O que [5m] significa em uma consulta PromQL?
Colchetes com uma duração definem um vetor de range — eles dizem ao PromQL para retornar todas as amostras de cada série correspondente naquela janela retroativa. [5m] significa os últimos cinco minutos de dados. Funções como rate(), increase() e avg_over_time() exigem um vetor de range como entrada, então os colchetes são o que faz essas funções funcionarem.
Como leio comparadores de rótulos do PromQL como {job="api", status!="200"}?
As chaves contêm uma lista separada por vírgulas de comparadores de rótulos que filtram quais séries temporais são selecionadas. O operador = corresponde a um valor exato, != o exclui, =~ corresponde por expressão regular e !~ exclui por expressão regular. Então {job="api", status!="200"} seleciona as séries do job api descartando qualquer uma com status HTTP 200. O explainer nomeia cada comparador e seu operador em linguagem simples.
Mais ferramentas de observabilidade gratuitas e privadas.
O PromQL Explainer faz parte do cluster de observabilidade do OpsCanopy — traduza consultas com o Helper LogQL ↔ PromQL, ou faça testes unitários das suas regras do Loki com o AlertLint. Cada um roda inteiramente no seu navegador e nunca toca em um servidor.
Mais em Observabilidade
Começando com Kubernetes? Leia o guia de Kubernetes →
29 ferramentas gratuitas, todas capazes de funcionar offline — o opscanopy.com não exige cadastro e não envia nada.
Trabalha com Loki também? Combine isto com o AlertLint, ou explore o diretório completo de ferramentas.
Não é afiliado nem endossado pelo projeto Prometheus nem pela Cloud Native Computing Foundation. Prometheus é uma marca registrada da The Linux Foundation.