This article is available in French.
1. Les concepts du tracing #
Suivre une requête de bout en bout.
Trace et span #
| Concept | Définition |
|---|---|
| Trace | Le parcours complet d'une requête, identifié par un trace_id |
| Span | Une opération (appel HTTP, requête SQL) avec début, durée, attributs, événements et statut |
| Relation parent-enfant | Chaque span connaît son parent : on obtient un arbre |
| Contexte | trace_id + span_id transmis d'un service à l'autre |
| Propagation | Transport du contexte dans les en-têtes (W3C traceparent, ou B3, ou uber-trace-id historique) |
traceparent: 00-4bf92f3577b34da6a3ce929d0e0e4736-00f067aa0ba902b7-01
# version-trace_id(16 octets)-span_id parent(8 octets)-drapeaux (01 = échantillonné)2. Jaeger #
Un projet CNCF mature.
Histoire #
Jaeger a été créé chez Uber en 2015, donné à la CNCF en 2017 et y est « graduated » depuis 2019. La version 2 (fin 2024) reconstruit Jaeger sur l'OpenTelemetry Collector : réception OTLP native, configuration au format du Collector, et possibilité d'ajouter n'importe quel processeur OpenTelemetry.
À savoir : Les clients Jaeger historiques (bibliothèques jaeger-client-*) sont abandonnés au profit des SDK OpenTelemetry. La version 1 de Jaeger est elle aussi arrivée en fin de vie : les nouvelles installations doivent partir de la v2.Architecture #
| Rôle | Fonction |
|---|---|
| Collector | Reçoit les spans (OTLP), les traite et les écrit dans le stockage |
| Query | API et interface web de recherche (port 16686) |
| Ingester | Lit les spans depuis Kafka et les écrit dans le stockage (architecture avec tampon) |
| Stockage | Mémoire, Badger, Elasticsearch, OpenSearch, Cassandra, ou plugin distant (gRPC) |
My progress
Sign in to track your progress and take notes. Sign in
Recommended Articles
Understanding the concept of score
The concept of score allows Elasticsearch to rank your documents by relevance during a search.
Understanding the Elastic Common Schema (ECS)
As always in our consulting engagements, we recommend that companies harmonise and standardise: k...
License consumption types
Understand the evolution of billing in Dynatrace: the difference between the old licensing model ...
Grafana Alloy: The importance of Self-Monitoring
Discover why and how to configure Grafana Alloy so that it monitors itself, collecting its own lo...
Grafana Alloy: Understanding and exploiting the User Interface (UI)
Discover how to enable, secure, and use Grafana Alloy's built-in web interface to visualize your ...
Grafana Alloy: Introduction and Architecture
Discover the fundamental concepts of Grafana Alloy, the transition from the static Agent to Alloy...
Grafana Alloy: Syntax and Configuration (Alloy Language: River)
As part of a Grafana training or observability training, master the declarative syntax of Grafana...
Grafana Alloy: Metrics Collection (Prometheus & Ecosystem)
Learn how to configure Grafana Alloy to collect, transform, and forward metrics using the Prometh...
Grafana Alloy: Log Management with Loki
Discover how to configure Grafana Alloy to read log files, journald, or network streams, process ...