Skip to content
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

Merged
merged 6 commits into from
Nov 21, 2023
Merged

Conversation

TommyCpp
Copy link
Contributor

@TommyCpp TommyCpp commented Nov 15, 2023

Fixes #1013
Design discussion issue (if applicable) #

Changes

Please provide a brief description of the changes here.

Merge requirement checklist

  • CONTRIBUTING guidelines followed
  • Unit tests added/updated (if applicable)
  • Appropriate CHANGELOG.md files updated for non-trivial, user-facing changes
  • Changes in public API reviewed (if applicable)

Copy link

codecov bot commented Nov 17, 2023

Codecov Report

Attention: 2 lines in your changes are missing coverage. Please review.

Comparison is base (dd03fda) 52.8% compared to head (f51ad8e) 55.3%.
Report is 11 commits behind head on main.

❗ Current head f51ad8e differs from pull request most recent head b455109. Consider uploading reports for the commit b455109 to get more accurate results

Files Patch % Lines
opentelemetry/src/propagation/composite.rs 97.3% 2 Missing ⚠️
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.
📢 Have feedback on the report? Share it here.

@TommyCpp TommyCpp marked this pull request as ready for review November 18, 2023 19:42
@TommyCpp TommyCpp requested a review from a team November 18, 2023 19:42
Copy link
Contributor

@hdost hdost left a 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
Copy link
Contributor

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?

Copy link
Contributor Author

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

@TommyCpp
Copy link
Contributor Author

TommyCpp commented Nov 21, 2023

@open-telemetry/rust-approvers Can I get another review? (We discussed needing 2 review per PRs the other day)

Copy link
Member

@jtescher jtescher left a 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"))]
Copy link
Member

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?

@hdost
Copy link
Contributor

hdost commented Nov 21, 2023

@open-telemetry/rust-approvers Can I get another review? (We discussed needing 2 review per PRs the other day)

We should ask to have this updated. @jtescher do you have access to this or should we ask on the community repo?

@hdost hdost merged commit 7848755 into open-telemetry:main Nov 21, 2023
12 of 13 checks passed
github-merge-queue bot referenced this pull request in TheHackerApp/logging May 7, 2024
[![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

-
[https://github.com/open-telemetry/opentelemetry-rust/pull/1410](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1410)
Add experimental synchronous gauge. This is behind the feature flag, and
can be enabled by enabling the feature otel_unstable for opentelemetry
crate.

-
[https://github.com/open-telemetry/opentelemetry-rust/pull/1410](https://togithub.com/open-telemetry/opentelemetry-rust/pull/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.
[https://github.com/open-telemetry/opentelemetry-rust/pull/1353](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1353)
- Add TextMapCompositePropagator
[https://github.com/open-telemetry/opentelemetry-rust/pull/1373](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1373)
- Turned off events for NoopLogger to save on operations
[https://github.com/open-telemetry/opentelemetry-rust/pull/1455](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1455)

#### Removed

- Removed OrderMap type as there was no requirement to use this over
regular HashMap.
[https://github.com/open-telemetry/opentelemetry-rust/pull/1353](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1353)
- Remove API for Creating Histograms with signed integers.
[https://github.com/open-telemetry/opentelemetry-rust/pull/1371](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1371)
- Remove global::shutdown_meter_provider, use SdkMeterProvider::shutdown
directly instead
([#&#8203;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

-
[#&#8203;1410](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1410)
Add experimental synchronous gauge

-
[#&#8203;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`

-
[#&#8203;1503](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1503)
Make the documentation for In-Memory exporters visible.

-
[#&#8203;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**

[#&#8203;1313](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1313)

[#&#8203;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`
[#&#8203;1373](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1373).
Use `TextMapCompositePropagator` in opentelemetry API.

-
[#&#8203;1375](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1375/)
Fix metric collections during PeriodicReader shutdown

- **Breaking**
[#&#8203;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**
[#&#8203;1480](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1480)
Remove mutating functions from `BatchConfig`, use `BatchConfigBuilder`
to construct a `BatchConfig` instance.

- **Breaking**
[#&#8203;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

-
[#&#8203;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
[#&#8203;1335](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1335)
- Allow specifying OTLP Tonic metadata from env variable
[#&#8203;1377](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1377)

##### Changed

- Update to tonic 0.11 and prost 0.12
[#&#8203;1536](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1536)

##### Fixed

- Fix `tonic()` to the use correct port.
[#&#8203;1556](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1556)

##### Removed

- **Breaking** Remove support for surf HTTP client
[#&#8203;1537](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1537)
- **Breaking** Remove support for grpcio transport
[#&#8203;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>
convex-copybara bot referenced this pull request in get-convex/convex-backend Aug 21, 2024
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [opentelemetry](https://togithub.com/open-telemetry/opentelemetry-rust) | workspace.dependencies | minor | `0.21` -> `0.24` |
| [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)) | workspace.dependencies | minor | `0.14` -> `0.17` |
| [opentelemetry_sdk](https://togithub.com/open-telemetry/opentelemetry-rust) | workspace.dependencies | minor | `0.21` -> `0.24` |

---

### Release Notes

<details>
<summary>open-telemetry/opentelemetry-rust (opentelemetry)</summary>

### [`v0.24.0`](https://togithub.com/open-telemetry/opentelemetry-rust/releases/tag/opentelemetry-0.24.0)

[Compare Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-0.23.0...opentelemetry-0.24.0)

See individual crate changelogs for details.

### [`v0.23.0`](https://togithub.com/open-telemetry/opentelemetry-rust/releases/tag/opentelemetry-0.23.0): 0.23.0

[Compare Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-0.22.0...opentelemetry-0.23.0)

#### Whats changed?

See individual crate changelogs for details.

#### New Contributors

[@&#8203;svix-jplatte](https://togithub.com/svix-jplatte) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1568](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1568)
[@&#8203;rex4539](https://togithub.com/rex4539) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1587](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1587)
[@&#8203;divergentdave](https://togithub.com/divergentdave) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1584](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1584)
[@&#8203;pyohannes](https://togithub.com/pyohannes) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1578](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1578)
[@&#8203;masato-hi](https://togithub.com/masato-hi) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1621](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1621)
[@&#8203;rogercoll](https://togithub.com/rogercoll) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1624](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1624)
[@&#8203;LuisOsta](https://togithub.com/LuisOsta) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1638](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1638)
[@&#8203;svrnm](https://togithub.com/svrnm) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1664](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1664)
[@&#8203;Lev1ty](https://togithub.com/Lev1ty) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1672](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1672)
[@&#8203;ThomsonTan](https://togithub.com/ThomsonTan) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1675](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1675)
[@&#8203;ramgdev](https://togithub.com/ramgdev) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1585](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1585)
[@&#8203;utpilla](https://togithub.com/utpilla) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1701](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1701)
[@&#8203;ChieloNewctle](https://togithub.com/ChieloNewctle) made their first contribution in [https://github.com/open-telemetry/opentelemetry-rust/pull/1746](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1746)

### [`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

-   [https://github.com/open-telemetry/opentelemetry-rust/pull/1410](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1410) Add experimental synchronous gauge. This is behind the feature flag, and can be enabled by enabling the feature otel_unstable for opentelemetry crate.

-   [https://github.com/open-telemetry/opentelemetry-rust/pull/1410](https://togithub.com/open-telemetry/opentelemetry-rust/pull/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. [https://github.com/open-telemetry/opentelemetry-rust/pull/1353](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1353)
-   Add TextMapCompositePropagator [https://github.com/open-telemetry/opentelemetry-rust/pull/1373](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1373)
-   Turned off events for NoopLogger to save on operations [https://github.com/open-telemetry/opentelemetry-rust/pull/1455](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1455)

#### Removed

-   Removed OrderMap type as there was no requirement to use this over regular HashMap. [https://github.com/open-telemetry/opentelemetry-rust/pull/1353](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1353)
-   Remove API for Creating Histograms with signed integers. [https://github.com/open-telemetry/opentelemetry-rust/pull/1371](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1371)
-   Remove global::shutdown_meter_provider, use SdkMeterProvider::shutdown directly instead ([#&#8203;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

-   [#&#8203;1410](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1410) Add experimental synchronous gauge

-   [#&#8203;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`

-   [#&#8203;1503](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1503) Make the documentation for In-Memory exporters visible.

-   [#&#8203;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**
    [#&#8203;1313](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1313)
    [#&#8203;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` [#&#8203;1373](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1373). Use `TextMapCompositePropagator` in opentelemetry API.

-   [#&#8203;1375](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1375/) Fix metric collections during PeriodicReader shutdown

-   **Breaking** [#&#8203;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** [#&#8203;1480](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1480) Remove mutating functions from `BatchConfig`, use `BatchConfigBuilder` to construct a `BatchConfig` instance.

-   **Breaking** [#&#8203;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

-   [#&#8203;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.17.0`](https://togithub.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-otlp/CHANGELOG.md#v0170)

[Compare Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.16.0...opentelemetry-otlp-0.17.0)

-   Add "metrics", "logs" to default features. With this, default feature list is
    "trace", "metrics" and "logs".
-   `OtlpMetricPipeline.build()` no longer invoke the
    `global::set_meter_provider`. User who setup the pipeline must do it
    themselves using `global::set_meter_provider(meter_provider.clone());`.
-   Add `with_resource` on `OtlpLogPipeline`, replacing the `with_config` method.
    Instead of using
    `.with_config(Config::default().with_resource(RESOURCE::default()))` users must
    now use `.with_resource(RESOURCE::default())` to configure Resource when using
    `OtlpLogPipeline`.
-   **Breaking** The methods `OtlpTracePipeline::install_simple()` and `OtlpTracePipeline::install_batch()` would now return `TracerProvider` instead of `Tracer`.
    These methods would also no longer set the global tracer provider. It would now be the responsibility of users to set it by calling `global::set_tracer_provider(tracer_provider.clone());`. Refer to the [basic-otlp](https://togithub.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/examples/basic-otlp/src/main.rs) and [basic-otlp-http](https://togithub.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/examples/basic-otlp-http/src/main.rs) examples on how to initialize OTLP Trace Exporter.
-   **Breaking** Correct the misspelling of "webkpi" to "webpki" in features [#&#8203;1842](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1842)
-   Bump MSRV to 1.70 [#&#8203;1840](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1840)
-   Fixing the OTLP HTTP/JSON exporter. [#&#8203;1882](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1882) - The exporter was broken in the
    previous release.
-   **Breaking** [1869](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1869) The OTLP logs exporter now overrides the [InstrumentationScope::name](https://togithub.com/open-telemetry/opentelemetry-proto/blob/b3060d2104df364136d75a35779e6bd48bac449a/opentelemetry/proto/common/v1/common.proto#L73) field with the `target` from `LogRecord`, if target is populated.
-   Groups batch of `LogRecord` and `Span` by their resource and instrumentation scope before exporting, for better efficiency [#&#8203;1873](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1873).
-   **Breaking** Update to `http` v1 and `tonic` v0.12 [#&#8203;1674](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1674)
-   Update `opentelemetry` dependency version to 0.24
-   Update `opentelemetry_sdk` dependency version to 0.24
-   Update `opentelemetry-http` dependency version to 0.13
-   Update `opentelemetry-proto` dependency version to 0.7

### [`v0.16.0`](https://togithub.com/open-telemetry/opentelemetry-rust/blob/HEAD/opentelemetry-otlp/CHANGELOG.md#v0160)

[Compare Source](https://togithub.com/open-telemetry/opentelemetry-rust/compare/opentelemetry-otlp-0.15.0...opentelemetry-otlp-0.16.0)

##### Fixed

-   URL encoded values in `OTEL_EXPORTER_OTLP_HEADERS` are now correctly decoded. [#&#8203;1578](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1578)
-   OTLP exporter will not change the URL added through `ExportConfig` [#&#8203;1706](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1706)
-   Default grpc endpoint will not have path based on signal(e.g `/v1/traces`) [#&#8203;1706](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1706)
-   Fix feature flags for `OTEL_EXPORTER_OTLP_PROTOCOL_DEFAULT` [#&#8203;1746](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1746)

##### Added

-   Added `DeltaTemporalitySelector` ([#&#8203;1568])
-   Add `webkpi-roots` features to `reqwest` and `tonic` backends

[#&#8203;1568]: https://togithub.com/open-telemetry/opentelemetry-rust/pull/1568

##### Changed

-   **Breaking** Remove global provider for Logs [#&#8203;1691](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1691/)
    -   The method OtlpLogPipeline::install_simple() and OtlpLogPipeline::install_batch() now return `LoggerProvider` instead of
        `Logger`. Refer to the [basic-otlp](https://togithub.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/examples/basic-otlp/src/main.rs) and [basic-otlp-http](https://togithub.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/examples/basic-otlp-http/src/main.rs) examples for how to initialize OTLP Log Exporter to use with OpenTelemetryLogBridge and OpenTelemetryTracingBridge respectively.
-   Update `opentelemetry` dependency version to 0.23
-   Update `opentelemetry_sdk` dependency version to 0.23
-   Update `opentelemetry-http` dependency version to 0.12
-   Update `opentelemetry-proto` dependency version to 0.6

### [`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  [#&#8203;1335](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1335)
-   Allow specifying OTLP Tonic metadata from env variable [#&#8203;1377](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1377)

##### Changed

-   Update to tonic 0.11 and prost 0.12 [#&#8203;1536](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1536)

##### Fixed

-   Fix `tonic()` to the use correct port. [#&#8203;1556](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1556)

##### Removed

-   **Breaking** Remove support for surf HTTP client [#&#8203;1537](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1537)
-   **Breaking** Remove support for grpcio transport [#&#8203;1534](https://togithub.com/open-telemetry/opentelemetry-rust/pull/1534)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "on the first day of the month" in timezone America/Los_Angeles, 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.

---

 - [ ] If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View the [repository job log](https://developer.mend.io/github/get-convex/convex).

GitOrigin-RevId: 81963454ddea644957059f98bcf8ecbcf4b47255
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.

Propagators API
3 participants