Skip to content

Commit 94c2a2a

Browse files
committed
deprecation(opentelemetry-jaeger): Add deprecation notice.
- Add deprecation flags to the various components to give notices in users compilers. - Add more definition around the deprecation in the README. - Add a deprecation badge for crates.io. - Update changelog to show deprecation notice. Relates #995
1 parent 1be83bb commit 94c2a2a

File tree

7 files changed

+104
-11
lines changed

7 files changed

+104
-11
lines changed

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

+21-6
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].
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]: [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+
[Jaeger Deprecation Issue]: https://github.com/open-telemetry/opentelemetry-rust/pull/995
3146
[`OpenTelemetry`]: https://crates.io/crates/opentelemetry
3247
[msrv]: #supported-rust-versions
3348

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;

opentelemetry-jaeger/src/exporter/mod.rs

+18
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,15 @@ const INSTRUMENTATION_LIBRARY_NAME: &str = "otel.library.name";
4646
const INSTRUMENTATION_LIBRARY_VERSION: &str = "otel.library.version";
4747

4848
/// Jaeger span exporter
49+
///
50+
/// Deprecation Notice:
51+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
52+
///
53+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
54+
#[deprecated(
55+
since = "0.21.0",
56+
note = "Please Migrate to opentelemetry-otlp exporter."
57+
)]
4958
#[derive(Debug)]
5059
pub struct Exporter {
5160
/// Whether or not to export instrumentation information.
@@ -69,6 +78,15 @@ impl Exporter {
6978
}
7079

7180
/// Jaeger process configuration
81+
///
82+
/// Deprecation Notice:
83+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
84+
///
85+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
86+
#[deprecated(
87+
since = "0.21.0",
88+
note = "Please Migrate to opentelemetry-otlp exporter."
89+
)]
7290
#[derive(Debug, Default)]
7391
pub struct Process {
7492
/// Jaeger service name

opentelemetry-jaeger/src/exporter/runtime.rs

+8
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,16 @@ use std::net::ToSocketAddrs;
1010

1111
/// Jaeger Trace Runtime is an extension to [`RuntimeChannel`].
1212
///
13+
/// Deprecation Notice:
14+
/// Ingestion of OTLP is now supported in Jaeger please check [crates.io] for more details.
15+
///
1316
/// [`RuntimeChannel`]: opentelemetry_sdk::runtime::RuntimeChannel
17+
/// [crates.io]: https://crates.io/crates/opentelemetry-jaeger
1418
#[async_trait]
19+
#[deprecated(
20+
since = "0.21.0",
21+
note = "Please Migrate to opentelemetry-otlp exporter."
22+
)]
1523
pub trait JaegerTraceRuntime: RuntimeChannel + std::fmt::Debug {
1624
/// A communication socket between Jaeger client and agent.
1725
type Socket: std::fmt::Debug + Send + Sync;

0 commit comments

Comments
 (0)