Cet article présente une approche moderne d'observability applicatif centrée sur les traces (trace-first). L'auteur explique comment il a remplacé une majorité de logs et métriques par des traces, en utilisant des spans configurées dans l'application avec des attributs métiers et des événements pour ajouter du contexte. Il partage une application de démo en Python implémentant du tracing de bout en bout, avec une architecture classique et une API HTTP pour acheter des produits. L'application utilise SQLite, FastAPI, et des outils comme Opentelemetry Collector, Grafana, et Clickhouse pour le stockage et la visualisation des traces. L'auteur fournit des instructions pour cloner et exécuter l'application, ainsi que des exemples d'interactions via des commandes curl.
Cet article explore le concept de tracing avec OpenTelemetry, une technique puissante mais souvent sous-utilisée pour suivre les actions dans les systèmes distribués. Le tracing permet de visualiser le parcours détaillé d'une requête à travers différents services et bases de données, offrant une meilleure visibilité que les logs traditionnels. OpenTelemetry, en tant que standard ouvert, évite le lock-in des fournisseurs et permet une flexibilité dans le choix des outils de stockage et de visualisation. Les traces sont composées de spans, qui mesurent le temps d'exécution de chaque étape, et peuvent être représentées sous forme de graphiques ou d'arbres. L'article souligne l'importance de cette approche pour l'observabilité des applications modernes.
L’observabilité full-stack passe aussi par le frontend – Longtemps considéré comme une boîte noire, le suivi des performances côté client (latence des interactions, complexité asynchrone, contexte utilisateur) est désormais possible grâce au tracing (OpenTelemetry, Sentry, Datadog). En instrumentant les clics, requêtes et rendus, on relie les actions utilisateurs aux traces backend, offrant une visibilité complète : identification précise des goulots d’étranglement, corrélation entre latence perçue et temps système, et débogage simplifié. Avec une implémentation simple (ex : @opentelemetry/sdk-trace-web), le frontend s’intègre enfin dans la chaîne d’observabilité, transformant l’expérience utilisateur en données exploitables.
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Tout est dans le titre
Dans cet article, suite de https://blog.ght1pc9kc.fr/2023/grafana-stack-2.-collecte-des-m%C3%A9triques-avec-opentelemetry.html et https://blog.ght1pc9kc.fr/2023/grafana-stack-1.-observabilit%C3%A9-avec-spring-boot-3.html l'auteur décrit comment collecter des logs avec OpenTelemetry. Pour ce faire, il utilise Loki.
Dans cet article, suite de https://blog.ght1pc9kc.fr/2023/grafana-stack-1.-observabilit%C3%A9-avec-spring-boot-3.html l'auteur présente OpenTelemetry, un collecteur de télémétrie (inclut donc les métriques, les logs et les traces)
Il commence par déployer un serveur Prometheus pour les métriques de l'application. Il termine en mettant en place OpenTelemetry