Skip to content

Commit e2785a3

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. Relates #995
1 parent 1be83bb commit e2785a3

File tree

6 files changed

+93
-7
lines changed

6 files changed

+93
-7
lines changed

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)