Skip to content

fix(deps): update opentelemetry#337

Merged
davidB merged 3 commits into
mainfrom
renovate/opentelemetry
May 24, 2026
Merged

fix(deps): update opentelemetry#337
davidB merged 3 commits into
mainfrom
renovate/opentelemetry

Conversation

@renovate

@renovate renovate Bot commented May 9, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
opentelemetry (source) workspace.dependencies minor 0.310.32
opentelemetry-appender-tracing (source) dependencies minor 0.310.32
opentelemetry-aws (source) workspace.dependencies minor 0.190.20
opentelemetry-jaeger-propagator (source) workspace.dependencies minor 0.310.32
opentelemetry-otlp (source) workspace.dependencies minor 0.310.32
opentelemetry-proto (source) workspace.dependencies minor 0.310.32
opentelemetry-resource-detectors (source) workspace.dependencies minor 0.100.11
opentelemetry-semantic-conventions (source) workspace.dependencies minor 0.310.32
opentelemetry-stdout (source) workspace.dependencies minor 0.310.32
opentelemetry-zipkin (source) workspace.dependencies minor 0.310.32
opentelemetry_sdk (source) workspace.dependencies minor 0.310.32
tracing-opentelemetry workspace.dependencies minor 0.320.33

Release Notes

open-telemetry/opentelemetry-rust (opentelemetry)

v0.32.0

Compare Source

