Skip to content

Commit da817b5

Browse files
authored
Merge branch 'main' into two-level-hash
2 parents fd94caa + 188a26c commit da817b5

File tree

27 files changed

+255
-48
lines changed

27 files changed

+255
-48
lines changed

.github/workflows/ci.yml

+14-13
Original file line numberDiff line numberDiff line change
@@ -21,29 +21,29 @@ jobs:
2121
sudo rm -rf /usr/local/lib/android
2222
sudo rm -rf /usr/share/dotnet
2323
df -h
24-
- uses: actions/checkout@v1
24+
- uses: actions/checkout@v4
2525
with:
2626
submodules: true
2727
- uses: actions-rs/toolchain@v1
2828
with:
2929
toolchain: ${{ matrix.rust }}
3030
components: rustfmt
3131
profile: minimal
32-
- uses: arduino/setup-protoc@v1
32+
- uses: arduino/setup-protoc@v3
3333
- name: Test
3434
run: ./scripts/test.sh
3535
lint:
3636
runs-on: ubuntu-latest
3737
steps:
38-
- uses: actions/checkout@v1
38+
- uses: actions/checkout@v4
3939
with:
4040
submodules: true
4141
- uses: actions-rs/toolchain@v1
4242
with:
4343
toolchain: stable
4444
components: rustfmt
4545
profile: minimal
46-
- uses: arduino/setup-protoc@v1
46+
- uses: arduino/setup-protoc@v3
4747
- uses: actions-rs/cargo@v1
4848
with:
4949
command: fmt
@@ -56,7 +56,7 @@ jobs:
5656
example: [opentelemetry, opentelemetry-sdk]
5757
runs-on: ubuntu-latest
5858
steps:
59-
- uses: actions/checkout@v2
59+
- uses: actions/checkout@v4
6060
- uses: actions-rs/toolchain@v1
6161
with:
6262
toolchain: nightly-2024-02-07
@@ -73,23 +73,23 @@ jobs:
7373
example: [opentelemetry-otlp/examples/basic-otlp]
7474
runs-on: ubuntu-latest
7575
steps:
76-
- uses: actions/checkout@v1
76+
- uses: actions/checkout@v4
7777
with:
7878
submodules: true
7979
- uses: actions-rs/toolchain@v1
8080
with:
8181
toolchain: stable
8282
components: rustfmt
8383
profile: minimal
84-
- uses: arduino/setup-protoc@v1
84+
- uses: arduino/setup-protoc@v3
8585
- name: Build
8686
run: |
8787
cd ${{ matrix.example }}
8888
cargo build --verbose
8989
msrv:
9090
runs-on: ubuntu-latest
9191
steps:
92-
- uses: actions/checkout@v1
92+
- uses: actions/checkout@v4
9393
with:
9494
submodules: true
9595
- uses: actions-rs/toolchain@v1
@@ -108,21 +108,21 @@ jobs:
108108
runs-on: ubuntu-latest
109109
continue-on-error: true # Prevent sudden announcement of a new advisory from failing ci
110110
steps:
111-
- uses: actions/checkout@v2
111+
- uses: actions/checkout@v4
112112
- uses: EmbarkStudios/cargo-deny-action@v1
113113
with:
114114
command: check advisories
115115
docs:
116116
continue-on-error: true
117117
runs-on: ubuntu-latest
118118
steps:
119-
- uses: actions/checkout@v2
119+
- uses: actions/checkout@v4
120120
- uses: actions-rs/toolchain@v1
121121
with:
122122
toolchain: nightly
123123
components: rustfmt
124124
override: true
125-
- uses: arduino/setup-protoc@v1
125+
- uses: arduino/setup-protoc@v3
126126
- name: doc
127127
run: cargo doc --no-deps --all-features
128128
env:
@@ -131,16 +131,17 @@ jobs:
131131
coverage:
132132
continue-on-error: true
133133
runs-on: ubuntu-latest
134+
if: ${{ ! contains(github.event.pull_request.labels.*.name, 'dependencies') }}
134135
steps:
135-
- uses: actions/checkout@v3
136+
- uses: actions/checkout@v4
136137
with:
137138
submodules: true
138139
- uses: actions-rs/toolchain@v1
139140
with:
140141
toolchain: stable
141142
components: rustfmt,llvm-tools-preview
142143
override: true
143-
- uses: arduino/setup-protoc@v1
144+
- uses: arduino/setup-protoc@v3
144145
- name: cargo install cargo-llvm-cov
145146
uses: taiki-e/install-action@cargo-llvm-cov
146147
- name: cargo generate-lockfile

