Aller au contenu

PromQL Explainer · Observability

Comprenez n’importe quelle requête PromQL.

Collez une requête PromQL et obtenez une décomposition en langage clair de chaque clause — sélecteurs, plages, rate, agrégations et comparaisons — gratuitement, entièrement dans votre navigateur, sans inscription.

Fonctionne dans votre navigateur Sans inscription Gratuit et ouvert Mis à jour le 28 juil. 2026

Bac à sable du PromQL Explainer

query.promql

Tip: press Esc to release focus.

Explanation

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.

Le manque

PromQL s’écrit une fois et ne se relit jamais.

Une alerte PromQL est facile à écrire et difficile à relire. Six mois plus tard — ou dans la pull request d’un collègue — une ligne comme sum by (job) (rate(...[5m])) / sum by (job) (rate(...[5m])) > 0.05 demande un réel effort à décoder : quelle fenêtre, quelles étiquettes, quel seuil, et pourquoi un ratio finalement ?

L’explorateur transforme ce travail en un coup d’œil. Il analyse l’expression et raconte chaque clause — le sélecteur et ses filtres, la plage, le rate, le regroupement sum by, et la comparaison finale — afin qu’un relecteur, un ingénieur d’astreinte ou quiconque tente de comprendre une expression de règle d’alerte Prometheus puisse lire l’intention sans reconstruire la requête de tête.

Nouveau dans cette syntaxe ? Parcourez la syntaxe que nous décodons ou essayez le bac à sable interactif ci-dessus.

Le pipeline

Comment ça marche.

Quatre étapes déterministes s’exécutent de bout en bout à chaque appui sur Explain — entièrement dans votre onglet de navigateur, à chaque fois.

  1. Analyser la requête.

    Votre expression PromQL est analysée en un arbre syntaxique — sélecteurs, plages, appels de fonction, agrégations et opérateurs binaires — la même forme que celle que lit Prometheus.

  2. Nommer chaque clause.

    Chaque nœud est étiqueté selon son rôle : la métrique et ses filtres d’étiquettes, tout vecteur de plage et décalage, le rate ou l’agrégation qui l’enveloppe, et la comparaison.

  3. Traduire en langage clair.

    Chaque clause nommée est rendue en une phrase courte et lisible décrivant ce qu’elle sélectionne, calcule ou affirme — aucun jargon n’est laissé sans définition.

  4. Afficher la décomposition.

    Les clauses annotées sont assemblées en un résumé unique en langage clair, accompagné d’une liste partie par partie, afin que vous puissiez lire la requête de haut en bas ou élément par élément.

La syntaxe

Ce qu’il décode.

L’explorateur lit du PromQL standard. Si vous avez déjà écrit une requête d’alerte ou de tableau de bord Prometheus, ces exemples vous sembleront familiers — collez l’un ou l’autre dans le bac à sable pour voir la décomposition complète.

Un ratio d’alerte

Une alerte classique de taux d’erreur : un filtre regex =~ sur status, une plage de 5m, un rate, deux agrégations sum by (job) divisées en un ratio, et un seuil > 0.05. L’explorateur nomme chacun d’eux.

error-rate.promql
sum by (job) (
  rate(http_requests_total{status=~"5.."}[5m])
)
/
sum by (job) (
  rate(http_requests_total[5m])
) > 0.05

Un quantile de latence

Une requête de latence p99 : histogram_quantile sur un sum by (le) des rates de buckets. L’explorateur met en évidence le quantile 0.99, le regroupement le qui fait fonctionner l’histogramme, et la fenêtre de plage.

p99-latency.promql
histogram_quantile(
  0.99,
  sum by (le) (
    rate(http_request_duration_seconds_bucket[5m])
  )
)

Pour la grammaire formelle, consultez les Prometheus bases du requêtage et la référence des fonctions.

Une note sur la portée

L’explorateur décrit ce qu’une requête signifie, et non ce qu’elle renvoie : il ne se connecte jamais à un serveur Prometheus et n’évalue aucune donnée. Il couvre les motifs courants d’alertes et de tableaux de bord — sélecteurs et filtres, plages et décalages, rate / increase, les opérateurs d’agrégation, histogram_quantile et leurs semblables, et les comparaisons binaires. Les sous-requêtes profondément imbriquées peuvent être résumées plutôt qu’entièrement décomposées. Considérez le résultat comme une lecture fidèle de l’expression, et non comme un substitut à la documentation officielle.

FAQ

Vos questions, nos réponses.

Appuyez sur une question pour afficher la réponse.

Le PromQL Explainer est un outil gratuit, exécuté dans le navigateur, qui prend une requête PromQL de Prometheus et la décompose en une explication en langage clair. Il parcourt chaque partie de l’expression — le sélecteur de métrique et ses filtres d’étiquettes, toute plage ou tout décalage, le rate ou l’agrégation qui l’enveloppe, et la comparaison de seuil à la fin — afin que vous puissiez lire ce qu’une requête fait réellement sans avoir à l’analyser de tête.

