La supervision (monitoring) correspond au processus de collecte, d’analyse et d’utilisation des informations des équipements physiques et logiciels qui composent le système d'informations, afin de suivre les progrès d’un programme vers la réalisation de ses objectifs, de détecter les éventuels dysfonctionnements et de garantir son fonctionnement optimal à tout moment.
Ce suivi porte sur l’observation de paramètres spécifiques et peut fournir bien des données supplémentaires. Mais il est généralement considéré indépendamment du contexte plus large du système.
La supervision consiste à surveiller un système à l’aide d’**indicateurs connus à l’avance**.
L’observabilité désigne quant à elle la capacité de comprendre l’état interne d’un système en analysant les données observables dont font partie les artefacts numérisés, tels que les journaux, les traces, les appels API, le temps d’attente, les téléchargements et les transferts de fichiers, qui sont générés lorsqu’une partie prenante prend une mesure quelconque. L’observabilité aide les équipes à analyser ce qui se passe afin de pouvoir détecter et résoudre les causes sous-jacentes des problèmes.
Si l’on devait résumer : la supervision permet de connaître la situation d’un système, tandis que l’observabilité aide à déterminer plus précisément ce qui se passe et ce qu’il convient de faire.
La journalisation désigne la pratique consistant à enregistrer les événements qui se produisent dans un système, tels que les erreurs, les avertissements et les messages informatifs.
Chaque entrée de journal (log) contient des informations sur un événement survenu à un moment précis, ce qui aide au suivi du système et au débogage.
Valeur monotone qui ne peut qu’augmenter (sauf remise à zéro). Sert à compter un nombre d’événements.
##### Jauge (Gauge)
Valeur qui peut augmenter ou diminuer librement. Représente un état instantané.
##### Histogramme
C'est un ensemble de valeurs qui sont rangées dans des intervalles fixes (appelés buckets). Sert à analyser la distribution des valeurs. Les histogrammes peuvent être cumulés.
##### Résumé statistique (Summary)
Donne des valeurs précises correspondant à des quantiles.
Le traçage consiste à capturer le parcours d’une requête à travers les différents composants d’un système.
Il permet de comprendre comment les services interagissent entre eux lors de l’exécution d’une même requête.
Chaque trace est associée à un identifiant global (trace ID) transmis à travers l’ensemble des services impliqués.
Des outils de traçage distribué comme Jaeger ou Zipkin permettent de visualiser le chemin parcouru par la requête, afin d’identifier facilement les goulots d’étranglement ou les points de défaillance.
OpenTelemetry fournit une approche standardisée pour implémenter le traçage dans différents langages de programmation.
Le traçage permet de mettre en évidence des problèmes de performance à divers niveaux de l’architecture des services.
Les KPI (Key Performance Indicator) sont un sous-ensemble d’indicateurs, sélectionnés car ils donnent une vision synthétique de la performance du système.