L’observabilité est la capacité de mesurer et de déduire l’état actuel d’un système en fonction des données qu’il génère. Ces données se présentent généralement sous la forme de journaux, de métriques et de traces. À titre d’exemple, vous pouvez observer l’état de santé de votre application de microservices en examinant ses métriques.
L'observabilité fournit aux développeurs une vue holistique du fonctionnement d'un système complexe. Grâce à la collecte, au stockage et à l’analyse des données, les développeurs acquièrent la capacité d’identifier et de résoudre les problèmes de leurs systèmes.
L'observabilité commence par la collecte de données en temps réel. Les données collectées sont ensuite stockées dans un emplacement centralisé pour analyse. Cette analyse peut être effectuée via un algorithme d’apprentissage automatique, une visualisation ou une combinaison de techniques statistiques.
Le résultat de cette analyse alerte les développeurs de toute anomalie au sein d’une application ou d’un système. Les alertes peuvent être automatisées et déclenchées par des seuils établis, des niveaux de gravité ou d’autres critères en fonction des besoins de l’entreprise ou de application . Une fois l’anomalie identifiée et localisée, les développeurs peuvent utiliser les données pour déboguer et résoudre le problème.
Comme mentionné ci-dessus, les principaux types de données d’observabilité sont les journaux, les métriques et les traces.
La surveillance est la capacité d'observer et de vérifier la progression des processus se déroulant au sein d'un système ou application. La surveillance s’appuie largement sur des mesures. En bref, il fournit une visualisation de l’environnement et vous permet de tester les problèmes connus. L’observabilité, en revanche, fournit des données nouvelles et plus approfondies qui vous permettent de déduire qu’un problème peut exister. Vous pouvez ensuite vous plonger dans la cause du problème pour avoir un aperçu de l’avenir.
La surveillance et l’observabilité ne sont pas clairement séparées. Il s’agit plutôt d’options d’analyse de données et de techniques de visualisation qui permettent aux développeurs d’accéder plus rapidement à des informations.
Une fois ces définitions établies, le tableau ci-dessous examine de plus près quatre différences subtiles entre la surveillance et l’observabilité dans les applications logicielles. Ces quatre différences sont divisées en portée, granularité, flexibilité et analyse.
Surveillance | Observabilité | |
---|---|---|
Portée | Mesure les paramètres (par exemple, la disponibilité du système, l'utilisation du processeur, les taux d'erreur) | Comprend les mécanismes du système à l’œuvre en fonction de leurs résultats |
Granularité |
Agrégats ou échantillons de données collectées à une cadence régulière (sur la base de mesures prédéfinies) |
Collecte et analyse des données granulaires pour obtenir une vision et une compréhension plus approfondies du comportement du système |
Flexibilité |
Implémente des tableaux de bord prédéfinis ou des seuils d'alerte difficiles à modifier une fois déployés |
Utilise une approche flexible et adaptable avec des outils faciles à modifier qui s'adaptent aux situations et aux exigences en constante évolution |
Analyse |
Identifie et réagit à des événements ou anomalies spécifiques |
Met l'accent sur l'analyse proactive et le dépannage en donnant aux développeurs les outils dont ils ont besoin pour identifier la cause d'un problème et mettre en œuvre des solutions au fil du temps |
La télémétrie dans l'observabilité des logiciels fait référence à la pratique de collecte et de transmission de données sur les performances et le comportement d'un système logiciel en temps réel. Ces données (temps de réponse, taux d’erreur, consommation de ressources, etc.) sont utilisées pour surveiller et comprendre l’état actuel du système et aider les développeurs à identifier les opportunités d’amélioration des performances.
Dans les conversations sur la télémétrie, OpenTelemetry (OTel) devient souvent un sujet de discussion car il offre une approche simplifiée pour faciliter l'observabilité pour les développeurs. OTel est un ensemble d'outils et de bibliothèques open source qui standardisent la collecte de données de télémétrie (journaux, métriques et traces) à partir de systèmes logiciels.
Vous pouvez en apprendre davantage sur OTel et sur la manière dont il affecte le paysage cloud natif dans Comment OpenTelemetry change la façon dont nous traçons et concevons des applications .
L'observabilité offre aux développeurs une meilleure compréhension de leurs applications, ce qui permet :
L'observabilité présente certains inconvénients, dont les plus courants sont :
NGINX est fier de fournir des ressources pédagogiques gratuites supplémentaires sur l'observabilité et l'OTel :