Non. L’explorateur fonctionne à 100 % côté client. Votre requête est analysée et expliquée à l’intérieur de votre onglet de navigateur — rien n’est envoyé à un serveur, et il n’y a ni compte ni inscription. Vous pouvez coller en toute sécurité des requêtes qui font référence à des noms de métriques ou d’étiquettes internes.

L’explorateur couvre les motifs que vous rencontrez le plus souvent dans les alertes et les tableaux de bord : les sélecteurs de vecteurs instantanés et de plage avec filtres d’étiquettes (=, !=, =~, !~), les durées de plage et les décalages, rate / irate / increase, les opérateurs d’agrégation (sum, avg, max, min, count et leurs semblables) avec regroupement by / without, des fonctions courantes comme histogram_quantile et clamp, et les comparaisons binaires par rapport à un seuil. Les sous-requêtes exotiques ou profondément imbriquées peuvent être résumées plutôt que entièrement décomposées.

Prometheus vous indique le résultat d’une requête ; l’explorateur vous en indique la signification. Il ne se connecte pas à un serveur Prometheus et ne renvoie aucune donnée de séries temporelles — il lit l’expression elle-même et en décrit l’intention. Cela le rend utile pour relire la règle d’alerte d’un collègue, apprendre PromQL ou vérifier la cohérence d’une requête avant de la livrer.

Oui. Comme chaque clause est nommée et décrite, l’explorateur fait aussi office de support pédagogique : collez un exemple tiré d’un runbook ou d’un tableau de bord et lisez exactement de quel sélecteur, de quelle plage, de quelle agrégation et de quelle comparaison il est constitué. Associez-le à la documentation officielle de requêtage de Prometheus pour la grammaire formelle.

Non. C’est un outil communautaire indépendant qui n’est ni affilié au projet Prometheus ou à la Cloud Native Computing Foundation, ni approuvé par eux. Prometheus est une marque de The Linux Foundation. L’outil reproduit la syntaxe PromQL par souci de familiarité et n’utilise le nom du fournisseur que pour décrire ce qu’il explique.

rate() calcule le taux d’augmentation moyen par seconde d’un compteur sur la fenêtre de plage — par exemple, rate(http_requests_total[5m]) fait la moyenne de l’augmentation par seconde sur l’ensemble des cinq minutes. Elle lisse les pics et constitue le choix standard pour les métriques de type compteur et les règles d’alerte. L’explorateur identifie rate() et nomme la durée de plage afin que vous puissiez lire la fenêtre d’un coup d’œil.

rate() fait la moyenne de l’augmentation par seconde sur l’ensemble du vecteur de plage, produisant des valeurs stables qui conviennent aux alertes et aux compteurs à évolution lente. irate() n’utilise que les deux derniers échantillons de la fenêtre, ce qui le rend plus réactif mais plus bruité — à réserver de préférence à la représentation graphique de compteurs à évolution rapide où l’on veut voir les pics brefs. L’explorateur étiquette celui qui apparaît dans votre requête et décrit son comportement.

Des crochets contenant une durée définissent un vecteur de plage — ils indiquent à PromQL de renvoyer tous les échantillons de chaque série correspondante sur cette fenêtre de recul. [5m] désigne les cinq dernières minutes de données. Des fonctions telles que rate(), increase() et avg_over_time() exigent un vecteur de plage en entrée ; ce sont donc les crochets qui font fonctionner ces fonctions.

Les accolades contiennent une liste de filtres d’étiquettes séparés par des virgules qui déterminent quelles séries temporelles sont sélectionnées. L’opérateur = correspond à une valeur exacte, != l’exclut, =~ correspond par expression régulière, et !~ exclut par expression régulière. Ainsi, {job="api", status!="200"} sélectionne les séries du job api tout en écartant celles dont le statut HTTP est 200. L’explorateur nomme chaque filtre et son opérateur en langage clair.

D’autres outils d’observabilité gratuits et privés.

Le PromQL Explainer fait partie de la grappe d’observabilité OpsCanopy — traduisez des requêtes avec l’ assistant LogQLPromQL, ou testez unitairement vos règles Loki avec AlertLint. Chacun fonctionne entièrement dans votre navigateur et ne touche jamais à un serveur.

Vous débutez avec Kubernetes ?  Lire le guide Kubernetes →

29 outils gratuits, tous utilisables hors ligne — opscanopy.com fonctionne sans inscription et sans rien téléverser.

Vous travaillez aussi dans Loki ? Associez ceci à AlertLint, ou parcourez l’ensemble du répertoire d’outils.

Ni affilié au projet Prometheus ou à la Cloud Native Computing Foundation, ni approuvé par eux. Prometheus est une marque de The Linux Foundation.