New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(api): move composite propagator to API #1373
Conversation
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #1373 +/- ##
=======================================
+ Coverage 52.8% 55.3% +2.4%
=======================================
Files 175 145 -30
Lines 22175 17882 -4293
=======================================
- Hits 11729 9895 -1834
+ Misses 10446 7987 -2459 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good for the most part, just one question.
//! | ||
//! `BinaryFormat` is a formatter to serialize and deserialize a value |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to remove all this documentation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it mostly came from old specification which can be misleading. We can add stuff like BinaryPropagator
back once we implement it
@open-telemetry/rust-approvers Can I get another review? (We discussed needing 2 review per PRs the other day) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense to move this 👍
@@ -107,31 +113,31 @@ impl TextMapPropagator for TextMapCompositePropagator { | |||
} | |||
} | |||
|
|||
#[cfg(all(test, feature = "testing", feature = "trace"))] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we want to keep the trace
feature as this uses types from that module?
We should ask to have this updated. @jtescher do you have access to this or should we ask on the community repo? |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [opentelemetry](https://togithub.com/open-telemetry/opentelemetry-rust) | dependencies | minor | `0.21` -> `0.22` | | [opentelemetry-http](https://togithub.com/open-telemetry/opentelemetry-rust) | dependencies | minor | `0.10` -> `0.11` | | [opentelemetry-otlp](https://togithub.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp) ([source](https://togithub.com/open-telemetry/opentelemetry-rust/tree/HEAD/opentelemetry-otlp)) | dependencies | minor | `0.14` -> `0.15` | | [opentelemetry_sdk](https://togithub.com/open-telemetry/opentelemetry-rust) | dependencies | minor | `0.21` -> `0.22` | | [tracing-opentelemetry](https://togithub.com/tokio-rs/tracing-opentelemetry) | dependencies | minor | `0.22` -> `0.23` | --- ### Release Notes <details> <summary>open-telemetry/opentelemetry-rust (opentelemetry)</summary> ### [`v0.22.0`](https://togithub.com/open-telemetry/opentelemetry-rust/releases/tag/v0.22.0) [Compare Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/v0.21.0...opentelemetry-0.22.0) ### API #### Added - [open-telemetry/opentelemetry-rust#1410 Add experimental synchronous gauge. This is behind the feature flag, and can be enabled by enabling the feature otel_unstable for opentelemetry crate. - [open-telemetry/opentelemetry-rust#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. [open-telemetry/opentelemetry-rust#1353 - Add TextMapCompositePropagator [open-telemetry/opentelemetry-rust#1373 - Turned off events for NoopLogger to save on operations [open-telemetry/opentelemetry-rust#1455 #### Removed - Removed OrderMap type as there was no requirement to use this over regular HashMap. [open-telemetry/opentelemetry-rust#1353 - Remove API for Creating Histograms with signed integers. [open-telemetry/opentelemetry-rust#1371 - Remove global::shutdown_meter_provider, use SdkMeterProvider::shutdown directly instead ([#​1412](https://togithub.com/open-telemetry/opentelemetry-rust/issues/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](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1410) Add experimental synchronous gauge - [#​1471](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1471) Configure batch log record processor via [`OTEL_BLRP_*`](https://togithub.com/open-telemetry/opentelemetry-specification/blob/main/specification/configuration/sdk-environment-variables.md#batch-logrecord-processor) environment variables and via `OtlpLogPipeline::with_batch_config` - [#​1503](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1503) Make the documentation for In-Memory exporters visible. - [#​1526](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1526) Performance Improvement : Creating Spans and LogRecords are now faster, by avoiding expensive cloning of `Resource` for every Span/LogRecord. ##### Changed - **Breaking** [#​1313](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1313) [#​1350](https://togithub.com/open-telemetry/opentelemetry-rust/pull/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](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1373). Use `TextMapCompositePropagator` in opentelemetry API. - [#​1375](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1375/) Fix metric collections during PeriodicReader shutdown - **Breaking** [#​1480](https://togithub.com/open-telemetry/opentelemetry-rust/pull/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](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1480) Remove mutating functions from `BatchConfig`, use `BatchConfigBuilder` to construct a `BatchConfig` instance. - **Breaking** [#​1495](https://togithub.com/open-telemetry/opentelemetry-rust/pull/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](https://togithub.com/open-telemetry/opentelemetry-rust/pull/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](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1519) Performance improvements when calling `Counter::add()` and `UpDownCounter::add()` with an empty set of attributes (e.g. `counter.Add(5, &[])`) ##### Fixed - [#​1481](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1481) Fix error message caused by race condition when using PeriodicReader </details> <details> <summary>open-telemetry/opentelemetry-rust (opentelemetry-otlp)</summary> ### [`v0.15.0`](https://togithub.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-otlp/CHANGELOG.md#v0150) [Compare Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.14.0...opentelemetry-otlp-0.15.0) ##### Added - Support custom channels in topic exporters [#​1335](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1335) - Allow specifying OTLP Tonic metadata from env variable [#​1377](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1377) ##### Changed - Update to tonic 0.11 and prost 0.12 [#​1536](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1536) ##### Fixed - Fix `tonic()` to the use correct port. [#​1556](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1556) ##### Removed - **Breaking** Remove support for surf HTTP client [#​1537](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1537) - **Breaking** Remove support for grpcio transport [#​1534](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1534) </details> <details> <summary>tokio-rs/tracing-opentelemetry (tracing-opentelemetry)</summary> ### [`v0.23.0`](https://togithub.com/tokio-rs/tracing-opentelemetry/blob/HEAD/CHANGELOG.md#0230-February-26-2024) [Compare Source](https://togithub.com/tokio-rs/tracing-opentelemetry/compare/v0.22.0...v0.23.0) ##### Breaking Changes - Upgrade to opentelemetry 0.22. Refer to the upstream [changelog](https://togithub.com/open-telemetry/opentelemetry-rust/releases/tag/v0.22.0) for more information. In particular, i64 histograms will silently downgrade to key/value exports. </details> --- ### Configuration 📅 **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](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/TheHackerApp/logging). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4yMTIuMCIsInVwZGF0ZWRJblZlciI6IjM3LjM0MC4xMCIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Fixes #1013
Design discussion issue (if applicable) #
Changes
Please provide a brief description of the changes here.
Merge requirement checklist
CHANGELOG.md
files updated for non-trivial, user-facing changes