Exemples de requêtes pour Node Exporter
Taux d'utilisation du processeur (en pourcentage)
100 - (avg by (hote) (irate(cpu_temps_total{etat="inactif"}[5m])) * 100)
Mémoire effectivement consommée (en octets)
memoire_totale_octets - memoire_libre_octets - memoire_cache_octets - memoire_tampon_octets - memoire_slab_octets
Taux d'occupation mémoire (en pourcentage)
((memoire_totale_octets - memoire_libre_octets - memoire_cache_octets - memoire_tampon_octets - memoire_slab_octets) / memoire_totale_octets) * 100
Taux d'occupation mémoire pour un nœud spécifique
((memoire_totale_octets{hote="192.168.61.223:9100"} - memoire_disponible_octets{hote="192.168.61.223:9100"}) / memoire_totale_octets{hote="192.168.61.223:9100"}) * 100
Taux d'utilisation disque pour un nœud spécifique
((taille_systeme_fichiers_octets{type_fs=~"xfs|ext4",hote="192.168.61.223:9100"} - espace_libre_octets{type_fs=~"xfs|ext4",hote="192.168.61.223:9100"}) / taille_systeme_fichiers_octets{type_fs=~"xfs|ext4",hote="192.168.61.223:9100"}) * 100
Temps de fonctionnement depuis le démarrage (en secondes)
time() - heure_amorcage
Temps de fonctionnement pour un nœud spécifique
time() - heure_amorcage_secondes{hote="192.168.61.223:9100"}
Débit réseau sortant (en octets/seconde)
irate(octets_emis_reseau_total{interface!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m]) > 0
Débit réseau sortant filtré par hôte
irate(octets_emis_reseau_total{hote="192.168.61.223:9100", interface!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m]) > 0
Débit réseau entrant (en octets/seconde)
irate(octets_recus_reseau_total{interface!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m]) > 0
Débit réseau entrant filtré par hôte
irate(octets_recus_reseau_total{hote="192.168.61.223:9100", interface!~"lo|bond[0-9]|cbr[0-9]|veth.*"}[5m]) > 0
Vitesse de lecture disque (en octets/seconde)
irate(octets_lus_disque_total{peripherique=~"sd.*"}[5m])
Remarque : irate convient aux compteurs évoluant rapidement, tandis que rate est préférable pour les compteurs à variation lente.
Exemples de requêtes pour cAdvisor (conteneurs)
Utilisation CPU par conteneur
sum(irate(temps_cpu_conteneur_total{image!=""}[1m])) without (processeur)
Somme totale de l'utilisation CPU de l'ensemble des conteneurs
sum(sum(rate(temps_cpu_conteneur_total{nom=~".+"}[1m])) by (nom) * 100)
Consommation mémoire d'un conteneur (en octets)
octets_memoire_conteneur{image!=""}
Somme de la mémoire résidente de tous les conteneurs
sum(memoire_rss_conteneur{nom=~".+"})
Utilisation mémoire actuelle par conteneur
octets_memoire_conteneur{nom=~".+"}
Total de l'utilisation mémoire acteulle
sum(octets_memoire_conteneur{nom=~".+"})
Taux de réception réseau des conteneurs (en octets/seconde)
sum(rate(octets_recus_reseau_conteneur_total{image!=""}[1m])) without (interface)
Taux d'émission réseau des conteneurs (en octets/seconde)
sum(rate(octets_emis_reseau_conteneur_total{image!=""}[1m])) without (interface)
Vitesse de lecture du sysstème de fichiers (en octets/seconde)
sum(rate(octets_lecture_fs_total{image!=""}[1m])) without (peripherique)
Vitesse d'écriture du système de fichiers (en octets/seconde)
sum(rate(octets_ecriture_fs_total{image!=""}[1m])) without (peripherique)
Alerte : bande passante entrante supérieure à 50 Mo
sum by (espace_nom, tache, nom_pod) (irate(octets_recus_reseau_conteneur_total{image!=""}[3m])) / 1024 / 1024 > 50
Alerte : bande passante sortante supérieure à 50 Mo
sum by (espace_nom, tache, nom_pod) (irate(octets_emis_reseau_conteneur_total{image!=""}[1m])) / 1024 / 1024 > 50
Fondamentaux du langage de requête Prometheus
Une série temporelle représente l'ensemble des valeurs d'une métrique observée à des instants successifs.
Opérateurs de sélection sur les étiquettes :
=: correspondance exacte!=: exclusion exacte=~: correspondance par expression régulière!~: exclusion par expression régulière
Unités temporelles :
s: secondesm: minutesh: heuresd: joursw: semainesy: années
La notation [1m] désigne la fenêtre temporele couvrant la dernière minute écoulée.
Modificateurs d'agrégation :
bool: retourne 0 ou 1 selon le résultat booléenand: intersection de sériesor: union de sériesunless: complémenton: spécification des dimensions de jointurewithout: exclusion de dimensions lors de l'agrégationby: restriction aux dimensions spécifiées lors de l'agrégation