- Bump msrv to 1.75.0.
- Breaking
opentelemetry::global::shutdown_tracer_provider()
Removed from this crate, should now usetracer_provider.shutdown()
see #2369 for a migration example. - Breaking Removed unused
opentelemetry::PropagationError
struct.
Released 2024-Nov-27
Released 2024-Nov-11
- Bump MSRV to 1.70 #2179
- Add
LogRecord::set_trace_context
; an optional method conditional on thetrace
feature for setting trace context on a log record. - Removed unnecessary public methods named
as_any
fromAsyncInstrument
trait and the implementing instruments:ObservableCounter
,ObservableGauge
, andObservableUpDownCounter
#2187 - Introduced
SyncInstrument
trait to replace the individual synchronous instrument traits (SyncCounter
,SyncGauge
,SyncHistogram
,SyncUpDownCounter
) which are meant for SDK implementation. #2207 - Ensured that
observe
method on asynchronous instruments can only be called inside a callback. This was done by removing the implementation ofAsyncInstrument
trait for each of the asynchronous instruments. #2210 - Removed
PartialOrd
andOrd
implementations forKeyValue
. #2215 - Breaking change for exporter authors: Marked
KeyValue
related structs and enums asnon_exhaustive
. #2228 - Breaking change for log exporter authors: Marked
AnyValue
enum asnon_exhaustive
. #2230 - Breaking change for Metrics users: The
init
method used to create instruments has been renamed tobuild
. Also,try_init()
method is removed from instrument builders. The return types ofInstrumentProvider
trait methods modified to return the instrument struct, instead ofResult
. #2227
Before:
let counter = meter.u64_counter("my_counter").init();
Now:
let counter = meter.u64_counter("my_counter").build();
-
Breaking change: #2220
- Removed deprecated method
InstrumentationLibrary::new
- Renamed
InstrumentationLibrary
toInstrumentationScope
- Renamed
InstrumentationLibraryBuilder
toInstrumentationScopeBuilder
- Removed deprecated methods
LoggerProvider::versioned_logger
andTracerProvider::versioned_tracer
- Removed methods
LoggerProvider::logger_builder
,TracerProvider::tracer_builder
andMeterProvider::versioned_meter
- Replaced these methods with
LoggerProvider::logger_with_scope
,TracerProvider::logger_with_scope
,MeterProvider::meter_with_scope
- Replaced
global::meter_with_version
withglobal::meter_with_scope
- Added
global::tracer_with_scope
- Refer to PR description for migration guide.
- Removed deprecated method
-
Breaking change: replaced
InstrumentationScope
public attributes by getters #2275 -
Breaking change: #2260
- Removed
global::set_error_handler
andglobal::handle_error
. global::handle_error
usage inside the opentelemetry crates has been replaced withglobal::otel_info
,otel_warn
,otel_debug
andotel_error
macros based on the severity of the internal logs.- The default behavior of
global::handle_error
was to log the error usingeprintln!
. With otel macros, the internal logs get emitted viatracing
macros of matching severity. Users now need to configure atracing
layer/subscriber to capture these logs. - Refer to PR description for migration guide. Also refer to self-diagnostics example to learn how to view internal logs in stdout using
tracing::fmt
layer.
- Removed
-
Breaking change for exporter/processor authors: #2266
- Moved
ExportError
trait fromopentelemetry::ExportError
toopentelemetry_sdk::export::ExportError
- Created new trait
opentelemetry::trace::ExportError
for trace API. This would be eventually be consolidated with ExportError in the SDK. - Moved
LogError
enum fromopentelemetry::logs::LogError
toopentelemetry_sdk::logs::LogError
- Moved
LogResult
type alias fromopentelemetry::logs::LogResult
toopentelemetry_sdk::logs::LogResult
- Moved
MetricError
enum fromopentelemetry::metrics::MetricError
toopentelemetry_sdk::metrics::MetricError
- Moved
MetricResult
type alias fromopentelemetry::metrics::MetricResult
toopentelemetry_sdk::metrics::MetricResult
These changes shouldn't directly affect the users of OpenTelemetry crate, as these constructs are used in SDK and Exporters. If you are an author of an sdk component/plug-in, like an exporter etc. please use these types from sdk. Refer CHANGELOG.md for more details, under same version section.
- Moved
-
Breaking 2291 Rename
logs_level_enabled flag
tospec_unstable_logs_enabled
. Please enable this updated flag if the feature is needed. This flag will be removed once the feature is stabilized in the specifications.
Released 2024-Sep-30
-
BREAKING Public API changes:
-
Removed:
Key.bool()
,Key.i64()
,Key.f64()
,Key.string()
,Key.array()
#2090. These APIs were redundant as they didn't offer any additional functionality. The existingKeyValue::new()
API covers all the scenarios offered by these APIs. -
Removed:
ObjectSafeMeterProvider
andGlobalMeterProvider
#2112. These APIs were unnecessary and were mainly meant for internal use. -
Modified:
MeterProvider.meter()
andMeterProvider.versioned_meter()
argument types have been updated to&'static str
instead ofimpl Into<Cow<'static, str>>>
#2112. These APIs were modified to enforce the Metername
,version
, andschema_url
to be&'static str
. -
Renamed:
NoopMeterCore
toNoopMeter
-
-
Added
with_boundaries
API to allow users to provide custom bounds for Histogram instruments. #2135
- BREAKING #1993 Box complex types in AnyValue enum Before:
#[derive(Debug, Clone, PartialEq)]
pub enum AnyValue {
/// An integer value
Int(i64),
/// A double value
Double(f64),
/// A string value
String(StringValue),
/// A boolean value
Boolean(bool),
/// A byte array
Bytes(Vec<u8>),
/// An array of `Any` values
ListAny(Vec<AnyValue>),
/// A map of string keys to `Any` values, arbitrarily nested.
Map(HashMap<Key, AnyValue>),
}
After:
#[derive(Debug, Clone, PartialEq)]
pub enum AnyValue {
/// An integer value
Int(i64),
/// A double value
Double(f64),
/// A string value
String(StringValue),
/// A boolean value
Boolean(bool),
/// A byte array
Bytes(Box<Vec<u8>>),
/// An array of `Any` values
ListAny(Box<Vec<AnyValue>>),
/// A map of string keys to `Any` values, arbitrarily nested.
Map(Box<HashMap<Key, AnyValue>>),
}
So the custom log appenders should box these types while adding them in message body, or attribute values. Similarly, the custom exporters should dereference these complex type values before serializing.
Breaking :
#2015 Removed
the ability to register callbacks for Observable instruments on Meter directly.
If you were using meter.register_callback
to provide the callback, provide
them using with_callback
method, while creating the Observable instrument
itself.
1715
shows the exact changes needed to make this migration. If you are starting new,
refer to the
examples
to learn how to provide Observable callbacks.
-
Add "metrics", "logs" to default features. With this, default feature list is "trace", "metrics" and "logs".
-
When "metrics" feature is enabled,
KeyValue
implementsPartialEq
,Eq
,PartialOrder
,Order
,Hash
. This is meant to be used for metrics aggregation purposes only. -
Removed
Unit
struct for specifying Instrument units. Unit is treated as an opaque string. Migration: Replace.with_unit(Unit::new("myunit"))
with.with_unit("myunit")
. -
1869 Introduced the
LogRecord::set_target()
method in the log bridge API. This method allows appenders to set the target/component emitting the logs.
- #1640 Add
PropagationError
- #1701
Gauge
no longer requiresotel-unstable
feature flag, as OpenTelemetry specification forGauge
instrument is stable.
- Remove
urlencoding
crate dependency. #1613 - Remove global providers for Logs $1691 LoggerProviders are not meant for end users to get loggers from. It is only required for the log bridges. Below global constructs for the logs are removed from API: - opentelemetry::global::logger - opentelemetry::global::set_logger_provider - opentelemetry::global::shutdown_logger_provider - opentelemetry::global::logger_provider - opentelemetry::global::GlobalLoggerProvider - opentelemetry::global::ObjectSafeLoggerProvider For creating appenders using Logging bridge API, refer to the opentelemetry-tracing-appender example
-
BREAKING Moving LogRecord implementation to the SDK. 1702.
- Relocated
LogRecord
struct to SDK. - Introduced the
LogRecord
trait in the API for populating log records. This trait is implemented by the SDK. This is the breaking change for the authors of Log Appenders. Refer to the opentelemetry-appender-tracing for more details.
- Relocated
-
Deprecate
versioned_logger()
in favor oflogger_builder()
1567.
Before:
let logger = provider.versioned_logger(
"my-logger-name",
Some(env!("CARGO_PKG_VERSION")),
Some("https://opentelemetry.io/schema/1.0.0"),
Some(vec![KeyValue::new("key", "value")]),
);
After:
let logger = provider
.logger_builder("my-logger-name")
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url("https://opentelemetry.io/schema/1.0.0")
.with_attributes(vec![KeyValue::new("key", "value")])
.build();
- Deprecate
versioned_tracer()
in favor oftracer_builder()
1567.
Before:
let tracer = provider.versioned_tracer(
"my-tracer-name",
Some(env!("CARGO_PKG_VERSION")),
Some("https://opentelemetry.io/schema/1.0.0"),
Some(vec![KeyValue::new("key", "value")]),
);
After:
let tracer = provider
.tracer_builder("my-tracer-name")
.with_version(env!("CARGO_PKG_VERSION"))
.with_schema_url("https://opentelemetry.io/schema/1.0.0")
.with_attributes(vec![KeyValue::new("key", "value")])
.build();
-
#1410 Add experimental synchronous gauge. This is behind the feature flag, and can be enabled by enabling the feature
otel_unstable
for opentelemetry crate. -
#1410 Guidelines to add new unstable/experimental features.
- Modified
AnyValue.Map
to be backed byHashMap
instead of customOrderMap
, which internally usedIndexMap
. There was no requirement to maintain the order of entries, so moving fromIndexMap
toHashMap
offers slight performance gains, and avoidsIndexMap
dependency. This affectsbody
andattributes
ofLogRecord
. #1353 - Add
TextMapCompositePropagator
#1373 - Turned off events for
NoopLogger
to save on operations #1455
- Removed
OrderMap
type as there was no requirement to use this over regularHashMap
. #1353 - Remove API for Creating Histograms with signed integers. #1371
- Remove
global::shutdown_meter_provider
, useSdkMeterProvider::shutdown
directly instead #1412.
This release should been seen as 1.0-rc4 following 1.0-rc3 in v0.20.0. Refer to CHANGELOG.md in individual creates for details on changes made in different creates.
- Bump MSRV to 1.65 #1318
- Bump MSRV to 1.64 #1203
opentelemetry
crate now only carries the API types #1186. Use theopentelemetry_sdk
crate for the SDK types.trace::noop::NoopSpan
no longer implementsDefault
and instead exposes aconst DEFAULT
value. #1270- Updated crate documentation and examples. #1256
- Breaking
SpanBuilder
attributes changed fromOrderMap<Key, Value>
toVec<KeyValue>
andwith_attributes_map
method is removed fromSpanBuilder
. This implies that OpenTelemetry API will no longer perform de-dup of attribute Keys. #1293. Please share feedback here, if you are affected.
This release should been seen as 1.0-rc3 following 1.0-rc2 in v0.19.0. Refer to CHANGELOG.md in individual creates for details on changes made in different creates.
- Add
new
method toBoxedTracer
#1009 - Add js-sys as dependency for api crate when building wasm targets #1078
- Create tracer using a shared instrumentation library #1129
- Add
Context::map_current
#1140 - Add unit/doc tests for metrics #1213
- Add
opentelemetry::sdk::logs::config()
for parity withopentelemetry::sdk::trace::config()
(#1197)
OtelString::Owned
carriesBox<str>
instead ofString
#1096
- Drop include_trace_context parameter from Logs API/SDK. #1133
- Synchronous instruments no longer accepts
Context
while reporting measurements. #1076. - Fallible conversions from
futures-channel
error types toLogError
andTraceError
removed. #1201
- Fix
SpanRef::set_attributes
mutability requirement. #1038 - Move OrderMap module to root of otel-api crate. #1061
- Use the browser-only js-sys workaround only when actually targeting a browser #1008
This release should been seen as 1.0-rc2 following 1.0-rc1 in v0.18.0. Refer to CHANGELOG.md in individual creates for details on changes made in different creates.
- Implement
Display
onBaggage
#921. - Bump MSRV to 1.57 #953.
- Update dependencies and bump MSRV to 1.60 #969.
This release is the first beta release of the trace
API and SDK. If no other
breaking changes are necessary, the next release will be 1.0. The metrics
API
and SDK are still unstable.
- Pull sampling probability from
OTEL_TRACES_SAMPLER_ARG
in default sdk config #737 - Add
schema_url
toTracer
#743 - Add
schema_url
toResource
#775 - Add
Span::set_attributes
#638 - Support concurrent exports #781
- Add jaeger remote sampler #797
- Allow Custom Samplers #833
- Add
SpanExporter::force_flush
and default implementation #845
- Deprecate metrics
ValueRecorder
in favor ofHistogram
#728 - Move
IdGenerator
to SDK, rename toRandomIdGenerator
#742 meter_with_version
accepts optional parameter forversion
andschema_url
#752- Unify
Event
andLink
access patterns #757 - move
SpanKind
display format impl to jaeger crate #758 - make
TraceStateError
private #755 - rename
Span::record_exception
toSpan::record_error
#756 - Replace
StatusCode
andmessage
withStatus
#760 - Move
TracerProvider::force_flush
to SDK #658 - Switch to static resource references #790
- Allow O(1) get operations for
SpanBuilder::attributes
[breaking] #799 - Allow ref counted keys and values #821
- Bump MSRV from 1.49 to 1.55 #811
- bump MSRV to 1.56 #866
- Update metrics API and SDK for latest spec #819
- Switch to
pin-project-lite
#830
- Update dashmap to avoid soundness hole #818
- Perform sampling as explained in the specification #839
- Remove internal message queue between exporter and exporting tasks #848
- Fix span processor exporting unsampled spans #871
- Remove
serialize
feature #738 - Remove
StatusCode::as_str
#741 - Remove
Tracer::with_span
#746
- Implement
Serialize
&Deserialize
forSampler
,SpanLimits
#622, #626 - Allow
&'static str
andstring
in span methods #654 - Allow
String
data in instrumentation library. #670 - Remove
std::fmt::Debug
and'static
requirements fromTracerProvider
,Tracer
, andSpan
#664 - Remove unused
Tracer::invalid
method #683 - Split
TracerProvider::tracer
andTracerProvider::versioned_tracer
methods #682 - Reduce dependency on
futures
crate #684 - Switch to parent context references #687
- Spec-compliant trace and span ids #689
- Optimize span creation internals #693
- Add instrumentation library to
ShouldSample
parameters #695
- Fix default resource detection for tracer provider #641
- Detect
service.name
fromOTEL_SERVICE_NAME
andOTEL_RESOURCE_ATTRIBUTES
#662 - Fix
TraceState::valid_key
crashes #665
- Add default resource in
TracerProvider
#571 - Rename
get_tracer
totracer
#586 - Extract
trace::noop
module and update docs #587 - Add
Hash
impl for span context and allow spans to clone and export current state #592 - Enforce span status code's order #593
- Make
SpanRef
public #600 - Make
SpanProcessor::on_start
take a mutable span #601 - Renamed
label
toattribute
to align with otel specification #609
- Small performance boost for
Resource::get
#579
- More resource detectors #573
- Expose the Error type to allow users to set custom error handlers #551
- Allow users to use different channels based on runtime in batch span processor #560
- Move
Unit
intometrics
module #564 - Update trace flags to match spec #565
- Fix debug loop, add notes for
#[tokio::test]
#552 TraceState
cannot insert new key-value pairs #567
- 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