C’est quoi une métrique ?

C’est quoi une Métrique ?

En informatique, une métrique est une valeur numérique qui évolue dans le temps. Elle peut être positive, négative, entière ou décimale.
Un moyen simple de représenter une métrique est de tracer la courbe de sa valeur (en ordonnée) en fonction du temps (en abscisse). Par exemple pour une seule métrique:

Exemple de métrique graphée
Graphique d’évolution de la valeur de « Ma Métrique » entre 14h et 17h.

Définitions

Une métrique (metric) est définie par :

  • Un nom
  • (Optionnel) Des étiquettes (labels)

Un point de données (datapoint) correspond à une valeur d’une métrique à un instant T. Il est défini par:

  • Une métrique
  • Une valeur
  • Un horodatage (date + heure)

Une série temporelle (timeseries) est définie par l’ensemble des points d’une métrique, qui permettra de tracer un graphique de sa valeur en fonction du temps.

Les Étiquettes

Aussi appelées labels par les anglophones, les étiquettes permettent d’apporter du détail à une métrique et de la rendre unique. Elles sont composées de deux éléments :

  • Une clé (le nom de l’étiquette)
  • Une valeur associée à la clé

Les étiquettes permettent de différencier les métriques portant le même nom. Dans le cas de capteurs de température, nous pouvons imaginer qu’ils soient répartis dans le monde entier, et que nous rajoutons 2 étiquettes avec les clés suivantes:

  • pays
  • ville

Les étiquettes sont un des éléments clés pour obtenir une observabilité robuste. Plus elles sont nombreuses et pertinentes, plus les données pourront être exploitées efficacement par la suite. Par exemple avec les deux étiquettes définies plus haut, il sera possible de calculer la température moyenne d’un pays, ou d’obtenir une liste des villes les plus chaudes de chaque pays.

Création de Métriques

Les métriques viennent de capteurs, mais aussi des applications et serveurs que nous utilisons tous les jours. Ce sont les fabricants, développeurs et administrateurs qui doivent outiller leurs solutions pour mettre en valeur leurs données avec des métriques.

Il existe de nombreux formats propriétaires qui permettent de décrire une métrique. La communauté libre a développé le format standardisé OpenMetrics, projet porté par la Cloud Native Computing Foundation.

Centralisation

Les métriques sont souvent dispersées, et pour réduire la latence et les difficultées d’exploitation, elles doivent être centralisées. Il existe deux façons de transporter ces métriques.

Tirer (Pull)

Le système de centralisation va initier les connexions avec les applications pour récupérer des points de données. Le système de centralisation doit connaître et avoir accès à toutes les applications qui produisent des métriques. Cette méthode est simple à mettre en place et est utilisée dans le projet Prometheus.

Schema Pull Based

Pousser (Push)

Schema Push Based

Cette fois, ce sont les applications qui initient la connexion vers le système de centralisation pour envoyer les points de données. Cette méthode a l’avantage d’être plus simple dans les environnements sécurisés, puisque les applications n’ont pas besoin d’être joignables par le système de centralisation, et ont uniquement besoin d’un flux sortant. C’est aussi la méthode préférée pour centraliser les autres types de données de télémétrie.

Il n’y a pas de bonne ou de mauvaise façon de faire, les deux implémentations sont possibles pour centraliser ces métriques mais demanderont plus ou moins de travail selon la sécurité des pare-feux mise en place.

Où Stocker ses Métriques ?

Les métriques sont généralement centralisées puis stockées dans des Bases de Données de Séries Temporelles (Time Series DataBases, ou TSDB). Il existe de nombreuses solutions open source pour stocker ses Time Series, avec différentes performances mais surtout différents langages de requêtage.

Nous avons fait le choix de nous orienter vers une TSDB qui supporte le PromQL et permet de passer à l’échelle (horizontal scaling).

Voici quelques solutions qui répondent à ces critères:

  • Prometheus + Thanos
  • Grafana Mimir
  • VictoriaMetrics

Chez DeltOps nous avons fait le choix d’utiliser VictoriaMetrics, mais les autres solutions sont aussi très robustes et n’importe quelle solution pourrait faire l’objet d’une migration si de nouvelles fonctionnalités devenaient nécessaires.

👉 Si vous souhaitez bénéficier d’une TSDB clé en main, n’hésitez pas à nous contacter.

Retour en haut