Formulador e Validador de Consultas PromQL
Guia
Formatar e validar consultas PromQL do Prometheus instantaneamente
O PromQL Query Formatter & Validator organiza as consultas que você escreve contra o Prometheus e outros bancos de dados compatíveis de séries temporais. Cole uma expressão métrica e a ferramenta normaliza os espaços ao redor de operadores binários, organiza agregações, chamadas de função e correspondências de rótulos em linhas separadas quando a consulta se torna longa, e aponta erros sintáticos como parênteses desbalanceados, chaves incorretas, faltas de duração e outros problemas antes de você colar a consulta em um painel ou regra de alerta. Tudo é executado localmente no seu navegador, então as consultas — que muitas vezes revelam nomes internos de métricas e rótulos — nunca deixam seu dispositivo.
Como usar
- Cole sua consulta PromQL na área de entrada ou carregue um
.promqlou arquivo de texto usando o seletor de arquivo. - Escolha a largura da indentação — 2 espaços, 4 espaços ou um caractere literal de tab — para qualquer expansão em múltiplas linhas.
- Defina o comprimento máximo de linha. Chamadas de função, conjuntos de correspondência de rótulos e operadores booleanos de baixa precedência (
and,or,unless) são quebradas em linhas separadas quando a linha formatada ultrapassar essa largura. - Alternar Sempre quebre se você quiser que cada agregação, lista de argumentos de chamada de função e conjunto de correspondência de rótulos esteja em uma linha separada, independentemente do comprimento.
- Alternar Envolver como regra de registro e forneça um nome de métrica (como
job:http_errors:rate5m) para emitir a consulta formatada como uma regra de registro pronta para colar em YAML do Prometheus. - Copie a saída formatada ou baixe-a como um
.promqlarquivo.
Características
- Espaçamento consciente ao PromQL – Insere um espaço único ao redor de operadores aritméticos, de comparação e booleanos, mantendo os rótulos de correspondência compactos dentro
{ }chaves. - Layout inteligente em múltiplas linhas – Quebra consultas longas em
and/or/unlessprimeiro, depois em limites de argumentos de função, depois em correspondências individuais de rótulos, para manter o resultado fácil de escanear. - Suporte a agregação e correspondência de vetores – Reconhece
sum,avg,topk,quantilee amigos juntos comby,without,on,ignoring,group_leftegroup_rightmodificadores. - Tokenizador de duração e subconsulta – Analisa intervalos compostos como
1h30me subconsultas como[5m:1m]como unidades únicas, para que nunca sejam divididas no meio de um token. - Validação de sintaxe – Detecta parênteses, colchetes e chaves desbalanceados, abertos e fechados incorretos, corpos de correspondência de rótulos inválidos, intervalos de subíndice inválidos e strings não terminadas, cada um relatado com um número de linha.
- Exportação de regra de registro – Opcionalmente envolve a consulta formatada como um bloco de regra de registro do Prometheus em YAML, usando um escalar de bloco YAML para expressões multilinhas para preservar a indentação.
Casos de uso comuns
- Limpeza de consultas PromQL ad-hoc copiadas de editores de painéis do Grafana antes de commit-las para painéis ou regras de alerta.
- Preparação de expressões PromQL para revisão de código — consultas longas de taxa de erro ou saturação tornam-se diffs legíveis uma vez que cada ramo está em uma linha separada.
- Detecção de erros sintáticos sutis (falta de duração, vírgula estranha, parêntese não fechado
{após edição de correspondências de rótulos) sem necessidade de passar pela instância do Prometheus ativa. - Conversão de consultas brutas em YAML de regra de registro do Prometheus para pipelines de pré-agregação.
- Ensinar PromQL — a saída normalizada torna a precedência dos operadores e o agrupamento de agregações imediatamente evidentes para leitores aprendendo a linguagem.
Perguntas frequentes
-
O que é PromQL?
PromQL (Linguagem de Consulta do Prometheus) é a linguagem de consulta de leitura usada pelo sistema de monitoramento Prometheus e por backends compatíveis, tais como Thanos, Mimir, Cortex, VictoriaMetrics e Amazon Managed Service for Prometheus. É projetada especificamente para dados de séries temporais: cada expressão avalia um vetor instantâneo, um vetor de intervalo, um escalar ou uma string, e os operadores entendem correspondência de conjuntos de rótulos, agrupamento e semântica de taxa ao longo do tempo, algo que uma linguagem SQL geral não faz.
-
Qual a diferença entre um vetor instantâneo e um vetor de intervalo?
Um vetor instantâneo é o conjunto de amostras de séries em um ponto específico no tempo — por exemplo, o valor mais recente de todas as séries que correspondem a http_requests_total. Um vetor de intervalo é o conjunto de amostras em um intervalo de tempo, escrito com um intervalo entre colchetes, como [5m]. Vetores de intervalo não podem ser exibidos diretamente; são entradas para funções como rate(), increase() e avg_over_time() que reduzem o intervalo de volta a um vetor instantâneo.
-
Como `by` e `without` se diferem em agregações?
Ambos modificam o comportamento de agrupamento de operadores de agregação como sum e avg. A cláusula `by` mantém apenas os rótulos listados na saída, então sum by (job) (rate(...)) colapsa todos os rótulos exceto job. A cláusula `without` mantém todos os rótulos exceto os listados, então sum without (instance) (rate(...)) preserva todas as dimensões exceto instance. Agrupamentos equivalentes podem ser escritos de forma alternativa; as equipes geralmente escolhem uma para consistência.
-
O que é uma regra de registro e por que pré-computar uma?
Uma regra de registro é uma expressão PromQL nomeada que o Prometheus avalia em um cronograma e escreve de volta como uma nova métrica. Pré-computar uma expressão complexa — por exemplo, uma taxa de erro de 5 minutos por serviço — permite que painéis e regras de alerta consultem o resultado diretamente, em vez de recomputar toda a expressão em cada atualização. A convenção é nomear regras de registro com um padrão level:metric:operation, como job:http_requests_errors:rate5m, para que seu significado seja evidente apenas a partir do nome da métrica.
-
O que fazem `on`, `ignoring`, `group_left` e `group_right`?
Essas palavras-chave controlam como o PromQL corresponde séries entre os dois lados de uma operação binária. Por padrão, o Prometheus exige conjuntos de rótulos idênticos nos dois lados; `on(label, ...)` e `ignoring(label, ...)` permitem restringir ou relaxar a chave de junção. `group_left` e `group_right` transformam a correspondência em uma junção de um para muitos ou de muitos para um, copiando rótulos do lado de alta cardinalidade para o resultado. São equivalentes a um hint de junção em SQL para dados de séries temporais.
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 O placar chegou!
Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente was added on Jun 24, 2026
