L’analyse des métriques avec Prometheus peut être complexe en raison du volume de données à traiter.
Sans une agrégation efficace, il est difficile de dégager des tendances claires et d’effectuer des analyses ciblées.
Cet article détaille l’utilisation des opérateurs d’agrégation en PromQL pour simplifier et optimiser l’analyse des séries temporelles.
Devenez expert dans la supervision d'infrastructures avec Prometheus.
L’agrégation des données est une étape cruciale dans l’analyse des métriques avec Prometheus. Elle permet de regrouper et de résumer des séries temporelles pour dégager des tendances globales ou effectuer des analyses ciblées sur des sous-ensembles spécifiques. Grâce à des opérateurs d’agrégation, il est possible de calculer des sommes, des moyennes, des maximums, des minimums, ou encore d’identifier des tendances statistiques comme la variance ou l’écart-type.
Dans cette section, nous explorerons en détail les opérateurs d’agrégation disponibles dans PromQL, ainsi que des exemples pratiques exécutés avec PromLens, qui facilite la visualisation et la compréhension des résultats.
Opérateurs d'Agrégation PromQL
Les opérateurs d’agrégation permettent de manipuler des séries temporelles en fonction de différents critères. Ils sont souvent utilisés pour produire des résultats globaux ou par groupe en fonction de certains labels. Voici un aperçu des principaux opérateurs disponibles :
Opérateur | Description | Exemple d’Utilisation |
---|---|---|
sum | Calcule la somme des valeurs des séries temporelles | sum(scrape_samples_scraped) |
min | Trouve la valeur minimale parmi toutes les séries temporelles | min(scrape_samples_scraped) |
max | Trouve la valeur maximale parmi toutes les séries temporelles | max(scrape_samples_scraped) |
avg | Calcule la moyenne des valeurs des séries temporelles | avg(scrape_samples_scraped) |
group | Regroupe les séries sans calcul, en fonction des labels communs | group(scrape_samples_scraped) |
stddev | Calcule l’écart-type des valeurs des séries temporelles | stddev(scrape_samples_scraped) |
stdvar | Calcule la variance des valeurs des séries temporelles | stdvar(scrape_samples_scraped) |
count | Compte le nombre de séries temporelles disponibles | count(scrape_samples_scraped) |
count_values | Compte les séries en fonction d’une valeur spécifique | count_values(« value », scrape_samples_scraped) |
bottomk | Affiche les k valeurs les plus faibles | bottomk(5, scrape_samples_scraped) |
topk | Affiche les k valeurs les plus élevées | topk(5, scrape_samples_scraped) |
quantile | Calcule un quantile donné pour une distribution de valeurs | quantile(0.95, scrape_samples_scraped) |
Chaque opérateur peut être combiné avec des labels grâce aux clauses by ou without, permettant de définir des groupes ou d’exclure certains critères.
Agrégation avec PromLens et Prometheus
Dans cette section, nous explorerons quelques exemples pratiques pour illustrer le fonctionnement des opérateurs d’agrégation. Les résultats seront décrits pour chaque requête.
1. Requête Simple : scrape_samples_scraped
Cette requête de base affiche les valeurs brutes de la métrique scrape_samples_scraped, sans aucune transformation ou agrégation. Cela permet de visualiser directement les séries temporelles collectées par Prometheus.
2. Somme de Toutes les Séries : sum(scrape_samples_scraped)
Avec l’opérateur sum, cette requête calcule la somme totale de toutes les valeurs de scrape_samples_scraped. Elle est particulièrement utile pour obtenir un indicateur global de la collecte des échantillons.
3. Agrégation par Label : sum(scrape_samples_scraped) by (job)
Cette requête regroupe les séries par le label job et calcule la somme pour chaque groupe. Cela permet d’analyser la contribution de chaque job à l’ensemble des échantillons collectés.
4. Agrégation en Excluant un Label : sum(scrape_samples_scraped) without (instance)
L’utilisation de la clause without exclut un label spécifique dans l’agrégation. Ici, on regroupe les séries par tous les labels sauf instance, ce qui permet de regrouper les données au niveau des jobs sans différenciation par instance.
5. Valeur Minimale : min(scrape_samples_scraped)
Cette requête identifie la plus petite valeur parmi toutes les séries temporelles pour scrape_samples_scraped. Cela peut être utile pour détecter des anomalies ou des sous-performances.
Cas d'Agrégation et Résultats PromQL
Requête | Description | Résultat attendu |
---|---|---|
sum(scrape_samples_scraped) | Calcule la somme totale des échantillons collectés | Somme globale de toutes les valeurs |
sum(scrape_samples_scraped) by (job) | Calcule la somme des échantillons, regroupée par job | Somme pour chaque job |
min(scrape_samples_scraped) | Trouve la plus petite valeur parmi toutes les séries | Valeur minimale mesurée |
topk(3, scrape_samples_scraped) | Affiche les 3 valeurs les plus élevées parmi toutes les séries | Les 3 plus grandes valeurs |
quantile(0.90, scrape_samples_scraped) | Calcule le 90e percentile pour les valeurs collectées | Valeur du 90e percentile |
Conclusion sur l'Agrégation de Données
Les opérateurs d’agrégation de Prometheus sont essentiels pour transformer les données brutes en informations exploitables. Que ce soit pour analyser les performances globales d’un système ou pour isoler des tendances spécifiques, ces opérateurs offrent une flexibilité inégalée. Avec PromLens, la visualisation des résultats en temps réel permet de comprendre facilement les impacts des différentes agrégations et de créer des requêtes adaptées à des cas d’usage variés.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Quels sont les principaux opérateurs d'agrégation en PromQL ?
Comment les opérateurs d'agrégation peuvent-ils être utilisés avec PromLens ?
Pourquoi est-il important d'utiliser des opérateurs d'agrégation dans PromQL ?
Quels sont les cas pratiques d'utilisation des opérateurs d'agrégation ?
Comment les opérateurs 'by' et 'without' modifient-ils les résultats d'agrégation ?
Conclusion
Les opérateurs d’agrégation sont des outils puissants pour transformer les données en informations exploitables. Comment comptez-vous intégrer ces techniques pour améliorer votre analyse de données Prometheus ?