Formatteur et validateur de requêtes PromQL
Guide
Formater et valider instantanément des requêtes Prometheus PromQL
Le formatateur et validateur de requêtes PromQL nettoie les requêtes que vous écrivez contre Prometheus et d'autres bases de données compatibles avec les séries temporelles. Collez une expression métrique et l'outil normalise l'espace autour des opérateurs binaires, organise les agrégations, les appels de fonction et les matcheurs de labels sur des lignes séparées lorsque la requête devient longue, et identifie les parenthèses déséquilibrées, les accolades mal correspondantes, les durées manquantes et d'autres problèmes syntaxiques avant même que vous n'aiez collé la requête dans un tableau de bord ou une règle d'alerte. Tout cela fonctionne localement dans votre navigateur, donc les requêtes — qui exposent souvent des noms internes de métriques et des étiquettes — ne quittent jamais votre appareil.
Comment utiliser
- Collez votre requête PromQL dans la zone d'entrée, ou téléchargez un
.promqlou fichier texte à l'aide du sélecteur de fichier. - Choisissez la largeur d'indentation — 2 espaces, 4 espaces ou un caractère de tabulation littéral — pour toute expansion sur plusieurs lignes.
- Définissez la longueur maximale d'une ligne. Les appels de fonction, les ensembles de matcheurs de labels et les opérateurs booléens à faible priorité (
and,or,unless) sont placés sur des lignes séparées une fois que la ligne formatée dépasserait cette largeur. - Basculer Toujours séparer si vous souhaitez que chaque agrégation, chaque liste d'arguments d'appel de fonction et chaque ensemble de matcheurs de labels soit sur une ligne séparée, indépendamment de la longueur.
- Basculer Formater comme règle de enregistrement et fournir un nom de métrique (par exemple
job:http_errors:rate5m) pour émettre la requête formatée comme une règle de enregistrement prête à être collée sous forme de YAML Prometheus. - Copiez le résultat formaté ou téléchargez-le sous forme de
.promqlfichier.
Caractéristiques
- Sensibilité à l'espace PromQL – Insère un espace unique autour des opérateurs arithmétiques, de comparaison et booléens tout en maintenant les matcheurs de labels serrés à l'intérieur
{ }des accolades. - Disposition intelligente sur plusieurs lignes – Interrompt les requêtes longues à
and/or/unlessd'abord, puis aux limites des arguments de fonction, puis aux matcheurs individuels de labels afin que le résultat reste facile à scanner. - Soutien des agrégations et des matcheurs de vecteurs – Reconnaît
sum,avg,topk,quantileet amis avecby,without,on,ignoring,group_leftetgroup_rightmodificateurs. - Tokeniseur de durée et de sous-requête – Analyse des intervalles composés comme
1h30met des sous-requêtes comme[5m:1m]comme des unités uniques afin qu'elles ne soient jamais coupées au milieu d'un mot. - Validation de syntaxe – Détecte les parenthèses, crochets et accolades déséquilibrées, les ouvriers et fermiers mal correspondants, les corps de matcheurs de labels invalides, les intervalles de sous-index invalides et les chaînes non terminées, chacun signalé avec un numéro de ligne.
- Exportation de règle de enregistrement – Optionnellement, formate la requête formatée comme un bloc de règle de enregistrement Prometheus en YAML, en utilisant un scalaire de bloc YAML pour les expressions multi-lignes afin que l'indentation soit conservée.
Cas d'utilisation courants
- Nettoyer des requêtes PromQL copiées à la main des éditeurs de panneaux Grafana avant de les intégrer dans des tableaux de bord ou des règles d'alerte.
- Préparer des expressions PromQL pour une revue de code — des requêtes longues sur les taux d'erreur ou la saturation deviennent des différences lisibles une fois que chaque branche est sur sa propre ligne.
- Détecter des erreurs syntaxiques subtiles (durée manquante, virgule inattendue, fermeture manquante
{après modification des matcheurs de labels) sans passer par une instance de Prometheus en temps réel. - Convertir des requêtes brutes en YAML de règle de enregistrement Prometheus pour des pipelines de pré-agrégation.
- Apprendre PromQL — la sortie normalisée rend les priorités des opérateurs et les groupements d'agrégation immédiatement visibles pour les lecteurs apprenant la langue.
FAQ
-
Qu'est-ce que PromQL ?
PromQL (langage de requête Prometheus) est le langage de requête côté lecture utilisé par le système de surveillance Prometheus, ainsi que par des backends compatibles tels que Thanos, Mimir, Cortex, VictoriaMetrics et Amazon Managed Service for Prometheus. Il est spécifiquement conçu pour les données en série temporelle : chaque expression évalue un vecteur instantané, un vecteur de plage, un scalaire ou une chaîne, et les opérateurs comprennent la correspondance des ensembles d'étiquettes, le regroupement et les significations de taux au fil du temps, ce que le SQL généraliste ne comprend pas.
-
Quelle est la différence entre un vecteur instantané et un vecteur de plage ?
Un vecteur instantané est l'ensemble des échantillons de séries à un instant donné — par exemple, la valeur la plus récente de chaque série correspondant à http_requests_total. Un vecteur de plage est l'ensemble des échantillons sur une fenêtre de durée, écrit avec une durée entre crochets comme [5m]. Les vecteurs de plage ne peuvent pas être affichés directement ; ils sont des entrées pour des fonctions comme rate(), increase() et avg_over_time() qui réduisent la fenêtre à un vecteur instantané.
-
Comment `by` et `without` diffèrent-ils dans les agrégations ?
Les deux modifient le comportement de regroupement des opérateurs d'agrégation comme sum et avg. La clause `by` conserve uniquement les étiquettes listées dans la sortie, donc sum by (job) (rate(...)) réduit toutes les étiquettes sauf job. La clause `without` conserve toutes les étiquettes sauf celles listées, donc sum without (instance) (rate(...)) préserve toutes les autres dimensions. Des groupements équivalents peuvent être écrits de différentes façons ; les équipes choisissent généralement une méthode pour la cohérence.
-
Qu'est-ce qu'une règle de enregistrement et pourquoi pré-calculer une règle ?
Une règle de enregistrement est une expression PromQL nommée que Prometheus évalue selon un calendrier et écrit comme une nouvelle métrique. Le pré-calcul d'une expression complexe — par exemple, un taux d'erreur sur 5 minutes par service — permet aux tableaux de bord et aux règles d'alerte de requêter directement le résultat au lieu de recalculer l'expression à chaque rafraîchissement. La convention est de nommer les règles de enregistrement selon un modèle niveau:métrique:opération, comme job:http_requests_errors:rate5m, afin que leur signification soit immédiatement évidente à partir du nom de la métrique seul.
-
Qu'est-ce que `on`, `ignoring`, `group_left` et `group_right` font ?
Ces mots-clés contrôlent la manière dont PromQL correspond les séries entre les deux côtés d'une opération binaire. Par défaut, Prometheus exige que les ensembles d'étiquettes soient identiques des deux côtés ; `on(label, ...)` et `ignoring(label, ...)` permettent de restreindre ou de relaxer la clé de jointure. `group_left` et `group_right` transforment la correspondance en une jointure un à plusieurs ou plusieurs à un, en copiant les étiquettes du côté à forte cardinalité vers le résultat. Ils sont équivalents à un indice de jointure SQL pour les données en série temporelle.
Installez nos extensions
Ajoutez des outils IO à votre navigateur préféré pour un accès instantané et une recherche plus rapide
恵 Le Tableau de Bord Est Arrivé !
Tableau de Bord est une façon amusante de suivre vos jeux, toutes les données sont stockées dans votre navigateur. D'autres fonctionnalités arrivent bientôt !
Outils essentiels
Tout voir Nouveautés
Tout voirMise à jour: Notre dernier outil was added on Juin 24, 2026
