L’ingénierie de l’observabilité consiste à concevoir et à construire de systèmes intrinsèquement observables, et à utiliser des outils et des méthodes avancés pour collecter, analyser et visualiser les données d’observabilité.
Si le système est observable, les développeurs sont en mesure de discerner l’état des systèmes logiciels, de l’infrastructure et des composants réseau en analysant leurs sorties externes. Les outils de surveillance informatique classiques sont généralement incapables de fournir une visibilité complète sur les environnements logiciels complexes d’aujourd’hui, qui présentent une architecture distribuée et une multitude de microservices et d’autres composants interdépendants.
Les systèmes logiciels et les environnements informatiques modernes exigent des outils de Full Stack Observability avancés, dotés de fonctionnalités de traçage distribué, d’indicateurs complets et de capacités de journalisation. Avec l’ingénierie de l’observabilité, les fonctionnalités d’observabilité sont intégrées aux systèmes de développement et de production.
Les ingénieurs intègrent les fonctions d’observabilité dans le code des applications, l’infrastructure et les couches middleware, et incorporent les données d’événements système dans les pipelines de surveillance. Ils utilisent des outils avancés qui font corréler les événements système entre conteneurs, pods, serveurs et réseaux de diffusion de contenu (CDN) pour assurer une traçabilité de bout en bout dans les environnements cloud natifs complexes.
L’ingénierie de l’observabilité aide les équipes à analyser les données de surveillance et de télémétrie, à créer des mécanismes d’alerte plus dynamiques et à obtenir des visualisations des données et des tableaux de bord plus nuancés. Elle favorise également une stratégie d’observabilité de type shift left, qui permet aux développeurs de détecter de manière proactive les problèmes système, d’identifier leur cause racine et de déterminer le moyen le plus efficace de les résoudre en exécutant des fonctionnalités d’observabilité plus tôt dans le cycle de développement.
En intégrant l’ingénierie de l’observabilité dans leurs pratiques de développement et de gestion des réseaux, les entreprises sont en mesure de créer des systèmes plus observables, qui facilitent la mise à disposition d’applications et de services sécurisés, hautement disponibles et performants.
L’observabilité est la possibilité de comprendre l’état interne d’un système complexe en s’appuyant uniquement sur la connaissance de ses sorties externes, en particulier de sa télémétrie.
Les équipes informatiques surveillent et analysent plus facilement la performance des systèmes s’ils sont observables. Par exemple, elles peuvent déterminer avec précision la manière dont les données circulent dans la pile technologique de l’entreprise (applications, centres de données sur site et environnements cloud), et localiser les goulots d’étranglement. Ces informations leur permettent d’identifier et de résoudre les problèmes plus rapidement, et donc de créer des systèmes généralement plus solides et plus résilients.
L’observabilité consiste essentiellement à transformer les données brutes en informations exploitables. Contrairement aux approches traditionnelle de la surveillance (qui associent indicateurs prédéfinis et dépannage réactif), l’observabilité repose toutefois sur une approche proactive.
Les outils d’observabilité s’appuient sur la collecte de données à partir d’un large éventail de sources pour approfondir l’analyse et accélérer la résolution des problèmes. Ils collectent des données de télémétrie et d’autres données à partir de divers composants du réseau (conteneurs, pods et microservices, entre autres) pour fournir aux équipes de développement une vue holistique de l’état et de la performance des composants et des systèmes dont ils font partie.
La télémétrie comprend les « trois piliers » de l’observabilité : les journaux, les indicateurs et les traces.
Les journaux sont des enregistrements détaillés des événements qui surviennent au sein des réseaux et des systèmes logiciels. Ils précisent ce qui est arrivé, à quel moment, et à quel endroit du réseau.
Les indicateurs sont des mesures chiffrées de la performance du système et de l’utilisation des ressources. Ils donnent une vue d’ensemble de l’état de santé du système à travers des indicateurs clés de performance (KPI) comme la latence, la perte de paquets, la bande passante disponible ou encore l’utilisation du CPU.
Les traces sont des enregistrements de bout en bout du parcours de chaque requête utilisateur à travers le réseau. Elles permettent de suivre le comportement des paquets de données entre différents dispositifs et systèmes complexes, ce qui est essentiel pour comprendre les environnements distribués.
Contrairement aux outils de surveillance, les plateformes d’observabilité utilisent la télémétrie de manière proactive. Les équipes DevOps et les ingénieurs en fiabilité des sites (SRE) utilisent des outils d’observabilité pour corréler les données de télémétrie en temps réel et obtenir une vue complète et contextualisée de l’état du système. Ces fonctionnalités leur permettent de mieux comprendre chaque composant du système, ainsi que les relations entre eux.
En offrant une vue d’ensemble de l’environnement informatique, y compris ses dépendances, les solutions d’observabilité permettent d’identifier le quoi, le lieu et le pourquoi de chaque événement, et de comprendre l’impact potentiel de cet événement sur les performances globales du système. Elles peuvent également détecter automatiquement de nouvelles sources de télémétrie susceptibles d’apparaître dans le système, comme un nouvel appel d’interface de programmation d’application (API) dans une application.
Les fonctionnalités de télémétrie et de corrélation des données dictent généralement la manière dont les ingénieurs logiciels et les équipes DevOps instrumentent les applications, assurent le débogage et résolvent les problèmes. Ces outils permettent aux équipes informatiques de détecter et de résoudre les problèmes avant qu’ils ne s’aggravent, afin d’assurer une connectivité sans faille, des temps d’arrêt minimes et une expérience utilisateur optimisée.
Elles fournissent également un feedback que les développeurs peuvent ensuite intégrer dans leurs pratiques d’observabilité, ce qui les rend incontournables dans l’ingénierie de l’observabilité.
L’efficacité de l’ingénierie de l’observabilité repose sur quelques principes importants que voici :
Intégrer la journalisation, les indicateurs et le traçage dans le code base des applications permet aux équipes d’ingénierie de capter les données critiques aux points de collecte clés.
Les équipes peuvent utiliser des formats de journalisation structurés (comme JSON) pour rationaliser la gestion des registres et faciliter leur recherche, ainsi que leur analyse. Instrumenter chaque microservice et chaque intégration tierce afin de collecter des traces pour les requêtes de données entrantes et sortantes permet d’obtenir une visibilité complète sur l’environnement informatique. Les développeurs sont ainsi en mesure de détecter et d’appliquer les correctifs plus rapidement.
Les outils de traçage distribué, qui visualisent le chemin de chaque requête de données dans un environnement informatique, aident les équipes informatiques à résoudre rapidement les problèmes qui y surviennent.
Les développeurs peuvent utiliser des identifiants uniques pour suivre le parcours des requêtes à travers divers services et obtenir des informations détaillées tout au long des opérations. Par exemple, les ingénieurs peuvent attribuer des identifiants de trace uniques à chaque requête de données entrante à la périphérie de l’écosystème (au niveau des passerelles d’API, par exemple) et appliquer des identifiants span à chaque segment du parcours.
Les SLO sont les objectifs de performance convenus pour un service sur une période donnée. Ils permettent de s’assurer que les entreprises respectent les accords de niveau de service (SLA), à savoir les contrats entre fournisseurs de services et clients qui définissent le service et le niveau de performance à fournir aux utilisateurs.
La mise en place d’indicateurs clairs et quantifiables, qui représentent l’expérience réelle des utilisateurs, et la définition d’objectifs réalisables en matière de fiabilité et de performance système font partie intégrante de l’ingénierie de l’observabilité. Ce processus permet non seulement de s’assurer que les ingénieurs disposent toujours de données d’observabilité pertinentes, mais aussi d’améliorer la détection et la résolution des problèmes.
L’ingénierie de l’observabilité ne se contente pas de déplacer l’observabilité à gauche dans le cycle de développement. Il s’agit également de favoriser un développement axé sur l’observabilité. Ici, les pratiques d’observabilité sont intégrées dans les workflows quotidiens des développeurs et orientent la manière dont les ingénieurs créent et gèrent le code.
Outre les données de télémétrie et les outils de corrélation, l’ingénierie de l’observabilité repose sur les éléments suivants :
Il est essentiel d’établir des protocoles de surveillance robustes pour assurer l’observabilité des systèmes. Les outils de surveillance collectent et suivent en permanence toute une série d’indicateurs système, notamment l’utilisation de la mémoire, le taux d’erreur, les temps de réponse et les résultats des transactions synthétiques. La surveillance en temps réel permet de s’assurer que les ingénieurs disposent d’informations à jour sur le comportement du système.
La plupart des solutions d’observabilité proposent également des mécanismes d’alerte automatisés pour informer les équipes des événements anormaux et des écarts par rapport aux bases de référence établies.
Les événements structurés sont des enregistrements de données qui contiennent des paires clé-valeur décrivant une activité ou un événement au sein du système. La transmission d’événements structurés est souvent le meilleur moyen de suivre les activités et les changements importants du système. En effet, cela permet d’identifier le contexte et la séquence d’opérations à l’origine d’un état ou d’une erreur.
Chaque événement comprend généralement un identifiant unique, des métadonnées (telles que les en-têtes et les variables) et un horodatage de l’exécution, ce qui est extrêmement utile pour assurer le débogage, l’audit et l’analyse contextuelle.
Les outils de surveillance de la performance des applications offrent une visibilité complète sur l’état des applications et sur l’expérience de l’utilisateur final. Ils suivent les indicateurs critiques de performance des applications tels que le débit des transactions, la latence et les dépendances entre les services, pour permettre aux équipes de diagnostiquer les goulots d’étranglement, de tracer les interactions des utilisateurs et de comprendre l’impact des changements dans la pile applicative.
Les tableaux de bord regroupent et affichent des mesures, des journaux et des traces provenant de différents composants du système. Ils offrent aux équipes des informations visualisées pour évaluer rapidement la performance du système, identifier les tendances des données et repérer les problèmes. Les tableaux de bord sont souvent personnalisables, ce qui permet aux développeurs de les configurer pour mettre en évidence les données les plus pertinentes pour chaque partie prenante de l’entreprise.
L’ingénierie de l’observabilité est étroitement liée aux méthodes DevOps et SRE (ingénierie de fiabilité des sites).
Les équipes disposent des données nécessaires pour mettre en œuvre des pratiques d’observabilité avancées telles que le marquage des fonctionnalités (les nouvelles fonctionnalités sont activées ou désactivées au moment de l’exécution pour définir quels utilisateurs peuvent y accéder) et les déploiements bleu-vert (les développeurs exécutent deux environnements de production parallèles similaires, ou clusters, et chaque environnement exécute une version différente de l’application).
En intégrant l’ingénierie de l’observabilité aux pipelines CI/CD et aux processus d’automatisation, les équipes informatiques améliorent la fiabilité globale du système, accélèrent la livraison des logiciels et gèrent sereinement les modifications de l’environnement de production.
L’ingénierie de l’observabilité englobe un ensemble de pratiques et d’outils permettant d’améliorer la visibilité des environnements informatiques. Elle permet également aux développeurs de mettre en œuvre des techniques d'ingénierie plus avancées, dont voici quelques exemples :
L’ingénierie de l’observabilité aide les équipes à relier les indicateurs techniques (la latence, par exemple) aux principaux résultats de l’entreprise (tels que la satisfaction client ou la création de richesse). Cette approche permet au personnel informatique d’évaluer l’impact des problèmes techniques sur l’activité, de hiérarchiser les correctifs et d’aligner les priorités techniques sur les objectifs de l’entreprise.
Si, par exemple, les données d’observabilité montrent qu’une latence élevée est liée à une baisse du taux de conversion, les développeurs peuvent s’attaquer aux problèmes de latence pour stimuler la conversion.
OpenTelemetry est un cadre d’observabilité open source qui regroupe un ensemble de kits de développement logiciel (SDK), d’API agnostiques ou indépendantes du fournisseur et d’autres outils destinés à l’instrumentation des applications, systèmes et équipements. Il simplifie la collecte des données de télémétrie, quel que soit le langage de programmation, l’infrastructure ou l’environnement d’exécution, et permet aux développeurs de générer, recueillir et exporter des données de télémétrie standardisées vers n’importe quel back-end d’observabilité.
Avec OTel, les ingénieurs en observabilité peuvent collecter les données télémétriques avec cohérence, quels que soient les applications, les systèmes et les cas d’utilisation, rationaliser les pratiques d’intégration et d’observabilité des données et pérenniser leur environnement informatique.
La vérification continue permet aux développeurs d’intégrer des contrôles d’observabilité directement dans le pipeline CI/CD et d’identifier les problèmes avant qu’ils n’affectent la production. En utilisant des fonctionnalités automatisées de surveillance, de journalisation et d’alerte pendant la création et le déploiement d’applications, les équipes peuvent détecter rapidement les problèmes de performance. Ces processus améliorent la fiabilité du déploiement et accélèrent le cycle de feedback pour accélérer et améliorer la publication des versions logicielles.
Les entreprises peuvent utiliser des algorithmes alimentés par l’IA pour passer au crible de grandes quantités de données d’observabilité et détecter les problèmes émergents du système, susceptibles d’échapper aux outils traditionnels. Par exemple, la technologie de machine learning (ML) permet aux réseaux LSTM (long short-term memory) de mieux modéliser et apprendre à partir de données arrivant en séquence telles que les données de séries chronologiques et le langage naturel.
Les LSTM peuvent être entraînés sur des données de télémétrie pour identifier le comportement normal du système et prédire ses états futurs. Si les données réelles s’écartent considérablement des prévisions, les équipes reçoivent une alerte les informant d’une violation de la sécurité, d’une défaillance du réseau ou d’une dégradation du système.
L’ingénierie du chaos consiste pour les développeurs à provoquer de façon volontaire des défaillances dans l’environnement de production ou de préproduction, afin d’en évaluer l’impact sur le système. La simulation d’interruptions (telles que les pannes de réseau, les pannes de serveur et les pics de trafic) permet aux ingénieurs de l’observabilité d’identifier les vulnérabilités du système. Cela les aide également à améliorer leur posture de défense et leur stratégie de réponse aux incidents, et à s’assurer que le système peut faire face aux événements inattendus.
Identifiez et corrigez rapidement la source du problème. Les données haute fidélité en temps réel offrent une visibilité complète sur les environnements d’application et d’infrastructure dynamiques.
Intensifiez l’automatisation et les opérations informatiques avec l’IA générative, en alignant chaque aspect de votre infrastructure informatique sur vos priorités métier.
IBM SevOne Network Performance Management est un logiciel de surveillance et d’analyse qui fournit une visibilité et des analyses en temps réel sur les réseaux complexes.
1 Kumar, S. et Singh, R. (2024). Don't blame the user : Toward means for usable and practical authentication. Communications of the ACM, 67(4), 78–85. https://doi.org/10.1145/3706599.3719914.
2 Datadog. (n.d.). What Is LLM Observability & Monitoring?. Consulté le 19 mai 2025 sur le site https://www.datadoghq.com/knowledge center/llm-observability/.
3 LLM-observability, GitHub. Consulté le 19 mai 2025 sur le site https://github.com/DataDog/llm-observability, Datadog. (n.d.).
4 Dong, L., Lu, Q. et Zhu, L. (2024). AgentOps : Enabling Observability of LLM Agents. arXiv. https://arxiv.org/abs/2411.05285.
5 LangChain. (n.d.). Datadog LLM Observability - LangChain, Langsmith .js. Consulté le 19 mai 2025 sur le site https://js.langchain.com/docs/integrations/callbacks/datadog_tracer/.
6 Optimizing LLM Accuracy, consulté le 19 mai 2025 sur https://platform.openai.com/docs/guides/optimizing-llm-accuracy.
7 IBM Instana Observability. Consulté le 19 mai 2025 sur le site https://www.ibm.com/fr-fr/products/instana.
8 Monitoring AI Agents. Documentation IBM. Consulté le 19 mai 2025 sur https://www.ibm.com/docs/en/instana-observability/1.0.290?topic=applications-monitoring-ai-agents.
9 Zhou, Y., Yang, Y. et Zhu, Q. (2023). LLMGuard : Preventing Prompt Injection Attacks on LLMs via Runtime Detection. arXiv preprint arXiv:2307.15043. https://arxiv.org/abs/2307.15043.
10 Vesely, K. et Lewis, M. (2024). Real-Time Monitoring and Diagnostics of Machine Learning Pipelines. Journal of Systems and Software, 185, 111136. https://doi.org/10.1016/j.jss.2023.111136