Appliquer la fonction rate et les filtres de labels
Dans cette étape, vous affinerez votre requête en utilisant des filtres par labels et la fonction rate() pour obtenir des données plus significatives. La valeur brute d'un compteur est souvent peu utile ; nous nous intéressons généralement davantage à son taux de changement.
Tout d'abord, filtrons les résultats pour n'afficher que le temps CPU passé en mode idle. Vous pouvez le faire en ajoutant un sélecteur de label entre accolades {} à votre requête.
- Entrez la requête suivante dans le navigateur d'expressions et exécutez-la :
node_cpu_seconds_total{mode="idle"}
Cette requête ne retourne maintenant que les séries temporelles où le label mode est exactement idle.
Ensuite, calculons le taux de changement par seconde pour ce compteur. Pour cela, nous utilisons la fonction rate(). La fonction rate() doit savoir sur quelle période de temps calculer le taux. Nous spécifions cela avec un sélecteur de vecteur de plage (range vector selector), comme [5m] pour les 5 dernières minutes.
- Maintenant, modifiez votre requête pour l'encapsuler dans la fonction
rate() et ajoutez un sélecteur de plage de 5 minutes. Exécutez la requête finale :
rate(node_cpu_seconds_total{mode="idle"}[5m])
Analysons cette requête avancée :
node_cpu_seconds_total{mode="idle"} : C'est le sélecteur de vecteur instantané (instant vector selector) qui filtre pour la métrique et le label souhaités.
[5m] : C'est le sélecteur de plage (range selector), qui indique à Prometheus de récupérer tous les points de données des 5 dernières minutes pour les séries temporelles sélectionnées.
rate(...) : C'est la fonction qui prend la plage de données de 5 minutes et calcule le taux moyen par seconde auquel le compteur a augmenté.
Le résultat n'est plus une grande valeur de compteur, mais une valeur généralement comprise entre 0 et 1 (pour un seul cœur de CPU). Une valeur de 0.95 signifierait que sur les 5 dernières minutes, le CPU était, en moyenne, inactif à 95 %. C'est une information beaucoup plus utile pour la surveillance.