- Adding a dynamic dispatch to Aggregator Selector #497
- Add
global::force_flush_tracer_provider
#512 - Add config
max_attributes_per_event
andmax_attributes_per_link
#521 - Add dropped attribute counts to events and links #529
- Remove unnecessary clone in
Key
type #491 - Remove
#[must_use]
fromset_tracer_provider
#501 - Rename remaining usage of
default_sampler
tosampler
#509 - Use current span for SDK-less context propagation #510
- Always export span batch when limit reached #519
- Rename message events to events #530
- Update resource merge behaviour #537
- Ignore links with invalid context #538
- Remove remote span context #508
- Remove metrics quantiles #525
- Allow users to use custom export kind selector #526
- Improve simple span processor performance #502
- Local span perf improvements #505
- Reduce string allocations where possible #506
Upgrade note: exporter pipelines do not return an uninstall guard as of #444,
use opentelemetry::global::shutdown_tracer_provider
explicitly instead.
- Pull configrations from environment variables by default when creating BatchSpanProcessor #445
- Convert doc links to intra-doc #466
- Switch to Cow for event names #471
- Use API to configure async runtime instead of features #481
- Rename trace config with_default_sampler to with_sampler #482
- Removed tracer provider guard #444
- Removed
from_env
and use environment variables to initialize the configurations by default #459
- Instrumentation library support #402
- Batch observer support #429
with_unit
methods in metrics #431- Clone trait for noop tracer/tracer provider/span #479
- Abstracted traits for different runtimes #480
- Dependencies updates #410
- Add
Send
,Sync
toAsyncInstrument
in metrics #422 - Add
Send
,Sync
toInstrumentCore
in metrics #423 - Replace regex with custom logic #411
- Update tokio to v1 #421
- Moved
http
dependencies into a new opentelemetry-http crate #415 - Remove
tonic
dependency #414
- Fix possible deadlock when dropping metric instruments #407
- Fix remote implicit builder context sampling #405
- Add
force_flush
method to span processors #358 - Add timeout for
force_flush
andshutdown
#362
- Implement Display trait for Key and Value types #353
- Remove Option from Array values #359
- Update
ShouldSample
's parent parameter to beContext
#368 - Consolidate error types in
trace
module intoTraceError
#371 - Add
#[must_use]
to uninstall structs #372 - Move 3rd party propagators and merge exporter into
sdk::export
#375 - Add instrumentation version to instrument config #392
- Use instrumentation library in metrics #393
start_from_context
renamed tostart_with_context
#399- Removed
build_with_context
as full context is now stored in builder #399 - SpanBuilder's
with_parent
renamed towith_parent_context
#399
- Fix parent based sampling in tracer #354
- StatusCode enum value ordering #377
- Counter adding the delta from last collection #395
HistogramAggregator
returning sum vs count #398
- Add support for baggage metadata #287
- Remove
api
prefix from modules #305 - Move
mark_as_active_span
andget_active_span
functions into trace module #310 - Revert renaming of
SpanContext
toSpanReference
#299 - Default trace propagator is now a no-op #329
- Return references to span contexts instead of clones #325
- Update exporter errors to be
Box<dyn Error + Send + Sync + 'static>
#284 - Rename
GenericProvider
toGenericTracerProvider
#313 - Reduce
SpanStatus
enum toOk
,Error
, andUnset
variants #315 - update B3 propagator to more closely match spec #319
- Export missing pub global trace types #313
- Ensure kv array values are homogeneous #333
- Implement
Display
trait forKey
andValue
types #353 - Move
SpanProcessor
trait intosdk
module #334 - Ensure
is_recording
isfalse
and span is no-op afterend
#341 - Move binary propagator and base64 format to contrib #343
- Ensure metrics noop types go through constructors #345
- Change
ExportResult
to usestd::result::Result
#347 - Change
SpanExporter::export
to take&mut self
instead of&self
#350 - Add MSRV 1.42.0 #296
- Fix parent based sampling #354
- Remove support for
u64
andbytes
kv values #323 - Remove kv value conversion from
&str
#332
- Allow metric instruments to be cloned #280
- Fix single threaded runtime tokio feature bug #278
- Add resource detector #174
- Add
fields
method to TextMapFormat #178 - Add support for
tracestate
inTraceContextPropagator
#191 - Propagate valid span context in noop tracer #197
- Add end_with_timestamp method for trace span #199
- Add ID methods for hex and byte array formatting #200
- Add AWS X-Ray ID Generator #201
- AWS X-Ray Trace Context Propagator #202
- Add instrumentation library information to spans #207
- Add keys method to extractors #209
- Add
TraceState
toSpanContext
#217 - Add
from_env
config option forBatchSpanProcessor
#228 - Add pipeline uninstall mechanism to shut down trace pipelines #229
- Re-write metrics sdk to be spec compliant #179
- Rename
Sampler::Probability
toSampler::TraceIdRatioBased
#188 - Rename
HTTPTextPropagator
toTextMapPropagator
#192 - Ensure extractors are case insensitive #193
- Rename
Provider
toTracerProvider
#206 - Rename
CorrelationContext
intoBaggage
#208 - Pipeline builder for stdout trace exporter #224
- Switch to async exporters #232
- Allow
ShouldSample
implementation to modify trace state #237 - Ensure context guard is
!Send
#239 - Ensure trace noop structs use
new
constructor #240 - Switch to w3c
baggage
header #246 - Move trace module imports from
api
toapi::trace
#255 - Update
tonic
feature to use version0.3.x
#258 - Update exporters to receive owned span data #264
- Move propagators to
sdk::propagation
#266 - Rename SpanContext to SpanReference #270
- Rename
SamplingDecision
'sNotRecord
,Record
andRecordAndSampled
toDrop
RecordOnly
andRecordAndSample
#247
- Add custom span processors to
Provider::Builder
#166
- Separate
Carrier
intoInjector
andExtractor
#164 - Change the default sampler to be
ParentOrElse(AlwaysOn)
#163 - Move the
Sampler
interface to the SDK #169
- New
ParentOrElse
sampler for fallback logic if parent is not sampled. #128 - Attributes can now have array values #146
- Added
record_exception
andrecord_exception_with_stacktrace
methods toSpan
#152
- Update sampler types #128
Always
is nowAlwaysOn
.Never
is nowAlwaysOff
.Probability
now ignores parent sampled state.
base64
andbinary_propagator
have been moved toexperimental
module. #134Correlation-Context
header has been updated tootcorrelations
#145B3Propagator
has been updated to more closely follow the spec #148
- Add
http
andtonic
features to implCarrier
for common types.
- Removed
span_id
from sampling parameters when implementing custom samplers.
- Make
Context
Send + Sync
in #127
- Derive
Clone
forB3Propagator
,SamplingResult
, andSpanBuilder
- Ability to configure the span id / trace id generator
- impl
From<T>
for commonKey
andValue
types - Add global
tracer
method - Add
Resource
API - Add
Context
API - Add
Correlations
API - Add
HttpTextCompositePropagator
for composingHttpTextPropagator
s - Add
GlobalPropagator
for globally configuring a propagator - Add
TraceContextExt
to provide methods for working with trace data in a context - Expose
EvictedQueue
constructor
- Ensure that impls of
Span
areSend
andSync
when used inglobal
- Changed
Key
andValue
method signatures to removeCow
references - Tracer's
start
now uses the implicit current context instead of an explicit span context.start_with_context
may be used to specify a context if desired. with_span
now accepts a span for naming consistency and managing the active state of a more complex span (likely produced by a builder), and the previous functionality that accepts a&str
has been renamed toin_span
, both of which now yield a context to the provided closure.- Tracer's
get_active_span
now accepts a closure - The
Instrument
trait has been renamed toFutureExt
to avoid clashing with metric instruments, and instead accepts contexts viawith_context
. - Span's
get_context
method has been renamed tospan_context
to avoid ambiguity. HttpTextPropagators
inject the current context instead of an explicit span context. The context can be specified withinject_context
.SpanData
'scontext
has been renamed tospan_context
- Update the probability sampler to match the spec
- Rename
Traceparent
header totraceparent
TracerGenerics
methods have been folded in to theTracer
trait so it is longer needed- Tracer's
mark_span_as_inactive
has been removed - Exporters no longer require an
as_any
method - Span's
mark_as_active
,mark_as_inactive
, andas_any
have been removed
- New async batch span processor
- New stdout exporter
- Add
trace_id
toSpanBuilder
- Add
attributes
toEvent
s. - Update
Span
'sadd_event
andadd_event_with_timestamp
to accept attributes. - Record log fields in jaeger exporter
- Properly export span kind in jaeger exporter
- Add support for
Link
s - Add
status_message
toSpan
andSpanData
- Rename
SpanStatus
toStatusCode
- Update
EvictedQueue
internals from LIFO to FIFO - Switch span attributes to
EvictedHashMap
- Call
shutdown
correctly when span processors and exporters are dropped
- New Base64 propagator
- New SpanBuilder api
- Zipkin Exporter crate
- Switch to
SpanId
andTraceId
fromu64
andu128
- Remove
&mut self
requirements forSpan
API
- circular Tracer debug impl
- Make trace and metrics features optional
- ExportResult as specified in the specification
- Add Futures compatibility API
- Added serde serialise support to SpanData
- Separate OpenTelemetry Jaeger crate
- Rename HttpTraceContextPropagator to TraceContextPropagator
- Rename HttpB3Propagator to B3Propagator
- Switch to Apache 2 license
- Resolve agent addresses to allow non-static IP
- Remove tracer name prefix from span name
- Remove add_link from spans
- trace-context propagator
- Prometheus API cleanup
- Parent option for default sampler
- SDK tracer default span id
- Ensure spans are always send and sync
- Allow static lifetimes for span names
- Improve KeyValue ergonomics
- Implement global provider
- Documentation and API cleanup
- Tracking of active spans via thread local span stack
Initial debug alpha