Logs, metrics and traces, the four stages each goes through, the programs that compete at each stage, and how OpenTelemetry carries all three under one set of standards.
The three signals
- Logs: a line of text for each event. They say what exactly happened.
- Metrics: numbers the program counts, read over time. They say how many, how fast, how often it fails.
- Traces: one request's path through the services, as spans. They say where the time went, and which call failed.
The standards
- OpenTelemetry: an API and an SDK for all three signals, and the semantic conventions, the standard names of attributes. A CNCF project, formed in 2019 by merging OpenTracing and OpenCensus.
- OTLP: OpenTelemetry's protocol for sending telemetry.
- W3C Trace Context: the
traceparent header that carries a trace from one service to the next. A W3C Recommendation since February 2020. - Prometheus's exposition format: how a service shows its numbers at
/metrics.
Reading the drawing
- Services, top: one request through service A, which calls service B.
- The matrix: a row per signal, a column per stage. Each stage holds the programs that compete for it; a struck-out one is retired.
- OpenTelemetry, from scene 3: the SDK and the Collector, drawn across all three rows.
- All four stages, as a service, right: companies that sell the whole thing.
- History, bottom: one slot per event, in order, not to scale.
- A click on any program opens what it is and its site.