Trace, Span, and Service: Core Concepts
A trace represents a complete request or transaction as it moves through various services in a distributed system. It contains multiple spans, each representing a single unit of work within a service. A service is any independently deployable component that handles part of the transaction.
Trace
A trace is a collection of spans that together show the journey of a request across services. - Begins at the entry point (frontend, API gateway, etc.) - Captures timings, metadata, and flow - Enables end-to-end latency and performance analysis
Span
A span represents an individual operation within a service.
- Contains start/end time, tags, and context
- May be a parent (calling operation) or child (called operation)
- Includes metadata: http.status_code, db.statement, etc.