.github/workflows/integration_tests.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ jobs:
1717
sudo rm -rf /usr/local/lib/android
1818
sudo rm -rf /usr/share/dotnet
1919
df -h
20-
- uses: actions/checkout@v1
20+
- uses: actions/checkout@v4
2121
with:
2222
submodules: true
2323
- uses: actions-rs/toolchain@v1
2424
with:
2525
toolchain: stable
2626
components: rustfmt
2727
profile: minimal
28-
- uses: arduino/setup-protoc@v1
28+
- uses: arduino/setup-protoc@v3
2929
- name: Run integration tests using docker compose
3030
run: ./scripts/integration_tests.sh
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Markdown link check
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches:
7+
- main
8+
paths:
9+
- '**/*.md'
10+
11+
jobs:
12+
markdown-link-check:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
17+
- name: Install markdown-link-check
18+
run: npm install -g markdown-link-check
19+
20+
- name: Run markdown-link-check
21+
run: |
22+
find . -type f \
23+
-name '*.md' \
24+
-not -path '**/CHANGELOG.md' \
25+
| xargs ./scripts/markdown-link-check-with-retry.sh

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ prost = "0.12"
5353
prost-build = "0.12"
5454
prost-types = "0.12"
5555
rand = "0.8"
56-
reqwest = "0.11"
56+
reqwest = { version = "0.11", default-features = false }
5757
serde = "1.0"
5858
serde_json = "1.0"
5959
temp-env = "0.3.6"

opentelemetry-jaeger/CHANGELOG.md

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,23 @@
11
# Changelog
22

