PackageTrack
Sign in Get early access

opentelemetry

OpenTelemetry API for Rust

0.32.0 246M downloads/mo #425 most downloaded on crates.io open-telemetry/opentelemetry-rust

What this package is like to depend on

Last release 3 months ago

08 May 2026

Release timing varies

gaps range from 2 weeks to 8 months

Nearly every release is documented

notes for 41 of 42 stable releases

Nothing withdrawn

no release was ever pulled

7 years old

42 releases · first in 2019

2 releases in the last 12 months

see the full history below

Release timeline

42 releases · Nov 2019 to May 2026
2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 42
  1. 0.32.0 08 May 2026
    Release notes

    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 source →
    Release notes

    Released 2026-May-08

    Open source →
  2. 0.31.0 25 Sep 2025
    Release notes

    Released 2025-Sep-25

    • Breaking Change return type of opentelemetry::global::set_tracer_provider to Unit to align with metrics counterpart
    • Add get_all method to opentelemetry::propagation::Extractor to return all values of the given propagation key and provide a default implementation.
    • Add an IntoIterator implementation for opentelemetry::trace::TraceState to allow iterating through its key-value pair collection.
    Open source →
    Release notes

    Released 2025-Sep-25

    • Update to v1.34.0 of the semantic conventions.
    Open source →
  3. 0.30.0 23 May 2025
    Release notes

    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 this context
    • with_telemetry_suppressed() - Creates a new context with telemetry suppression enabled
    • is_current_telemetry_suppressed() - Efficiently checks if the current thread's context has telemetry suppressed
    • enter_telemetry_suppressed_scope() - Convenience method to enter a scope where telemetry is suppressed

    These methods allow SDK components, exporters, and processors to temporarily disable telemetry generation during their internal operations, ensuring more predictable and efficient observability pipelines.

    • re-export tracing for internal-logs feature to remove the need of adding tracing as a dependency
    Open source →
    Release notes

    Released 2025-May-23

    • Update to v1.32.0 of the semantic conventions.
    Open source →
  4. 0.29.1 02 Apr 2025
    Release notes

    Release 2025-Apr-01

    • Bug Fix: Re-export WithContext at opentelemetry::trace::context::WithContext #2879 to restore backwards compatibility
      • The new path for WithContext and FutureExt are in opentelemetry::context as they are independent of the trace signal. Users should prefer this path.
    Open source →
  5. 0.29.0 22 Mar 2025
    Release notes

    Released 2025-Mar-21

    • Breaking Moved ExportError trait from opentelemetry::trace::ExportError to opentelemetry_sdk::export::ExportError
    • Breaking Moved TraceError enum from opentelemetry::trace::TraceError to opentelemetry_sdk::trace::TraceError
    • Breaking Moved TraceResult type alias from opentelemetry::trace::TraceResult to opentelemetry_sdk::trace::TraceResult
    • Bug Fix: InstrumentationScope implementation for PartialEq and Hash fixed to include Attributes also.
    • Breaking changes for baggage users: #2717
      • Changed value type of Baggage from Value to StringValue
      • Updated Baggage constants to reflect latest standard (MAX_KEY_VALUE_PAIRS - 180 -> 64, MAX_BYTES_FOR_ONE_PAIR - removed) and increased insert performance see #2284.
      • Align Baggage.remove() signature with .get() to take the key as a reference
      • Baggage can't be retrieved from the Context directly anymore and needs to be accessed via context.baggage()
      • with_baggage() and current_with_baggage() override any existing Baggage in the Context
      • 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.
    • Changed Context to use a stack to properly handle out of order dropping of ContextGuard. This imposes a limit of 65535 nested contexts on a single thread. See #2378 and #1887.
    • Added additional name: Option<&str> parameter to the event_enabled method on the Logger trait. This allows implementations (SDK, processor, exporters) to leverage this additional information to determine if an event is enabled.
    Open source →
    Release notes

    Released 2025-Mar-21

    • Update to v1.31.0 of the semantic conventions.
    Open source →
  6. 0.28.0 10 Feb 2025
    Release notes

    Released 2025-Feb-10

    • Bump msrv to 1.75.0.
    • Breaking opentelemetry::global::shutdown_tracer_provider() Removed from this crate, should now use tracer_provider.shutdown() see #2369 for a migration example.
    • Breaking Removed unused opentelemetry::PropagationError struct.
    Open source →
    Release notes

    Released 2025-Feb-10

    • Update to v1.29.0 of the semantic conventions.
    • Bump msrv to 1.75.0.
    Open source →
  7. 0.27.1 27 Nov 2024
    Release notes

    Released 2024-Nov-27

    Open source →
  8. 0.27.0 12 Nov 2024
    Release notes

    Released 2024-Nov-11

    • Bump MSRV to 1.70 #2179
    • Add LogRecord::set_trace_context; an optional method conditional on the trace feature for setting trace context on a log record.
    • Removed unnecessary public methods named as_any from AsyncInstrument trait and the implementing instruments: ObservableCounter, ObservableGauge, and ObservableUpDownCounter #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 of AsyncInstrument trait for each of the asynchronous instruments. #2210
    • Removed PartialOrd and Ord implementations for KeyValue. #2215
    • Breaking change for exporter authors: Marked KeyValue related structs and enums as non_exhaustive. #2228
    • Breaking change for log exporter authors: Marked AnyValue enum as non_exhaustive. #2230
    • Breaking change for Metrics users: The init method used to create instruments has been renamed to build. Also, try_init() method is removed from instrument builders. The return types of InstrumentProvider trait methods modified to return the instrument struct, instead of Result. #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 to InstrumentationScope
      • Renamed InstrumentationLibraryBuilder to InstrumentationScopeBuilder
      • Removed deprecated methods LoggerProvider::versioned_logger and TracerProvider::versioned_tracer
      • Removed methods LoggerProvider::logger_builder, TracerProvider::tracer_builder and MeterProvider::versioned_meter
      • Replaced these methods with LoggerProvider::logger_with_scope, TracerProvider::logger_with_scope, MeterProvider::meter_with_scope
      • Replaced global::meter_with_version with global::meter_with_scope
      • Added global::tracer_with_scope
      • Refer to PR description for migration guide.
    • Breaking change: replaced InstrumentationScope public attributes by getters #2275

    • Breaking change: #2260

      • Removed global::set_error_handler and global::handle_error.
      • global::handle_error usage inside the opentelemetry crates has been replaced with global::otel_info, otel_warn, otel_debug and otel_error macros based on the severity of the internal logs.
      • The default behavior of global::handle_error was to log the error using eprintln!. With otel macros, the internal logs get emitted via tracing macros of matching severity. Users now need to configure a tracing 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.
    • Breaking change for exporter/processor authors: #2266

      • Moved ExportError trait from opentelemetry::ExportError to opentelemetry_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 from opentelemetry::logs::LogError to opentelemetry_sdk::logs::LogError
      • Moved LogResult type alias from opentelemetry::logs::LogResult to opentelemetry_sdk::logs::LogResult
      • Moved MetricError enum from opentelemetry::metrics::MetricError to opentelemetry_sdk::metrics::MetricError
      • Moved MetricResult type alias from opentelemetry::metrics::MetricResult to opentelemetry_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 to spec_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.

    Open source →
    Release notes

    Released 2024-Nov-11

    • Bump MSRV to 1.70 #2179
    • Update to v1.28.0 of the semantic conventions.
    Open source →
  9. 0.26.0 01 Oct 2024
    Release notes

    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 existing KeyValue::new() API covers all the scenarios offered by these APIs.

      • Removed: ObjectSafeMeterProvider and GlobalMeterProvider #2112. These APIs were unnecessary and were mainly meant for internal use.

      • Modified: MeterProvider.meter() and MeterProvider.versioned_meter() argument types have been updated to &'static str instead of impl Into<Cow<'static, str>>> #2112. These APIs were modified to enforce the Meter name, version, and schema_url to be &'static str.

      • Renamed: NoopMeterCore to NoopMeter

    • Added with_boundaries API to allow users to provide custom bounds for Histogram instruments. #2135

    Open source →
    Release notes

    Released 2024-Sep-30

    Changed

    • Starting with this version, this crate will use Weaver for the generation of the semantic conventions.
    • Breaking Introduced a new feature semconv_experimental to enable experimental semantic conventions. This feature is disabled by default.
    Open source →
  10. 0.25.0 09 Sep 2024
    Release notes
    • 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.

    Open source →
    Release notes

    Changed

    • Starting with this version, this crate will align with opentelemetry crate on major,minor versions.
    • Update to v1.27.0 of the semantic conventions. #2000
    Open source →
  11. 0.24.0 15 Jul 2024
    Release notes
    • Add "metrics", "logs" to default features. With this, default feature list is "trace", "metrics" and "logs".

    • When "metrics" feature is enabled, KeyValue implements PartialEq, 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.

    Open source →
  12. 0.23.0 15 May 2024
    Release notes

    Added

    • #1640 Add PropagationError
    • #1701 Gauge no longer requires otel-unstable feature flag, as OpenTelemetry specification for Gauge instrument is stable.

    Removed

    • 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

    Changed

    • 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.
    • Deprecate versioned_logger() in favor of logger_builder() 1567.

    Before:

    let logger = provider.versioned_logger(
        "my-logger-name",
        Some(env!("CARGO_PKG_VERSION")),
        Some("https://opentelemetry.io/schemas/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/schemas/1.0.0")
        .with_attributes(vec![KeyValue::new("key", "value")])
        .build();
    
    • Deprecate versioned_tracer() in favor of tracer_builder() 1567.

    Before:

    let tracer = provider.versioned_tracer(
        "my-tracer-name",
        Some(env!("CARGO_PKG_VERSION")),
        Some("https://opentelemetry.io/schemas/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/schemas/1.0.0")
        .with_attributes(vec![KeyValue::new("key", "value")])
        .build();
    
    Open source →
  13. 0.22.0 25 Feb 2024
    Release notes

    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.
    Open source →
  14. 0.21.0 06 Nov 2023
    Release notes

    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
    • Bump MSRV to 1.64 #1203
    • opentelemetry crate now only carries the API types #1186. Use the opentelemetry_sdk crate for the SDK types.
    • trace::noop::NoopSpan no longer implements Default and instead exposes a const DEFAULT value. #1270
    • Updated crate documentation and examples. #1256
    • Breaking SpanBuilder attributes changed from OrderMap<Key, Value> to Vec<KeyValue> and with_attributes_map method is removed from SpanBuilder. This implies that OpenTelemetry API will no longer perform de-dup of attribute Keys. #1293. Please share feedback here, if you are affected.
    Open source →
  15. 0.20.0 30 Jul 2023
    Release notes

    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

    • Add new method to BoxedTracer #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 with opentelemetry::sdk::trace::config() (#1197)

    Changed

    • OtelString::Owned carries Box<str> instead of String #1096

    Removed

    • 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 to LogError and TraceError removed. #1201

    Fixed

    • 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
    Open source →
  16. 0.19.0 26 Mar 2023
    Release notes

    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

    • Add WithContext to public api #893.
    • Add support for instrumentation scope attributes #1021.

    Changed

    • Implement Display on Baggage #921.
    • Bump MSRV to 1.57 #953.
    • Update dependencies and bump MSRV to 1.60 #969.
    Open source →
  17. 0.18.0 13 Sep 2022
    Release notes

    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.

    Added

    • Pull sampling probability from OTEL_TRACES_SAMPLER_ARG in default sdk config #737
    • Add schema_url to Tracer #743
    • Add schema_url to Resource #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 of Histogram #728
    • Move IdGenerator to SDK, rename to RandomIdGenerator #742
    • meter_with_version accepts optional parameter for version and schema_url #752
    • Unify Event and Link access patterns #757
    • move SpanKind display format impl to jaeger crate #758
    • make TraceStateError private #755
    • rename Span::record_exception to Span::record_error #756
    • Replace StatusCode and message with Status #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

    • Remove serialize feature #738
    • Remove StatusCode::as_str #741
    • Remove Tracer::with_span #746
    Open source →
  18. 0.17.0 22 Jan 2022
    Release notes

    Changed

    • Implement Serialize & Deserialize for Sampler, SpanLimits #622, #626
    • Allow &'static str and string in span methods #654
    • Allow String data in instrumentation library. #670
    • Remove std::fmt::Debug and 'static requirements from TracerProvider, Tracer, and Span #664
    • Remove unused Tracer::invalid method #683
    • Split TracerProvider::tracer and TracerProvider::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

    • Fix default resource detection for tracer provider #641
    • Detect service.name from OTEL_SERVICE_NAME and OTEL_RESOURCE_ATTRIBUTES #662
    • Fix TraceState::valid_key crashes #665
    Open source →
  19. 0.16.0 07 Aug 2021
    Release notes

    Changed

    • Add default resource in TracerProvider #571
    • Rename get_tracer to tracer #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 to attribute to align with otel specification #609

    Performance

    • Small performance boost for Resource::get #579
    Open source →
    Release notes

    Changed

    • Breaking Moved duplicated (and unrelated) attributes from opentelemetry_semantic_conventions::trace and opentelemetry_semantic_conventions::resource into opentelemetry_semantic_conventions::attribute (which now contains all semantic attributes). trace and resource now only contain references to attributes which fall under their respective category.

    Added

    • Created opentelemetry_semantic_conventions::metric to store metric semantic conventions.
    Open source →
  20. 0.15.0 17 Jun 2021
    Release notes

    Added

    • More resource detectors #573

    Changed

    • 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 into metrics module #564
    • Update trace flags to match spec #565

    Fixed

    • Fix debug loop, add notes for #[tokio::test] #552
    • TraceState cannot insert new key-value pairs #567
    Open source →
    Release notes

    Changed

    Open source →
  21. 0.14.0 10 May 2021
    Release notes

    Changed

    • Breaking Replaced Key constants with &'static str for tracing compatibility #1334
    Open source →
  22. 0.13.0 24 Mar 2021
    Release notes

    Upgrade note: exporter pipelines do not return an uninstall guard as of #444, use opentelemetry::global::shutdown_tracer_provider explicitly instead.

    Open source →
    Release notes

    Changed

    Open source →
  23. 0.12.0 22 Jan 2021
    Release notes

    Changed

    • Update to v1.21.0 spec
    • Update to opentelemetry-api v0.20.0
    Open source →
  24. 0.11.2 01 Jan 2021
    Release notes

    Fixed

    • Fix possible deadlock when dropping metric instruments #407
    Open source →
  25. 0.11.1 29 Dec 2020
    Release notes

    Fixed

    • Fix remote implicit builder context sampling #405
    Open source →
  26. 0.11.0 28 Dec 2020
    Release notes

    Changed

    • Update to opentelemetry v0.19.
    • Update to opentelemetry_http v0.8.
    • Bump MSRV to 1.57 #953.
    • Update to v1.17.0 spec #960.
    • Update dependencies and bump MSRV to 1.60 #969.
    Open source →
  27. 0.10.0 10 Nov 2020
    Release notes

    Changed

    • update to v1.9 spec #754
    • Update to opentelemetry v0.18.0
    Open source →
  28. 0.9.1 17 Oct 2020

    Nothing published for this version

  29. 0.9.0 16 Oct 2020
    Release notes

    Changed

    • Update to opentelemetry v0.17.0
    Open source →
  30. 0.8.0 14 Aug 2020
    Release notes

    Changed

    • Update to opentelemetry v0.16.0
    Open source →
  31. 0.7.0 27 Jul 2020
    Release notes

    Added

    • New ParentOrElse sampler for fallback logic if parent is not sampled. #128
    • Attributes can now have array values #146
    • Added record_exception and record_exception_with_stacktrace methods to Span #152

    Changed

    • Update sampler types #128
      • Always is now AlwaysOn. Never is now AlwaysOff. Probability now ignores parent sampled state.
    • base64 and binary_propagator have been moved to experimental module. #134
    • Correlation-Context header has been updated to otcorrelations #145
    • B3Propagator has been updated to more closely follow the spec #148
    Open source →
    Release notes

    Changed

    • Update to spec version 1.4.0 #570
    • Update to opentelemetry v0.15.0
    Open source →
  32. 0.6.0 02 Jun 2020
    Release notes

    Added

    • Add http and tonic features to impl Carrier for common types.

    Changed

    • Removed span_id from sampling parameters when implementing custom samplers.

    Fixed

    • Make Context Send + Sync in #127
    Open source →
    Release notes

    Changed

    • Update to spec version 1.3.0 #547
    • Update to opentelemetry v0.14.0
    Open source →
  33. 0.5.0 10 May 2020
    Release notes

    Added

    • Derive Clone for B3Propagator, SamplingResult, and SpanBuilder
    • Ability to configure the span id / trace id generator
    • impl From<T> for common Key and Value types
    • Add global tracer method
    • Add Resource API
    • Add Context API
    • Add Correlations API
    • Add HttpTextCompositePropagator for composing HttpTextPropagators
    • Add GlobalPropagator for globally configuring a propagator
    • Add TraceContextExt to provide methods for working with trace data in a context
    • Expose EvictedQueue constructor

    Changed

    • Ensure that impls of Span are Send and Sync when used in global
    • Changed Key and Value method signatures to remove Cow 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 to in_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 to FutureExt to avoid clashing with metric instruments, and instead accepts contexts via with_context.
    • Span's get_context method has been renamed to span_context to avoid ambiguity.
    • HttpTextPropagators inject the current context instead of an explicit span context. The context can be specified with inject_context.
    • SpanData's context has been renamed to span_context

    Fixed

    • Update the probability sampler to match the spec
    • Rename Traceparent header to traceparent

    Removed

    • TracerGenerics methods have been folded in to the Tracer 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, and as_any have been removed
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.13.0

    Removed

    • Removed from_env and use environment variables to initialize the configurations by default #459
    Open source →
  34. 0.4.0 04 Apr 2020
    Release notes

    Added

    • New async batch span processor
    • New stdout exporter
    • Add trace_id to SpanBuilder

    Changed

    • Add attributes to Events.
    • Update Span's add_event and add_event_with_timestamp to accept attributes.
    • Record log fields in jaeger exporter
    • Properly export span kind in jaeger exporter
    • Add support for Links
    • Add status_message to Span and SpanData
    • Rename SpanStatus to StatusCode
    • Update EvictedQueue internals from LIFO to FIFO
    • Switch span attributes to EvictedHashMap

    Fixed

    • Call shutdown correctly when span processors and exporters are dropped
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.12.0
    Open source →
  35. 0.3.0 24 Mar 2020
    Release notes

    Added

    • New Base64 propagator
    • New SpanBuilder api
    • Zipkin Exporter crate

    Changed

    • Switch to SpanId and TraceId from u64 and u128
    • Remove &mut self requirements for Span API

    Fixed

    • circular Tracer debug impl
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.11.0
    Open source →
  36. 0.2.0 07 Feb 2020
    Release notes

    Added

    • Make trace and metrics features optional
    • ExportResult as specified in the specification
    • Add Futures compatibility API
    • Added serde serialize support to SpanData
    • Separate OpenTelemetry Jaeger crate

    Changed

    • 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

    Removed

    • Remove add_link from spans
    Open source →
    Release notes

    Changed

    • Update to opentelemetry v0.10.0
    Open source →
  37. 0.1.5 26 Nov 2019
    Release notes

    Added

    • trace-context propagator

    Changed

    • Prometheus API cleanup
    Open source →
  38. 0.1.4 21 Nov 2019
    Release notes

    Added

    • Parent option for default sampler

    Fixed

    • SDK tracer default span id
    Open source →
  39. 0.1.3 19 Nov 2019
    Release notes

    Changed

    • Ensure spans are always send and sync
    • Allow static lifetimes for span names
    • Improve KeyValue ergonomics
    Open source →
  40. 0.1.2 17 Nov 2019
    Release notes

    Added

    • Implement global provider
    Open source →
  41. 0.1.1 15 Nov 2019
    Release notes

    Added

    • Documentation and API cleanup
    • Tracking of active spans via thread local span stack
    Open source →
  42. 0.1.0 08 Nov 2019
    Release notes

    Initial debug alpha

    Open source →
    Release notes

    Added

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive