Observabilité
Introduction
L’observabilité d’un système représente la capacité de connaitre l’état interne en fonction de ce qu’il produit. Elle concerne trois grands groupes de mesure :
- Les mesures
-
Elles sont une aggregations de données numérique sur une période donnée à propos de l’infrastructure ou de nos applications. Par exemple: utilisation cpu, utilisation mémoire, nombre de requêtes sur un endpoint, etc.
- Les logs
-
Un log est un message émis par un applicatif avec un temps défini (et potentiellement d’autres attributs)
- Les Traces
-
Elles représentent l’intégralité des traitements applicatifs nécessaire au traitement d’une demande tierce et sont souvent représentées sous forme de diagramme waterfall.

Mise en oeuvre
La mise en oeuvre de l’observabilité présuppose l’existence d’outillage pour recevoir les différents type de données, ainsi que la récolte et éventuellement leur corrélation.
Prometheus est utilisé pour récolter/requêter les métriques.
Tempo est utilisé pour récolter/requêter les traces.
Loki est utilisé pour récolter/requêter les logs.
OpenTelemetry est utilisé pour réaliser la glue entre ces différents éléments et les applications.
Pour donner un élément de context supplémentaire il est important de garder à l’esprit que Prometheus doit aller chercher lui même les métriques via des jobs. Il faut donc à tout prix limiter le nombre de jobs qui pourrait changer dans le temps.
Seule une sous partie des déploiements est ici représentée pour illustrer le fonctionnement.