deps: update opentelemetry-rust monorepo #13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.17
->0.30
0.16
->0.22
Release Notes
open-telemetry/opentelemetry-rust (opentelemetry)
v0.30.0
Compare Source
Released 2025-May-23
#2821 Context
based suppression capabilities added: Added the ability to prevent recursive
telemetry generation through new context-based suppression mechanisms. This
feature helps prevent feedback loops and excessive telemetry when OpenTelemetry
components perform their own operations.
New methods added to
Context
:is_telemetry_suppressed()
- Checks if telemetry is suppressed in thiscontext
with_telemetry_suppressed()
- Creates a new context with telemetrysuppression enabled
is_current_telemetry_suppressed()
- Efficiently checks if the current thread's contexthas telemetry suppressed
enter_telemetry_suppressed_scope()
- Convenience method to enter a scope where telemetry issuppressed
These methods allow SDK components, exporters, and processors to temporarily
disable telemetry generation during their internal operations, ensuring more
predictable and efficient observability pipelines.
tracing
forinternal-logs
feature to remove the need of addingtracing
as a dependencyv0.29.1
Compare Source
Release 2025-Apr-01
WithContext
atopentelemetry::trace::context::WithContext
#2879 to restore backwards compatibilityWithContext
andFutureExt
are inopentelemetry::context
as they are independent of the trace signal. Users should prefer this path.v0.29.0
Compare Source
Released 2025-Mar-21
ExportError
trait fromopentelemetry::trace::ExportError
toopentelemetry_sdk::export::ExportError
TraceError
enum fromopentelemetry::trace::TraceError
toopentelemetry_sdk::trace::TraceError
TraceResult
type alias fromopentelemetry::trace::TraceResult
toopentelemetry_sdk::trace::TraceResult
InstrumentationScope
implementation forPartialEq
andHash
fixed to include Attributes also.Baggage
fromValue
toStringValue
Baggage
constants to reflect latest standard (MAX_KEY_VALUE_PAIRS
- 180 -> 64,MAX_BYTES_FOR_ONE_PAIR
- removed) and increased insert performance see #2284.Baggage.remove()
signature with.get()
to take the key as a referenceBaggage
can't be retrieved from theContext
directly anymore and needs to be accessed viacontext.baggage()
with_baggage()
andcurrent_with_baggage()
override any existingBaggage
in theContext
Baggage
keys can't be empty and only allow ASCII visual chars, except"(),/:;<=>?@​[\]{}
(see RFC7230, Section 3.2.6)KeyValueMetadata
does not publicly expose its fields. This should be transparent change to the users.Context
to use a stack to properly handle out of order dropping ofContextGuard
. This imposes a limit of65535
nested contexts on a single thread. See #2378 and #1887.name: Option<&str>
parameter to theevent_enabled
methodon the
Logger
trait. This allows implementations (SDK, processor, exporters)to leverage this additional information to determine if an event is enabled.
v0.28.0
Compare Source
Released 2025-Feb-10
opentelemetry::global::shutdown_tracer_provider()
Removed from this crate, should now usetracer_provider.shutdown()
see #2369 for a migration example.opentelemetry::PropagationError
struct.v0.27.1
Compare Source
Released 2024-Nov-27
v0.27.0
Compare Source
Released 2024-Nov-11
LogRecord::set_trace_context
; an optional method conditional on thetrace
feature for setting trace context on a log record.as_any
fromAsyncInstrument
trait and the implementing instruments:ObservableCounter
,ObservableGauge
, andObservableUpDownCounter
#2187SyncInstrument
trait to replace the individual synchronous instrument traits (SyncCounter
,SyncGauge
,SyncHistogram
,SyncUpDownCounter
) which are meant for SDK implementation. #2207observe
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. #2210PartialOrd
andOrd
implementations forKeyValue
. #2215KeyValue
related structs and enums asnon_exhaustive
. #2228AnyValue
enum asnon_exhaustive
. #2230init
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
. #2227Before:
Now:
Breaking change: #2220
InstrumentationLibrary::new
InstrumentationLibrary
toInstrumentationScope
InstrumentationLibraryBuilder
toInstrumentationScopeBuilder
LoggerProvider::versioned_logger
andTracerProvider::versioned_tracer
LoggerProvider::logger_builder
,TracerProvider::tracer_builder
andMeterProvider::versioned_meter
LoggerProvider::logger_with_scope
,TracerProvider::logger_with_scope
,MeterProvider::meter_with_scope
global::meter_with_version
withglobal::meter_with_scope
global::tracer_with_scope
Breaking change: replaced
InstrumentationScope
public attributes by getters #2275Breaking change: #2260
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.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.tracing::fmt
layer.Breaking change for exporter/processor authors: #2266
ExportError
trait fromopentelemetry::ExportError
toopentelemetry_sdk::export::ExportError
opentelemetry::trace::ExportError
for trace API. This would be eventually be consolidated with ExportError in the SDK.LogError
enum fromopentelemetry::logs::LogError
toopentelemetry_sdk::logs::LogError
LogResult
type alias fromopentelemetry::logs::LogResult
toopentelemetry_sdk::logs::LogResult
MetricError
enum fromopentelemetry::metrics::MetricError
toopentelemetry_sdk::metrics::MetricError
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.
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.v0.26.0
Compare Source
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. #2135v0.25.0
Compare Source
Before:
After:
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, providethem using
with_callback
method, while creating the Observable instrumentitself.
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.
v0.24.0
Compare Source
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 metricsaggregation purposes only.
Removed
Unit
struct for specifying Instrument units. Unit is treated as anopaque 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.
v0.23.0
Compare Source
Added
PropagationError
Gauge
no longer requiresotel-unstable
feature flag, as OpenTelemetry specification forGauge
instrument is stable.Removed
urlencoding
crate dependency. #1613LoggerProviders 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
Changed
BREAKING Moving LogRecord implementation to the SDK. 1702.
LogRecord
struct to SDK.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.
Deprecate
versioned_logger()
in favor oflogger_builder()
1567.Before:
After:
versioned_tracer()
in favor oftracer_builder()
1567.Before:
After:
v0.22.0
Compare Source
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
AnyValue.Map
to be backed byHashMap
instead of customOrderMap
,which internally used
IndexMap
. There was no requirement to maintain the orderof entries, so moving from
IndexMap
toHashMap
offers slight performancegains, and avoids
IndexMap
dependency. This affectsbody
andattributes
ofLogRecord
.#1353
TextMapCompositePropagator
#1373NoopLogger
to save on operations#1455
Removed
OrderMap
type as there was no requirement to use this over regularHashMap
.#1353
global::shutdown_meter_provider
, useSdkMeterProvider::shutdown
directly instead #1412.
v0.21.0
Compare Source
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
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 exposesa
const DEFAULT
value. #1270#1256
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
Compare Source
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.
Added
new
method toBoxedTracer
#1009Context::map_current
#1140opentelemetry::sdk::logs::config()
for parity withopentelemetry::sdk::trace::config()
(#1197)Changed
OtelString::Owned
carriesBox<str>
instead ofString
#1096Removed
Context
while reportingmeasurements. #1076.
futures-channel
error types toLogError
andTraceError
removed.#1201
Fixed
SpanRef::set_attributes
mutability requirement. #1038v0.19.0
Compare Source
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.
Added
WithContext
to public api #893.Changed
Display
onBaggage
#921.v0.18.0
Compare Source
This release is the first beta release of the
trace
API and SDK. If no otherbreaking changes are necessary, the next release will be 1.0. The
metrics
APIand SDK are still unstable.
Added
OTEL_TRACES_SAMPLER_ARG
in default sdk config #737schema_url
toTracer
#743schema_url
toResource
#775Span::set_attributes
#638SpanExporter::force_flush
and default implementation #845Changed
ValueRecorder
in favor ofHistogram
#728IdGenerator
to SDK, rename toRandomIdGenerator
#742meter_with_version
accepts optional parameter forversion
andschema_url
#752Event
andLink
access patterns #757SpanKind
display format impl to jaeger crate #758TraceStateError
private #755Span::record_exception
toSpan::record_error
#756StatusCode
andmessage
withStatus
#760TracerProvider::force_flush
to SDK #658SpanBuilder::attributes
[breaking] #799pin-project-lite
#830Fixed
Removed
serialize
feature #738StatusCode::as_str
#741Tracer::with_span
#746open-telemetry/opentelemetry-rust (opentelemetry-jaeger)
v0.22.0
Compare Source
API
Added
https://github.com/open-telemetry/opentelemetry-rust/pull/1410 Add experimental synchronous gauge. This is behind the feature flag, and can be enabled by enabling the feature otel_unstable for opentelemetry crate.
https://github.com/open-telemetry/opentelemetry-rust/pull/1410 Guidelines to add new unstable/experimental features.
Changed
Removed
SDK
Deprecated
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 of
Resource
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
from
SpanLimits
, 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
whereSpanLinks
is a struct with aVec
of links anddropped_count
.SpanData
now storesevents
asSpanEvents
instead ofEvictedQueue
whereSpanEvents
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.
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 calling
Counter::add()
andUpDownCounter::add()
with an empty set of attributes(e.g.
counter.Add(5, &[])
)Fixed
v0.21.0
Compare Source
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
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. #1270SpanBuilder
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
Compare Source
See individual crate changelogs for details.
v0.19.0
Compare Source
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.
v0.18.0
Compare Source
Added
OTEL_TRACES_SAMPLER_ARG
in default sdk config #737schema_url
toTracer
#743schema_url
toResource
#775Span::set_attributes
#638SpanExporter::force_flush
and default implementation #845Changed
ValueRecorder
in favor ofHistogram
#728IdGenerator
to SDK, rename toRandomIdGenerator
#742meter_with_version
accepts optional parameter forversion
andschema_url
#752Event
andLink
access patterns #757SpanKind
display format impl to jaeger crate #758TraceStateError
private #755Span::record_exception
toSpan::record_error
#756StatusCode
andmessage
withStatus
#760TracerProvider::force_flush
to SDK #658SpanBuilder::attributes
[breaking] #799pin-project-lite
#830Fixed
Removed
serialize
feature #738StatusCode::as_str
#741Tracer::with_span
#746v0.17.0
Compare Source
Changed
Serialize
&Deserialize
forSampler
,SpanLimits
#622, #626&'static str
andstring
in span methods #654String
data in instrumentation library. #670std::fmt::Debug
and'static
requirements fromTracerProvider
,Tracer
, andSpan
#664Tracer::invalid
method #683TracerProvider::tracer
andTracerProvider::versioned_tracer
methods #682futures
crate #684ShouldSample
parameters #695Fixed
service.name
fromOTEL_SERVICE_NAME
andOTEL_RESOURCE_ATTRIBUTES
#662TraceState::valid_key
crashes #665Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.