Skip to content

Commit bb068a9

Browse files
Add release notes.
1 parent 2a7586d commit bb068a9

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

releases.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,22 @@
11
# Releases
22

3+
## Unreleased
4+
5+
- **W3C Baggage Support** - Full support for W3C Baggage specification for application-specific context propagation.
6+
7+
### New Context Propagation Interfaces
8+
9+
`Traces#trace_context` and `Traces.trace_context` are insufficient for efficient inter-process tracing when using OpenTelemetry. That is because OpenTelemetry has it's own "Context" concept with arbitrary key-value storage (of which the current span is one such key/value pair). Unfortunately, OpenTelemetry requires those values to be propagated "inter-process" while ignores them for "intra-process" tracing.
10+
11+
Therefore, in order to propagate this context, we introduce 4 new methods:
12+
13+
- `Traces.current_context` - Capture the current trace context for local propagation between execution contexts (threads, fibers).
14+
- `Traces.with_context(context)` - Execute code within a specific trace context, with automatic restoration when used with blocks.
15+
- `Traces.inject(headers, context = nil)` - Inject W3C Trace Context headers into a headers hash for distributed propagation.
16+
- `Traces.extract(headers)` - Extract trace context from W3C Trace Context headers.
17+
18+
The default implementation is built on top of `Traces.trace_context`, however these methods can be replaced by the backend. In that case, the `context` object is opaque, in other words it is library-specific, and you should not assume it is an instance of `Traces::Context`.
19+
320
## v0.17.0
421

522
- Remove support for `resource:` keyword argument with no direct replacement – use an attribute instead.

0 commit comments

Comments
 (0)