Released 2026-May-08

  • Added BoundCounter<T> and BoundHistogram<T> types that cache resolved
    aggregator references for a fixed attribute set. Created via Counter::bind()
    and Histogram::bind(), bound instruments bypass per-call attribute lookup,
    providing significant performance improvements for hot paths where the same
    attributes are used repeatedly. Both types implement Clone so a single bound
    state can be shared across threads or modules without re-binding. Also adds
    the SyncInstrument::bind() trait method and BoundSyncInstrument<T> trait
    for SDK implementors; the trait method has a no-op default so custom
    SyncInstrument impls degrade gracefully without panicking. Gated behind the
    experimental_metrics_bound_instruments feature flag.
  • Add reserve method to opentelemetry::propagation::Injector to hint at the number of elements that will be added to avoid multiple resize operations of the underlying data structure. Has an empty default implementation.
  • Breaking Removed the following public fields and methods from the SpanBuilder #​3227:
    • trace_id, span_id, end_time, status, sampling_result
    • with_trace_id, with_span_id, with_end_time, with_status, with_sampling_result
  • Added #[must_use] attribute to opentelemetry::metrics::AsyncInstrumentBuilder to add compile time warning when .build() is not called on observable instrument builders, preventing silent failures where callbacks are never registered and metrics are never reported.
  • Breaking Moved the following SDK sampling types from opentelemetry::trace to opentelemetry_sdk::trace #​3277:
    • SamplingDecision, SamplingResult
    • These types are SDK implementation details and should be imported from opentelemetry_sdk::trace instead.
  • "spec_unstable_logs_enabled" feature flag is removed. The capability (and the
    backing specification) is now stable and is enabled by default.
    3278
  • Remove the empty "message" field from tracing events emitted via the internal-logs feature
  • Fix panic when calling Context::current() from Drop implementations triggered by ContextGuard cleanup (#​3262).
open-telemetry/opentelemetry-rust (opentelemetry-appender-tracing)

v0.32.0

Released 2026-May-08

  • Add tracing span attribute enrichment (experimental). When enabled,
    attributes attached to active tracing spans are copied onto each emitted
    log record. "Span" here refers to a tracing::span! from the
    tracing crate (the appender's source), not an OpenTelemetry span.
    #​3482, #​3505

    Gated behind the new experimental_span_attributes cargo feature. As
    with all experimental_* features in this repo, the API may change without
    a major version bump until it is stabilized; once stable, the feature flag
    will be removed.

    Enrichment is disabled by default (no per-span overhead) and must be
    opted into at runtime via a single builder method that accepts a
    [TracingSpanAttributes] value:

    use opentelemetry_appender_tracing::layer::TracingSpanAttributes;
    
    // Copy all tracing-span attributes onto log records:
    let layer = OpenTelemetryTracingBridge::builder(&provider)
        .with_tracing_span_attributes(TracingSpanAttributes::all())
        .build();
    
    // Or copy only an allowlist of attributes:
    let layer = OpenTelemetryTracingBridge::builder(&provider)
        .with_tracing_span_attributes(TracingSpanAttributes::allowlist(["session.id"]))
        .build();
  • Remove the experimental_use_tracing_span_context since
    tracing-opentelemetry now supports activating the OpenTelemetry
    context for the current tracing span. This fixes #​3190 — the
    circular dependency introduced by depending on tracing-opentelemetry
    that depends on opentelemetry.

  • "spec_unstable_logs_enabled" feature flag is removed. The capability (and the
    backing specification) is now stable and is enabled by default. #​3278

open-telemetry/opentelemetry-rust-contrib (opentelemetry-aws)

v0.20.0

Released 2026-May-13

Changed
  • Bump opentelemetry and opentelemetry_sdk versions to 0.32.0
open-telemetry/opentelemetry-rust (opentelemetry-jaeger-propagator)

v0.32.0

Compare Source

Released 2026-May-08

  • Deprecated: The opentelemetry-jaeger-propagator crate is now deprecated. The Jaeger propagation format is deprecated per the OpenTelemetry specification. Use W3C TraceContext propagation instead. This crate will be removed in a future release.
open-telemetry/opentelemetry-rust (opentelemetry-otlp)

v0.32.0

Compare Source

Released 2026-May-08

  • Add tls-provider-agnostic feature flag for environments that require a custom crypto backend (e.g., OpenSSL for FIPS compliance). Enables TLS code paths without bundling ring or aws-lc-rs.
  • Add build() directly on SpanExporterBuilder, MetricExporterBuilder, and LogExporterBuilder
    (before selecting a transport), which auto-selects the transport based on the
    OTEL_EXPORTER_OTLP_PROTOCOL environment variable or enabled features.
    #​3394
  • Breaking Removed ExportConfig, HasExportConfig, with_export_config(), HasTonicConfig, HasHttpConfig, TonicConfig, and HttpConfig from public API.
    Use the public WithExportConfig, WithTonicConfig, and WithHttpConfig trait methods instead, which remain unchanged.
  • The gRPC/tonic OTLP exporter's build method now returns an error for all signals (traces, metrics, logs) when
    an https:// endpoint is configured but no TLS feature (tls-ring or tls-aws-lc) is enabled, instead of
    silently sending unencrypted traffic. When a TLS feature is enabled and an https:// endpoint is used without
    an explicit .with_tls_config(), a default ClientTlsConfig is automatically applied.
    #​3182
  • Prevent auth tokens from leaking in export error messages. gRPC and HTTP
    exporter errors no longer include potentially sensitive server responses
    (e.g., authentication tokens echoed back). Error messages returned to SDK
    processors contain only the gRPC status code or HTTP status code. Full
    details are logged at DEBUG level only.
    #​3021
  • Surface pre-flight transport error details at ERROR level when grpc-tonic
    OTLP export fails due to a local misconfiguration. When the returned
    tonic::Status wraps a local transport error (invalid URL, connect failure,
    DNS), its source chain (e.g., "transport error: invalid URI") is appended
    to the returned error so SDK processors surface it at ERROR without
    requiring DEBUG logging. Server-returned gRPC status messages remain
    DEBUG-only to preserve the auth-token leak safeguards from
    #​3021.
    #​3331
  • Add support for per-signal protocol environment variables:
    OTEL_EXPORTER_OTLP_TRACES_PROTOCOL, OTEL_EXPORTER_OTLP_METRICS_PROTOCOL,
    OTEL_EXPORTER_OTLP_LOGS_PROTOCOL. These allow configuring different transport protocols
    per signal type. Signal-specific vars take precedence over generic OTEL_EXPORTER_OTLP_PROTOCOL.
    The auto-select build() method on each exporter builder now respects the full priority chain:
    signal-specific env var > generic env var > feature-based default.
  • Transport/protocol mismatch validation: HTTP transport returns InvalidConfig when gRPC protocol
    is requested; gRPC transport returns InvalidConfig when an HTTP protocol is requested.
  • Breaking: Protocol::default() no longer consults the OTEL_EXPORTER_OTLP_PROTOCOL
    environment variable. It now returns only the feature-based default (http-json > http-proto >
    grpc-tonic). Protocol resolution from environment variables is handled internally by the
    exporter builders. Users who relied on Protocol::default() to read env vars should use
    Protocol::from_env() instead.
  • Add support for OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE environment variable
    to configure metrics temporality. Accepted values: cumulative (default), delta,
    lowmemory (case-insensitive). Programmatic .with_temporality() overrides the env var.
  • Fix NoHttpClient error when multiple HTTP client features are enabled by using priority-based selection (reqwest-client > hyper-client > reqwest-blocking-client). #​2994
  • Add partial success response handling for OTLP exporters (traces, metrics, logs) per OTLP spec. Exporters now log warnings when the server returns partial success responses with rejected items and error messages. #​865
  • Refactor internal-logs feature in opentelemetry-otlp to reduce unnecessary dependencies3191
  • Fixed [#​2777](https://github.com/open-telemetry/opentelemetry rust/issues/2777) to properly handle shutdown_with_timeout() when using grpc-tonic.
  • Deprecate tls feature in favor of explicit tls-ring and tls-aws-lc features.
    Migration: Replace tls with tls-ring (or tls-aws-lc). Users of tls-roots or tls-webpki-roots must now also enable one of these.
  • Prevent logging of header values in OTLP tonic exporter #​3465
open-telemetry/opentelemetry-rust (opentelemetry-proto)

v0.32.0

Compare Source

Released 2026-May-08

  • Update proto definitions to v1.10.0.
  • Updated schemars dependency to version 1.0.0.
  • Bug fix: InstrumentationScope version and attributes are now preserved when logs have a target set. Previously, setting a log target would discard the scope's version and attributes. (#​3276)
open-telemetry/opentelemetry-rust-contrib (opentelemetry-resource-detectors)

v0.11.0

Released 2026-May-13

  • Bump opentelemetry and opentelemetry_sdk versions to 0.32
  • Bump opentelemetry-semantic-conventions version to 0.32
open-telemetry/opentelemetry-rust (opentelemetry-semantic-conventions)

v0.32.0

Compare Source

Released 2026-May-08

open-telemetry/opentelemetry-rust (opentelemetry-stdout)

v0.32.0

Compare Source

Released 2026-May-08

  • ExponentialHistogram supported in stdout
open-telemetry/opentelemetry-rust (opentelemetry-zipkin)

v0.32.0

Compare Source

Released 2026-May-08

  • Deprecated: The opentelemetry-zipkin crate is now deprecated. Use the OTLP exporter (opentelemetry-otlp) instead. Zipkin supports native OTLP ingestion. This crate will be removed in a future release.
  • reqwest's crypto backend has changed from ring to aws-lc-sys.
open-telemetry/opentelemetry-rust (opentelemetry_sdk)

v0.32.0

Compare Source

Released 2026-May-08

  • SimpleSpanProcessor now suppresses telemetry during export, preventing
    telemetry-induced-telemetry feedback loops. This aligns with the existing
    behavior in BatchSpanProcessor and SimpleLogProcessor.
  • Removed SimpleConcurrentLogProcessor and the experimental_logs_concurrent_log_processor
    feature flag. The use cases it was designed for (ETW/user_events exporters) are
    better served by modeling those exporters as processors directly.
  • Added Counter::bind() and Histogram::bind() SDK implementations that
    return pre-bound measurement handles (BoundCounter<T>, BoundHistogram<T>).
    Bound instruments resolve the attribute-to-aggregator mapping once at bind time
    and cache the result, eliminating per-call HashMap lookups. View attribute
    filtering is applied at bind time so the hot path stays free of per-call
    attribute processing. Bound and unbound recordings with the same (post-view)
    attribute set always aggregate into the same data point, including the empty
    attribute set. Bound entries are never evicted during delta collection while
    a handle exists — idle cycles produce no export but the tracker persists. If
    bind() is called at the cardinality limit, the handle binds directly to
    the overflow tracker — its writes stay on the same direct (no-lookup) hot
    path and consistently land in the otel.metric.overflow=true bucket for
    the lifetime of the handle. To recover a bound handle after delta collection
    frees space, drop the existing handle and call bind() again. Gated behind
    the experimental_metrics_bound_instruments feature flag. Benchmarks show
    ~28x speedup for counter operations and ~9x for histograms.
  • Delta metrics collection now uses in-place eviction instead of draining the
    HashMap on every collect cycle. Stale attribute sets that received no measurements
    since the last collection are evicted. Note: recovery from cardinality overflow
    now requires 2 collect cycles — the first marks entries as stale, the second
    evicts them.
  • Breaking The SDK testing feature is now runtime agnostic. #​3407
    • TokioSpanExporter and new_tokio_test_exporter have been renamed to TestSpanExporter and new_test_exporter.
    • The following transitive dependencies and features have been removed: tokio/rt, tokio/time, tokio/macros, tokio/rt-multi-thread, tokio-stream, experimental_async_runtime
  • Store InstrumentationScope in Arc internally in SdkTracer, making tracer clones cheaper (Arc refcount increment instead of deep copy).
  • Add 32-bit platform support by using portable-atomic for AtomicI64 and AtomicU64 in the metrics module. This enables compilation on 32-bit ARM targets (e.g., armv5te-unknown-linux-gnueabi, armv7-unknown-linux-gnueabihf).
  • Aggregation enum and StreamBuilder::with_aggregation() are now stable and no longer require the spec_unstable_metrics_views feature flag.
  • Fix service.name Resource attribute fallback to follow OpenTelemetry
    specification by using unknown_service:<process.executable.name> format when
    service name is not explicitly configured. Previously, it only used
    unknown_service.
  • Fix SpanExporter::shutdown() default timeout from 5 nanoseconds to 5 seconds.
  • Breaking SpanExporter trait methods shutdown, shutdown_with_timeout, and force_flush now take &self instead of &mut self for consistency with LogExporter and PushMetricExporter. Implementers using interior mutability (e.g., Mutex, AtomicBool) require no changes.
  • Added Resource::get_ref(&self, key: &Key) -> Option<&Value> to allow retrieving a reference to a resource value without cloning.
  • Breaking Removed the following public hidden methods from the SdkTracer #​3227:
    • id_generator, should_sample
  • Breaking Moved the following SDK sampling types from opentelemetry::trace to opentelemetry_sdk::trace #​3277:
    • SamplingDecision, SamplingResult
    • These types are SDK implementation details and should be imported from opentelemetry_sdk::trace instead.
  • StreamBuilder::build() now rejects usize::MAX as a cardinality limit
    with a validation error. #​3506
  • Fix Histogram boundaries being ignored in the presence of views #​3312
  • TracerProviderBuilder::with_sampler allows to pass boxed instance of ShouldSample [#​3313][3313]
  • Fix ObservableCounter and ObservableUpDownCounter now correctly report only data points from the current measurement cycle, removing stale attribute combinations that are no longer observed. #​3248
  • Fix panic when SpanProcessor::on_end calls Context::current() (#​3262).
    • Updated SpanProcessor::on_end documentation to clarify that Context::current() returns the parent context, not the span's context
  • Fix traceparent headers with unknown flags (e.g. W3C random-trace-id flag 0x02) being incorrectly rejected. Unknown flags are now accepted and zeroed out as required by the W3C trace-context spec. #​3435
  • Breaking InMemoryExporterError has been removed and replaced by OTelSdkError, and a new JaegerRemoteSamplerBuildError introduced to replace last uses of TraceError. #​3458
  • "spec_unstable_logs_enabled" feature flag is removed. The capability (and the
    backing specification) is now stable and is enabled by default. #​3278
tokio-rs/tracing-opentelemetry (tracing-opentelemetry)

v0.33.0

Compare Source

Fixed
  • [breaking] avoid deadlock when entering a span (#​251)
Other

Configuration

📅 Schedule: (UTC)

  • 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.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot requested a review from davidB May 9, 2026 02:02
@github-actions

github-actions Bot commented May 9, 2026

Copy link
Copy Markdown
Contributor

MegaLinter analysis: Error

Descriptor Linter Files Fixed Errors Warnings Elapsed time
✅ EDITORCONFIG editorconfig-checker 2 0 0 0.01s
✅ REPOSITORY checkov yes no no 17.37s
✅ REPOSITORY gitleaks yes no no 0.97s
✅ REPOSITORY git_diff yes no no 0.01s
✅ REPOSITORY grype yes no no 44.02s
❌ REPOSITORY osv-scanner yes 1 no 0.36s
✅ REPOSITORY secretlint yes no no 1.31s
✅ REPOSITORY syft yes no no 1.94s
✅ REPOSITORY trivy-sbom yes no no 0.29s
✅ REPOSITORY trufflehog yes no no 3.91s

Detailed Issues

❌ REPOSITORY / osv-scanner - 1 error
Scanning dir .
Starting filesystem walk for root: /
End status: 59 dirs visited, 214 inodes visited, 0 Extract calls, 20.80608ms elapsed, 20.80654ms wall time
No package sources found, --help for usage information.

Notices

📣 MegaLinter 9.5.0 is out! Discover the new features and security recommendations in the release announcement. (Skip this info by defining SECURITY_SUGGESTIONS: false)

See detailed reports in MegaLinter artifacts
Set VALIDATE_ALL_CODEBASE: true in mega-linter.yml to validate all sources, not only the diff

MegaLinter is graciously provided by OX Security
Show us your support by starring ⭐ the repository

@renovate renovate Bot force-pushed the renovate/opentelemetry branch from 567d031 to 7531a49 Compare May 14, 2026 04:52
@renovate renovate Bot changed the title fix(deps): update opentelemetry to 0.32 fix(deps): update opentelemetry May 14, 2026
@renovate renovate Bot force-pushed the renovate/opentelemetry branch from 7531a49 to 051c909 Compare May 19, 2026 02:33
@davidB davidB force-pushed the renovate/opentelemetry branch from 051c909 to 1e537c2 Compare May 24, 2026 10:59
@renovate

renovate Bot commented May 24, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@davidB davidB merged commit 1e537c2 into main May 24, 2026
1 check passed
@davidB davidB deleted the renovate/opentelemetry branch May 24, 2026 11:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant