Skip to content

v0.22.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@TommyCpp TommyCpp released this 25 Feb 03:56
· 410 commits to main since this release
ab9415a

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