Opentelemetry Rust Versions Save

The Rust OpenTelemetry implementation

v0.22.1

2 months ago

Fixed https://github.com/open-telemetry/opentelemetry-rust/pull/1576 Fix Span kind is always set to "internal".

v0.22.0

2 months ago

API

Added

Changed

Removed

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 via OtlpLogPipeline::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 stores links as SpanLinks instead of EvictedQueue where SpanLinks is a struct with a Vec of links and dropped_count.

    SpanData now stores events as SpanEvents instead of EvictedQueue where SpanEvents is a struct with a Vec of events and dropped_count.

  • Breaking Remove TextMapCompositePropagator #1373. Use TextMapCompositePropagator in opentelemetry API.

  • #1375 Fix metric collections during PeriodicReader shutdown

  • Breaking #1480 Remove fine grained BatchConfig configurations from BatchLogProcessorBuilder and BatchSpanProcessorBuilder. Use BatchConfigBuilder to construct a BatchConfig instance and pass it using BatchLogProcessorBuilder::with_batch_config or BatchSpanProcessorBuilder::with_batch_config.

  • Breaking #1480 Remove mutating functions from BatchConfig, use BatchConfigBuilder to construct a BatchConfig 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 a Weak<LoggerProviderInner>
    • LoggerProviderInner is no longer pub (crate)
    • Logger.provider() now returns &LoggerProvider instead of an Option<LoggerProvider>
  • 1519 Performance improvements when calling Counter::add() and UpDownCounter::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

4 months ago

Fixed

  • Fix delta aggregation metric reuse. (#1434)
  • Fix max_scale validation of exponential histogram configuration. (#1452)

v0.21.1

6 months ago

Relase backported bugfixes into v0.21.x:

  • opentelemetry-prometheus:
    • #1348
  • opentelemetry-sdk:
    • #1363
    • #1351

v0.21.0

6 months ago

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

v0.20.0

9 months ago

See individual crate changelogs for details.

v0.19.0

1 year ago

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

1 year ago

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

v0.17.0

2 years ago

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

v0.16.0

2 years ago

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