3+
## Deprecation Notice
4+
5+
Starting with [Jaeger v1.38](https://github.com/jaegertracing/jaeger/releases/tag/v1.38.0) Jaeger supports the OpenTelemetry Protocol (OTLP).
6+
[OpenTelemetry has recommended](https://opentelemetry.io/blog/2022/jaeger-native-otlp/) migrating to OTLP.
7+
8+
Please check the [README](https://crates.io/crates/opentelemetry-jaeger) for more information.
9+
310
## vNext
411

512
### Changed
613

7-
- **Breaking** Remove support for surf HTTP client [#1537](https://github.com/open-telemetry/opentelemetry-rust/pull/1537)
814
- Update to tonic 0.11 and prost 0.12 (#1536)
915

10-
## v0.21.0
16+
### Removed
1117

12-
### Changed
13-
- Previously, the opentelemetry-jaeger crate exposed both a Jaeger exporter and a Jaeger propagator. Going forwards, the Jaeger propagator functionality has been moved to a new crate [opentelemetry-jaeger-propagator](../opentelemetry-jaeger-propagator/) to prepare for opentelemetry-jaeger exporter deprecation. Starting with [Jaeger v1.35](https://github.com/jaegertracing/jaeger/releases/tag/v1.35.0), Jaeger supports the OpenTelemetry Protocol (OTLP). [OpenTelemetry has recommended](https://opentelemetry.io/blog/2022/jaeger-native-otlp/) that Jaeger exporters be deprecated from OpenTelemetry SDKs in favor of sending traces to Jaeger clients using OTLP. An example and further discussion of how to consume OpenTelemetry spans with Jaeger can be found at [Introducing native support for OpenTelemetry in Jaeger](https://medium.com/jaegertracing/introducing-native-support-for-opentelemetry-in-jaeger-eb661be8183c).
18+
- **Breaking** Jaeger propagator functionality has been moved to a new crate [opentelemetry-jaeger-propagator](../opentelemetry-jaeger-propagator/)
19+
to prepare for opentelemetry-jaeger exporter deprecation. [#1487](https://github.com/open-telemetry/opentelemetry-rust/pull/1487)
20+
- **Breaking** Remove support for surf HTTP client [#1537](https://github.com/open-telemetry/opentelemetry-rust/pull/1537)
1421

1522
## v0.20.0
1623

opentelemetry-jaeger/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ license = "Apache-2.0"
1515
edition = "2021"
1616
rust-version = "1.65"
1717

18+
[badges]
19+
maintenance = { status = "deprecated" }
20+
1821
[package.metadata.docs.rs]
1922
all-features = true
2023
rustdoc-args = ["--cfg", "docsrs"]

opentelemetry-jaeger/README.md

+26-10
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,22 @@
22

33
[splash]: https://raw.githubusercontent.com/open-telemetry/opentelemetry-rust/main/assets/logo-text.png
44

5-
# OpenTelemetry Jaeger
5+
# OpenTelemetry Jaeger (Deprecated)
6+
7+
**WARNING**
8+
As of [Jaeger 1.35.0], released in Sept 2022, ingesting the OpenTelemetry Protocol (OTLP) is stable and
9+
as a result, language specific Jaeger exporters within OpenTelemetry SDKs are [recommended for deprecation by the OpenTelemetry project][jaeger-deprecation].
10+
More information and examples of using OTLP with Jaeger can be found in [Introducing native support for OpenTelemetry in Jaeger][jaeger-otlp]
11+
and [Exporting OTLP traces to Jaeger][exporting-otlp].
12+
13+
The opentelemetry-jaeger crate previously contained both a Jaeger exporter and a Jaeger propagator.
14+
To prepare for the deprecation of the Jaeger exporter, the Jaeger propagator implementation has been migrated to
15+
[opentelemetry-jaeger-propagator](../opentelemetry-jaeger-propagator/).
16+
17+
The plan is to have 0.22.0 be the last release of the Jaeger exporter. This means that future versions of the OpenTelemetry
18+
SDK will not work with the exporter.
19+
20+
If you have any questions please comment on the [Jaeger Deprecation Issue][deprecation-issue].
621

722
[`Jaeger`] integration for applications instrumented with [`OpenTelemetry`]. This includes a jaeger exporter and a jaeger propagator.
823

@@ -12,11 +27,6 @@
1227
[![GitHub Actions CI](https://github.com/open-telemetry/opentelemetry-rust/workflows/CI/badge.svg)](https://github.com/open-telemetry/opentelemetry-rust/actions?query=workflow%3ACI+branch%3Amain)
1328
[![Slack](https://img.shields.io/badge/slack-@cncf/otel/rust-brightgreen.svg?logo=slack)](https://cloud-native.slack.com/archives/C03GDP0H023)
1429

15-
**WARNING**
16-
[Jaeger](https://www.jaegertracing.io/) supports the OpenTelemetry Protocol (OTLP) as of [v1.35.0](https://github.com/jaegertracing/jaeger/releases/tag/v1.35.0) and as a result, language specific Jaeger exporters within OpenTelemetry SDKs are [recommended for deprecation by the OpenTelemetry project](https://opentelemetry.io/blog/2022/jaeger-native-otlp/). More information and examples of using OTLP with Jaeger can be found in [Introducing native support for OpenTelemetry in Jaeger](https://medium.com/jaegertracing/introducing-native-support-for-opentelemetry-in-jaeger-eb661be8183c) and [Exporting OTLP traces to Jaeger](https://github.com/open-telemetry/opentelemetry-rust/tree/main/examples/tracing-jaeger).
17-
18-
The opentelemetry-jaeger crate previously contained both a Jaeger exporter and a Jaeger propagator. To prepare for the deprecation of the Jaeger exporter, the Jaeger propagator implementation has been migrated to [opentelemetry-jaeger-propagator](../opentelemetry-jaeger-propagator/).
19-
2030
## Overview
2131

2232
[`OpenTelemetry`] is a collection of tools, APIs, and SDKs used to instrument,
@@ -28,6 +38,11 @@ Jaeger `agent` or `collector` endpoint for processing and visualization.
2838
*Compiler support: [requires `rustc` 1.64+][msrv]*
2939

3040
[`Jaeger`]: https://www.jaegertracing.io/
41+
[jaeger-otlp]: https://medium.com/jaegertracing/introducing-native-support-for-opentelemetry-in-jaeger-eb661be8183c
42+
[jaeger-deprecation]: https://opentelemetry.io/blog/2022/jaeger-native-otlp/
43+
[exporting-otlp]: https://github.com/open-telemetry/opentelemetry-rust/tree/main/examples/tracing-jaeger
44+
[Jaeger 1.35.0]: https://github.com/jaegertracing/jaeger/releases/tag/v1.35.0
45+
[deprecation-issue]: https://github.com/open-telemetry/opentelemetry-rust/pull/995
3146
[`OpenTelemetry`]: https://crates.io/crates/opentelemetry
3247
[msrv]: #supported-rust-versions
3348

@@ -108,7 +123,7 @@ opentelemetry-jaeger = { version = "..", features = ["isahc_collector_client"] }
108123

109124
Then you can use the [`with_collector_endpoint`] method to specify the endpoint:
110125

111-
[`with_collector_endpoint`]: https://docs.rs/opentelemetry-jaeger/latest/opentelemetry_jaeger/struct.PipelineBuilder.html#method.with_collector_endpoint
126+
[`with_collector_endpoint`]: https://docs.rs/opentelemetry-jaeger/latest/opentelemetry_jaeger/config/collector/struct.CollectorPipeline.html#method.with_endpoint
112127

113128
```rust
114129
// Note that this requires one of the following features enabled so that there is a default http client implementation
@@ -143,10 +158,11 @@ fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
143158

144159
## Kitchen Sink Full Configuration
145160

146-
[Example]((https://docs.rs/opentelemetry-jaeger/latest/opentelemetry_jaeger/#kitchen-sink-full-configuration)) showing how to override all configuration options. See the
147-
[`PipelineBuilder`] docs for details of each option.
161+
[`Example`] showing how to override all configuration options. See the
162+
[`AgentPipeline`] docs for details of each option.
148163

149-
[`PipelineBuilder`]: https://docs.rs/opentelemetry-jaeger/latest/opentelemetry_jaeger/struct.PipelineBuilder.html
164+
[`Example`]: https://docs.rs/opentelemetry-jaeger/latest/opentelemetry_jaeger/#kitchen-sink-full-configuration
165+
[`AgentPipeline`]: https://docs.rs/opentelemetry-jaeger/latest/opentelemetry_jaeger/config/agent/struct.AgentPipeline.html
150166

151167
## Supported Rust Versions
152168

opentelemetry-jaeger/examples/actix-udp/src/main.rs

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
#![allow(deprecated)]
12
use actix_service::Service;
23
use actix_web::middleware::Logger;
34
use actix_web::{web, App, HttpServer};

opentelemetry-jaeger/src/exporter/config/agent.rs

+16
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ const DEFAULT_AGENT_ENDPOINT_HOST: &str = "127.0.0.1";
3535
/// Default agent port if none is provided
3636
const DEFAULT_AGENT_ENDPOINT_PORT: &str = "6831";
3737

38+
/// Deprecation Notice:
39+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
40+
///
3841
/// AgentPipeline config and build a exporter targeting a jaeger agent using UDP as transport layer protocol.
3942
///
4043
/// ## UDP packet max length
@@ -68,6 +71,7 @@ const DEFAULT_AGENT_ENDPOINT_PORT: &str = "6831";
6871
/// [`with_max_packet_size`]: AgentPipeline::with_max_packet_size
6972
/// [UDP packet size]: https://stackoverflow.com/questions/1098897/what-is-the-largest-safe-udp-packet-size-on-the-internet
7073
/// [why 65000]: https://serverfault.com/questions/246508/how-is-the-mtu-is-65535-in-udp-but-ethernet-does-not-allow-frame-size-more-than
74+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
7175
///
7276
/// ## Environment variables
7377
/// The following environment variables are available to configure the agent exporter.
@@ -77,6 +81,10 @@ const DEFAULT_AGENT_ENDPOINT_PORT: &str = "6831";
7781
/// - `OTEL_EXPORTER_JAEGER_AGENT_PORT`, set the port of the agent. If the `OTEL_EXPORTER_JAEGER_AGENT_HOST`
7882
/// is not set, the exporter will use 127.0.0.1 as the host.
7983
#[derive(Debug)]
84+
#[deprecated(
85+
since = "0.21.0",
86+
note = "Please migrate to opentelemetry-otlp exporter."
87+
)]
8088
pub struct AgentPipeline {
8189
transformation_config: TransformationConfig,
8290
trace_config: Option<Config>,
@@ -123,7 +131,15 @@ impl HasRequiredConfig for AgentPipeline {
123131
///
124132
/// See details for each configurations at [`AgentPipeline`]
125133
///
134+
/// Deprecation Notice:
135+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
136+
///
126137
/// [`AgentPipeline`]: crate::config::agent::AgentPipeline
138+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
139+
#[deprecated(
140+
since = "0.21.0",
141+
note = "Please migrate to opentelemetry-otlp exporter."
142+
)]
127143
pub fn new_agent_pipeline() -> AgentPipeline {
128144
AgentPipeline::default()
129145
}

opentelemetry-jaeger/src/exporter/config/collector/mod.rs

+27-1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ const ENV_PASSWORD: &str = "OTEL_EXPORTER_JAEGER_PASSWORD";
5050

5151
/// CollectorPipeline config and build a exporter targeting a jaeger collector using HTTP protocol.
5252
///
53+
/// Deprecation Notice:
54+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
55+
///
5356
/// ## Environment variables
5457
///
5558
/// - `OTEL_EXPORTER_JAEGER_ENDPOINT`: set the endpoint of the collector. Usually starts with `http://` or `https://`
@@ -87,7 +90,12 @@ const ENV_PASSWORD: &str = "OTEL_EXPORTER_JAEGER_PASSWORD";
8790
///
8891
/// [reqwest]: reqwest::Client
8992
/// [reqwest blocking client]: reqwest::blocking::Client
93+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
9094
#[derive(Debug)]
95+
#[deprecated(
96+
since = "0.21.0",
97+
note = "Please migrate to opentelemetry-otlp exporter."
98+
)]
9199
pub struct CollectorPipeline {
92100
transformation_config: TransformationConfig,
93101
trace_config: Option<Config>,
@@ -165,15 +173,33 @@ impl Default for ClientConfig {
165173
///
166174
/// See details for each configurations at [`CollectorPipeline`].
167175
///
176+
/// Deprecation Notice:
177+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
178+
///
168179
/// [`CollectorPipeline`]: crate::config::collector::CollectorPipeline
180+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
169181
#[cfg(feature = "collector_client")]
182+
#[deprecated(
183+
since = "0.21.0",
184+
note = "Please migrate to opentelemetry-otlp exporter."
185+
)]
170186
pub fn new_collector_pipeline() -> CollectorPipeline {
171187
CollectorPipeline::default()
172188
}
173189

174190
/// Similar to [`new_collector_pipeline`] but the exporter is configured to run with wasm.
191+
///
192+
/// Deprecation Notice:
193+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
194+
///
195+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
175196
#[cfg(feature = "wasm_collector_client")]
176-
#[allow(clippy::field_reassign_with_default)] // make sure when collector_cilent and wasm_collector_client are both set. We will create a wasm type client
197+
#[allow(clippy::field_reassign_with_default)]
198+
// make sure when collector_cilent and wasm_collector_client are both set. We will create a wasm type client
199+
#[deprecated(
200+
since = "0.21.0",
201+
note = "Please migrate to opentelemetry-otlp exporter."
202+
)]
177203
pub fn new_wasm_collector_pipeline() -> CollectorPipeline {
178204
let mut pipeline = CollectorPipeline::default();
179205
pipeline.client_config = ClientConfig::Wasm;

0 commit comments

Comments
 (0)