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.