Introduction
Maintenant que Prometheus collecte les métriques de Node Exporter, vous pouvez commencer à poser des questions sur ces données.
Prometheus possède son propre langage d’interrogation, appelé PromQL (Prometheus Query Language).
PromQL est important, car les métriques brutes ne sont utiles que lorsque vous pouvez les filtrer, les combiner et effectuer des calculs pour obtenir des réponses pertinentes.
C’est à ce stade que la supervision devient une analyse plutôt qu’une simple collecte. Prometheus n’est pas utile uniquement parce qu’il stocke des nombres, mais aussi parce que PromQL vous permet de transformer ces nombres en questions et en réponses.
Dans ce laboratoire, vous poserez trois types de questions :
- Fait simple : « Quelle quantité de mémoire libre reste-t-il ? »
- Taux : « À quelle vitesse le processeur travaille-t-il ? »
- Calcul : « Quel pourcentage de la mémoire est utilisé ? »
Vous utiliserez l’interface Web de Prometheus (service Web) pour saisir ces questions et consulter les réponses.
Interroger la mémoire libre
Dans cette étape, vous allez interroger le nombre d’octets de mémoire libre et enregistrer la réponse.
Commençons par un fait simple. Nous voulons savoir quelle quantité de mémoire (RAM) est libre.
Ouvrez d’abord l’interface de Prometheus :
Cliquez sur l’onglet Prometheus dans le menu situé en haut à gauche de l’interface LabEx pour ouvrir le tableau de bord.
Une fois l’interface chargée, repérez la barre de recherche principale. C’est à cet endroit que vous saisirez vos questions destinées au bibliothécaire.
Saisissez la requête suivante dans la barre de recherche :
node_memory_MemFree_bytes
Ce texte correspond au nom du point de données qui représente la « mémoire libre ». Après l’avoir saisi, cliquez sur le bouton Execute.

