PromQL est l’abréviation de Prometheus Query Language: c'est principalement via le PromQL que l'utilisateur peut récupérer/exploiter les métriques enregistrées dans Prometheus sous forme de séries temporelles (time series).
En général on affiche les valeurs retournées dans un graphique ou on les exporte en utilisant l'API HTTP.
Le serveur Prometheus propose une interface web écoutant par défaut sur le port 9090. Via cette interface on peut écrire et tester ses requêtes.
PromQL est un DSL1) construit sur Go. C'est également un langage fonctionnel imbriqué NFL2) dans lequel les données apparaissent comme des expressions contenues/imbriquées dans les expressions plus larges. L'expression la plus extérieure retourne la valeur finale. Chaque expression imbriquée fournit une valeur qui sert de variable pour l'expression supérieure.
PromQL permet de récupérer des métriques similaires par type, de les regrouper pour les afficher ensemble. Cela peut apporter une meilleure visibilité sur une situation sans avoir à basculer entre différents indicateurs. PromQL permet également de regrouper les métriques via leurs labels puis d'effectuer des tris sur ces regroupements.
Dans Prometheus, il faut bien distinguer:
Le type counter permet d'enregistrer la valeur absolue d'une grandeur quelconque. Par exemple la métrique promhttp_metric_handler_requests_total
conservant le nombre total de scrapes est de type counter. NB: Un compteur s'incrémente seulement, il ne peut que croître ou se réinitialiser.
Le type gauge peut varier, croître ou décroître. Les métriques de type gauge peuvent fournir des moyennes ou un intervalle de valeurs.
Le type histogram comprend _count
_sum
et _bucket
Le PromQL en conséquence a 4 type de données: