Traces vs. Spans in OpenTelemetry

ayoisaiah1 pts0 comments

Traces vs Spans in OpenTelemetry · Dash0<br>Dash0 Raises $110M Series B at $1B Valuation

Book a demoSign inStart Free Trial

Knowledge

OpenTelemetry

How OpenTelemetry Logging Works (with Examples)What are OpenTelemetry Resources?Traces vs Spans in OpenTelemetryWhat Is OTLP and Why It's the Future of ObservabilityWhat is OpenTelemetry?OpenTelemetry Semantic Conventions: An ExplainerOpenTelemetry Spans: Everything You Need to KnowHow OpenTelemetry Distributed Tracing Works (with Examples)

Monitoring

What Is Microservices Monitoring?Understanding the Prometheus Metric Types

Cloud

The Complete Guide to AWS Step Functions: Concepts, Examples, and Best PracticesPerformance Testing in a Cloud-Native WorldUnderstanding hard limits, soft limits and best practicesWhat Is Cloud-Native Monitoring?Amazon EventBridge: An In-Depth LookAWS Lambda Throttle: Detection, Prevention, and ManagementMicroservices Observability: 3 Pillars and 6 PatternsAWS Lambda Concurrency: The Complete GuideServerless vs. Microservices: 4 Differences and Potential SynergiesComplete Guide to AWS SQS: Pros/Cons, Getting Started and Pro TipsHow AWS CloudWatch Pricing Works: Metrics, Logs, Dashboards & MoreQuick Guide to AWS CloudWatch: Concepts, Pricing & Best PracticesHow to Do AWS Lambda Monitoring and 8 Critical Best PracticesAurora Serverless v2: Why You Need It, New Features and PricingMonitoring Serverless Applications EffortlesslyComplete Guide to AWS SNS: Features, Pricing, Tutorial & Pro Tips

AI

Agentic Software Engineering TerminologyThe Six Levels of Agentic Software Engineering

Observability

Traces vs Logs for Debugging Distributed SystemsWhat is AWS X-Ray?Distributed Tracing in Microservices: How It Actually WorksWhat is Grafana Tempo?OpenTelemetry Signals Overview: Logs vs Metrics vs TracesWhat is Datadog Distributed Tracing?What is Observability?W3C Trace Context Explained: Traceparent & TracestateWhat is Jaeger Tracing?What is Perses?Observability vs Monitoring: Understanding the DifferencesWhat is Google Cloud Trace?What is New Relic Distributed Tracing?What is Zipkin Tracing?

Logging

What is Log Management?Understanding Log4j Log Levels in PracticeJava Log Levels: How to Use Them in PracticeLog Levels Explained: A Better Strategy with OpenTelemetryWinston Log Levels Explained and How to Use ThemSerilog Log Levels Explained and How to Use ThemRails Log Levels Explained and How to Use Them

Fetching status...

Last updated: July 6, 2026<br>Traces vs Spans in OpenTelemetry

.portable-table]:mt-4">In OpenTelemetry, spans are the data your application actually emits. Each span<br>describes one timed operation such as an HTTP request, a database query, a queue<br>publish, or a background job step.

.portable-table]:mt-4">A trace is not exported as a separate object with its own fields. It's the view<br>your observability backend reconstructs by grouping spans that share a trace ID<br>and arranging them by their parent-child relationships.

.portable-table]:mt-4">That difference matters in production debugging. A trace helps you follow one<br>request through the system from start to finish. Spans let you query operations<br>as a dataset, so you can group, filter, and compare thousands or millions of<br>them to understand latency, errors, and outliers.

.portable-table]:mt-4">This article explains what traces and spans are in OpenTelemetry’s data model,<br>how they relate to each other at the protocol level, and when each mental model<br>helps you debug faster.

.portable-table]:mt-4">If you're already comfortable with the basics and want the deep dive on span<br>anatomy, our companion piece on<br>OpenTelemetry spans covers<br>every field in detail. For the SDK pipeline and instrumentation architecture,<br>see<br>how OpenTelemetry tracing works.

Traces vs spans at a glance

DimensionSpanTraceWhat it isA single timed operationThe set of spans sharing a `traceIdExists in OTLPYes, as a first-class data typeNo; reconstructed from spans by the backendIdentifierspanIdCopy (8 bytes)traceIdCopy (16 bytes)ScopeOne operation in one serviceOne request across all servicesDurationWall clock time of the span's start and end timeWall clock time of the root spanBest view forAggregate queries, RED metrics, attribute-based filteringDebugging a single requestContainsAttributes, events, links, statusAll spans connected by parentSpanIdCopy referencesSampling unitIndividual spans are not independently sampledThe entire trace is the sampling unit

Spans are emitted, traces are reconstructed

.portable-table]:mt-4">If you look at the<br>OTLP protobuf definitions,<br>you'll find TracesDataCopy, ResourceSpansCopy, ScopeSpansCopy, and SpanCopy, but no<br>TraceCopy message type.

.portable-table]:mt-4">TracesDataCopy might look like the candidate, but it's actually just the transport<br>envelope for an export batch. A single TracesDataCopy payload can contain spans<br>belonging to dozens of different traces, grouped by resource and instrumentation<br>scope rather than by traceIdCopy.

.portable-table]:mt-4">Your...

spans opentelemetry traces portable table tracing

Related Articles