Releases: open-telemetry/opentelemetry-rust
v0.22.0
API
Added
-
#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.
Changed
- Modified AnyValue.Map to be backed by HashMap instead of custom OrderMap, which internally used IndexMap. There was no requirement to maintain the order of entries, so moving from IndexMap to HashMap offers slight performance gains, and avoids IndexMap dependency. This affects body and attributes of LogRecord. #1353
- Add TextMapCompositePropagator #1373
- Turned off events for NoopLogger to save on operations #1455
Removed
- Removed OrderMap type as there was no requirement to use this over regular HashMap. #1353
- Remove API for Creating Histograms with signed integers. #1371
- Remove global::shutdown_meter_provider, use SdkMeterProvider::shutdown directly instead (#1412).
SDK
Deprecated
- XrayIdGenerator in the opentelemetry-sdk has been deprecated and moved to version 0.10.0 of the opentelemetry-aws crate.
Added
-
#1410 Add experimental synchronous gauge
-
#1471 Configure batch log record processor via
OTEL_BLRP_*
environment variables and viaOtlpLogPipeline::with_batch_config
-
#1503 Make the documentation for In-Memory exporters visible.
-
#1526
Performance Improvement : Creating Spans and LogRecords are now faster, by avoiding expensive cloning ofResource
for every Span/LogRecord.
Changed
-
Breaking
#1313
#1350
Changes how Span links/events are stored to achieve performance gains. See
below for details:Behavior Change: When enforcing
max_links_per_span
,max_events_per_span
fromSpanLimits
, links/events are kept in the first-come order. The previous
"eviction" based approach is no longer performed.Breaking Change Affecting Exporter authors:
SpanData
now storeslinks
asSpanLinks
instead ofEvictedQueue
where
SpanLinks
is a struct with aVec
of links anddropped_count
.SpanData
now storesevents
asSpanEvents
instead ofEvictedQueue
where
SpanEvents
is a struct with aVec
of events anddropped_count
. -
Breaking Remove
TextMapCompositePropagator
#1373. UseTextMapCompositePropagator
in opentelemetry API. -
#1375 Fix metric collections during PeriodicReader shutdown
-
Breaking #1480 Remove fine grained
BatchConfig
configurations fromBatchLogProcessorBuilder
andBatchSpanProcessorBuilder
. UseBatchConfigBuilder
to construct aBatchConfig
instance and pass it usingBatchLogProcessorBuilder::with_batch_config
orBatchSpanProcessorBuilder::with_batch_config
. -
Breaking #1480 Remove mutating functions from
BatchConfig
, useBatchConfigBuilder
to construct aBatchConfig
instance. -
Breaking #1495 Remove Batch LogRecord&Span Processor configuration via non-standard environment variables. Use the following table to migrate from the no longer supported non-standard environment variables to the standard ones.
No longer supported | Standard equivalent |
---|---|
OTEL_BLRP_SCHEDULE_DELAY_MILLIS | OTEL_BLRP_SCHEDULE_DELAY |
OTEL_BLRP_EXPORT_TIMEOUT_MILLIS | OTEL_BLRP_EXPORT_TIMEOUT |
OTEL_BSP_SCHEDULE_DELAY_MILLIS | OTEL_BSP_SCHEDULE_DELAY |
OTEL_BSP_EXPORT_TIMEOUT_MILLIS | OTEL_BSP_EXPORT_TIMEOUT |
-
Breaking 1455 Make the LoggerProvider Owned
Logger
now takes an Owned Logger instead of aWeak<LoggerProviderInner>
LoggerProviderInner
is no longerpub (crate)
Logger.provider()
now returns&LoggerProvider
instead of anOption<LoggerProvider>
-
1519 Performance improvements
when callingCounter::add()
andUpDownCounter::add()
with an empty set of attributes
(e.g.counter.Add(5, &[])
)
Fixed
- #1481 Fix error message caused by race condition when using PeriodicReader
v0.21.2
v0.21.1
v0.21.0
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.
Changed
- Bump MSRV to 1.65 #1318
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.
v0.20.0
v0.19.0
v0.18.0
Added
- 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
Changed
- 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
Fixed
- 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
Removed
v0.17.0
Changed
- 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
Fixed
v0.16.0
Changed
- 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
Performance
- Small performance boost for
Resource::get
#579