Skip to content

Commit

Permalink
Temporarily remove tracestate
Browse files Browse the repository at this point in the history
The usage of the W3C `tracestate` for propagating OpenTelemetry-specific
data is currently ambiguous, and depends on some as yet unmade decisions
about how distributed context propagation.

In order to prevent breaking changes in the near-ish future, it feels
safest to temporarily remove `tracestate` from the spec so that its use
can be additive once these questions are resolved.
  • Loading branch information
iredelmeier committed Jul 30, 2019
1 parent 381cb1d commit 690ba37
Show file tree
Hide file tree
Showing 4 changed files with 3 additions and 15 deletions.
3 changes: 1 addition & 2 deletions milestones.md
Original file line number Diff line number Diff line change
Expand Up @@ -162,8 +162,7 @@ Example of scope for extended SDK:
3. Discussions like
1. Native (POJO) object vs. Proto-generated object with proto dependency in
SDK
4. Tracestate manipulation callbacks
5. Other
4. Other

First iteration of SDK feedback – **mid August** we have specs, **End of
August** – first iteration of Java SDK complete.
Expand Down
8 changes: 2 additions & 6 deletions specification/api-tracing.md
Original file line number Diff line number Diff line change
Expand Up @@ -180,20 +180,16 @@ Usually this will be the W3C Trace Context as the HTTP text format. For more det
## SpanContext
A `SpanContext` represents the portion of a `Span` which must be serialized and propagated along side of a distributed context. `SpanContext`s are immutable. `SpanContext` MUST be a final (sealed) class.

The OpenTelemetry `SpanContext` representation conforms to the [w3c TraceContext specification](https://www.w3.org/TR/trace-context/). It contains two identifiers - a `TraceId` and a `SpanId` - along with a set of common `TraceOptions` and system-specific `TraceState` values. `SpanContext` is represented as an interface, in order to be serializable into a wider variety of trace context wire formats.
The OpenTelemetry `SpanContext` representation conforms to the [w3c TraceContext specification](https://www.w3.org/TR/trace-context/). It contains two identifiers - a `TraceId` and a `SpanId` - along with a set of common `TraceOptions`. `SpanContext` is represented as an interface, in order to be serializable into a wider variety of trace context wire formats.

`TraceId` A valid trace identifier is a 16-byte array with at least one non-zero byte.

`SpanId` A valid span identifier is an 8-byte array with at least one non-zero byte.

`TraceOptions` contain details about the trace. Unlike Tracestate values, TraceOptions are present in all traces. Currently, the only TraceOption is a boolean `recorded` [flag](https://www.w3.org/TR/trace-context/#recorded-flag-00000001).

`Tracestate` carries system-specific configuration data, represented as a list of key-value pairs. TraceState allows multiple tracing systems to participate in the same trace.
`TraceOptions` contain details about the trace. TraceOptions are present in all traces. Currently, the only TraceOption is a boolean `recorded` [flag](https://www.w3.org/TR/trace-context/#recorded-flag-00000001).

`IsValid` is a boolean flag which returns true if the SpanContext has a non-zero TraceID and a non-zero SpanID.

Please review the W3C specification for details on the [Tracestate field](https://www.w3.org/TR/trace-context/#tracestate-field).

## Span

Span represents a single operation within a trace. Spans can be nested to form a
Expand Down
4 changes: 0 additions & 4 deletions specification/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,6 @@ propagated from parent to child **Spans**.
byte (bitmap).
- Sampling bit - Bit to represent whether trace is sampled or not (mask
`0x1`).
- **Tracestate** carries tracing-system specific context in a list of key value
pairs. **Tracestate** allows different vendors propagate additional
information and inter-operate with their legacy Id formats. For more details
see [this](https://w3c.github.io/trace-context/#tracestate-field).

### Links between spans

Expand Down
3 changes: 0 additions & 3 deletions work_in_progress/specification/trace/LogCorrelation.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,6 @@ The sampling bit of the current span, as a boolean. See

TODO(sebright): Include "samplingScore" once that field is added to the SpanContext.

TODO(sebright): Add a section on fields from the Tracestate. Users should be able to add
vendor-specific fields from the Tracestate to logs, using a callback mechanism.

TODO(sebright): Consider adding parent span ID, to allow recreating the trace structure from logs.

## String format for tracing data
Expand Down

0 comments on commit 690ba37

Please sign in to comment.