Observez le résultat :
Vous devriez voir un nombre dans la colonne « Value ». Il peut sembler étonnamment élevé, par exemple 5204746240. C’est normal, car les ordinateurs mesurent la mémoire en octets (Bytes), qui sont de très petites unités.
Remarque : le nombre de la colonne « Value » peut parfois être masqué par la fenêtre de discussion Labby. Si vous ne voyez pas la valeur, fermez temporairement la boîte de dialogue Labby pour l’afficher, puis rouvrez-la lorsque vous avez terminé.
Pour vérifier que vous avez obtenu le bon résultat (puisque nous ne pouvons pas voir votre écran), exécutez la commande suivante dans le terminal afin d’enregistrer la réponse dans un fichier :
curl "http://localhost:9090/api/v1/query?query=node_memory_MemFree_bytes" > ~/project/free_memory.json
cat ~/project/free_memory.json
{"status":"success","data":{"resultType":"vector","result":[{"metric":{"__name__":"node_memory_MemFree_bytes","instance":"localhost:9100","job":"node_exporter"},"value":[1768698428.127,"4001128448"]}]}}
Interroger le taux d’utilisation du processeur
Dans cette étape, vous allez utiliser rate() pour interroger la vitesse d’augmentation d’un compteur du processeur.
Passons maintenant à une question plus difficile.
Le compteur de vitesse d’une voiture n’indique pas le « nombre total de kilomètres parcourus », mais les « kilomètres par heure », c’est-à-dire la vitesse.
L’utilisation du processeur fonctionne de manière similaire. Prometheus enregistre le « nombre total de secondes pendant lesquelles le processeur a travaillé depuis son démarrage ». Cette valeur ne fait qu’augmenter.
Les métriques de ce type sont appelées des compteurs : elles s’accumulent au fil du temps. Pour comprendre le comportement actuel, vous devez souvent utiliser une fonction comme rate(), qui transforme une augmentation cumulative en un signal par unité de temps.
Pour savoir « à quel point le processeur travaille actuellement », nous devons calculer le taux (la vitesse).
La question :
rate(node_cpu_seconds_total[1m])
Décomposition :
node_cpu_seconds_total: les données brutes (nombre total de secondes).[1m]: « examiner les données de la dernière minute ».rate(...): « calculer la vitesse à laquelle cette valeur a augmenté pendant cette minute ».
Essayez dans l’interface Web :
Collez la requête rate(node_cpu_seconds_total[1m]) dans la barre de recherche, puis cliquez sur Execute. Vous verrez probablement de nombreuses lignes de nombres, car votre ordinateur possède plusieurs cœurs de processeur !
Enregistrez la réponse (pour vérification) :
curl -g "http://localhost:9090/api/v1/query?query=rate(node_cpu_seconds_total[1m])" > ~/project/cpu_rate.json
L’option -g (--globoff) désactive l’expansion des motifs d’URL de curl : curl transmet ainsi les crochets littéraux de [1m] au lieu de les interpréter comme une plage dans l’URL. Les guillemets du shell maintiennent l’URL complète de la requête dans un seul argument.
Calculer des pourcentages
Dans cette étape, vous allez combiner des métriques de mémoire pour obtenir un pourcentage.
« 500 millions d’octets libres » est difficile à interpréter. « 50 % libres » est plus clair.
Prometheus peut effectuer ce calcul à votre place.
Cette capacité arithmétique rend PromQL puissant pour l’exploitation. Vous pouvez combiner plusieurs métriques de bas niveau afin de créer des indicateurs d’état de niveau supérieur, plus faciles à interpréter.
Nous voulons savoir : quel pourcentage de la mémoire est UTILISÉ ?
La formule est la suivante : $$ \text{Pourcentage utilisé} = \frac{\text{Mémoire totale} - \text{Mémoire libre}}{\text{Mémoire totale}} \times 100 $$
La requête PromQL :
(node_memory_MemTotal_bytes - node_memory_MemFree_bytes) / node_memory_MemTotal_bytes * 100
Essayez dans l’interface Web :
Collez cette longue équation dans la barre de recherche, puis cliquez sur Execute. Vous devriez voir un nombre unique, par exemple 45.2. Cela signifie que 45,2 % de votre mémoire est utilisée.
Enregistrez la réponse :
curl "http://localhost:9090/api/v1/query?query=(node_memory_MemTotal_bytes-node_memory_MemFree_bytes)/node_memory_MemTotal_bytes*100" > ~/project/memory_usage.json
Visualiser les données
Dans cette étape, vous allez représenter la requête de mémoire sous forme de graphique et interpréter ses axes.
Enfin, les images sont plus parlantes que les nombres.
Avec votre requête de calcul toujours affichée dans la barre de recherche, repérez les onglets situés au-dessus de la zone de résultats. Vous verrez un onglet Graph, généralement placé à côté de l’onglet Table, utilisé pour afficher les résultats textuels simples.
Cliquez sur l’onglet Graph. Vous verrez une courbe représentant l’utilisation de votre mémoire au fil du temps.
- Axe X : temps
- Axe Y : pourcentage utilisé
Si vous voyez une ligne droite, cela signifie que l’utilisation de votre mémoire est stable. Si vous avez exécuté un programme exigeant, vous devriez voir un pic !
Une dernière vérification :
Puisque vous consultez simplement un graphique, vérifions que votre serveur fonctionne toujours en arrière-plan :
ps aux | grep prometheus
Résumé
Dans ce laboratoire, vous avez appris à poser des questions au bibliothécaire à l’aide de PromQL.
Vous avez appris à utiliser :
- Les faits simples :
node_memory_MemFree_bytes - Les taux (vitesses) :
rate(... [1m]) - Les calculs :
(Total - Free) / Total * 100 - Les graphiques : utiliser l’onglet Graph.
Maintenant que vous savez consulter les données, l’étape suivante consiste à faire alerter Prometheus si quelque chose ne va pas. C’est ce qu’on appelle les alertes.



