Skip to content

Commit 5e3354e

Browse files
authored
Upgrade to opentelemetry 0.22 (#100)
## Motivation Would like to upgrade to opentelemetry 0.22. ## Solution This seems mostly straightforward. Upstream deprecated `opentelemetry_jaeger::new_pipeline()` (which is used in an example) in favor of the OTLP collector for Jaeger; given that we already have an OTLP example should we just delete it?
1 parent 6cdd4d7 commit 5e3354e

9 files changed

+37
-80
lines changed

CHANGELOG.md

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
# 0.23.0 (February 26, 2024)
2+
3+
### Breaking Changes
4+
5+
- Upgrade to opentelemetry 0.22. Refer to the upstream
6+
[changelog](https://github.com/open-telemetry/opentelemetry-rust/releases/tag/v0.22.0)
7+
for more information. In particular, i64 histograms will silently downgrade to
8+
key/value exports.
9+
110
# 0.22.0 (November 7, 2023)
211

312
### Breaking Changes

Cargo.toml

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "tracing-opentelemetry"
3-
version = "0.22.0"
3+
version = "0.23.0"
44
authors = [
55
"Julian Tescher <julian@tescher.me>",
66
"Tokio Contributors <team@tokio.rs>"
@@ -25,8 +25,8 @@ default = ["tracing-log", "metrics"]
2525
metrics = ["opentelemetry/metrics","opentelemetry_sdk/metrics", "smallvec"]
2626

2727
[dependencies]
28-
opentelemetry = { version = "0.21.0", default-features = false, features = ["trace"] }
29-
opentelemetry_sdk = { version = "0.21.0", default-features = false, features = ["trace"] }
28+
opentelemetry = { version = "0.22.0", default-features = false, features = ["trace"] }
29+
opentelemetry_sdk = { version = "0.22.0", default-features = false, features = ["trace"] }
3030
tracing = { version = "0.1.35", default-features = false, features = ["std"] }
3131
tracing-core = "0.1.28"
3232
tracing-subscriber = { version = "0.3.0", default-features = false, features = ["registry", "std"] }
@@ -35,19 +35,20 @@ once_cell = "1.13.0"
3535

3636
# Fix minimal-versions
3737
async-trait = { version = "0.1.56", optional = true }
38+
futures-util = { version = "0.3.17", optional = true }
3839
thiserror = { version = "1.0.31", optional = true }
3940
smallvec = { version = "1.0", optional = true }
4041

4142
[dev-dependencies]
4243
async-trait = "0.1.56"
4344
criterion = { version = "0.5.1", default-features = false, features = ["html_reports"] }
44-
opentelemetry = { version = "0.21.0", features = ["trace", "metrics"] }
45-
opentelemetry_sdk = { version = "0.21.0", default-features = false, features = ["trace", "rt-tokio"] }
46-
opentelemetry-jaeger = "0.20.0"
47-
opentelemetry-stdout = { version = "0.2.0", features = ["trace", "metrics"] }
48-
opentelemetry-otlp = { version = "0.14.0", features = ["metrics"] }
49-
opentelemetry-semantic-conventions = "0.13.0"
50-
futures-util = { version = "0.3", default-features = false }
45+
opentelemetry = { version = "0.22.0", features = ["trace", "metrics"] }
46+
opentelemetry_sdk = { version = "0.22.0", default-features = false, features = ["trace", "rt-tokio"] }
47+
opentelemetry-jaeger = "0.21.0"
48+
opentelemetry-stdout = { version = "0.3.0", features = ["trace", "metrics"] }
49+
opentelemetry-otlp = { version = "0.15.0", features = ["metrics"] }
50+
opentelemetry-semantic-conventions = "0.14.0"
51+
futures-util = { version = "0.3.17", default-features = false }
5152
tokio = { version = "1", features = ["full"] }
5253
tokio-stream = "0.1"
5354
tracing = { version = "0.1.35", default-features = false, features = ["std", "attributes"] }

examples/opentelemetry-otlp.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use opentelemetry::{global, Key, KeyValue};
22
use opentelemetry_sdk::{
33
metrics::{
44
reader::{DefaultAggregationSelector, DefaultTemporalitySelector},
5-
Aggregation, Instrument, MeterProvider, PeriodicReader, Stream,
5+
Aggregation, Instrument, MeterProviderBuilder, PeriodicReader, SdkMeterProvider, Stream,
66
},
77
runtime,
88
trace::{BatchConfig, RandomIdGenerator, Sampler, Tracer},
@@ -29,7 +29,7 @@ fn resource() -> Resource {
2929
}
3030

3131
// Construct MeterProvider for MetricsLayer
32-
fn init_meter_provider() -> MeterProvider {
32+
fn init_meter_provider() -> SdkMeterProvider {
3333
let exporter = opentelemetry_otlp::new_exporter()
3434
.tonic()
3535
.build_metrics_exporter(
@@ -78,7 +78,7 @@ fn init_meter_provider() -> MeterProvider {
7878
}
7979
};
8080

81-
let meter_provider = MeterProvider::builder()
81+
let meter_provider = MeterProviderBuilder::default()
8282
.with_resource(resource())
8383
.with_reader(reader)
8484
.with_reader(stdout_reader)
@@ -128,7 +128,7 @@ fn init_tracing_subscriber() -> OtelGuard {
128128
}
129129

130130
struct OtelGuard {
131-
meter_provider: MeterProvider,
131+
meter_provider: SdkMeterProvider,
132132
}
133133

134134
impl Drop for OtelGuard {

examples/opentelemetry.rs

-48
This file was deleted.

src/layer.rs

+1-7
Original file line numberDiff line numberDiff line change
@@ -1212,18 +1212,12 @@ fn thread_id_integer(id: thread::ThreadId) -> u64 {
12121212
#[cfg(test)]
12131213
mod tests {
12141214
use super::*;
1215-
use crate::OtelData;
1216-
use opentelemetry::{
1217-
trace::{noop, TraceFlags},
1218-
StringValue,
1219-
};
1215+
use opentelemetry::trace::TraceFlags;
12201216
use std::{
1221-
borrow::Cow,
12221217
collections::HashMap,
12231218
error::Error,
12241219
fmt::Display,
12251220
sync::{Arc, Mutex},
1226-
thread,
12271221
time::SystemTime,
12281222
};
12291223
use tracing_subscriber::prelude::*;

src/metrics.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -218,12 +218,12 @@ impl<'a> Visit for MetricVisitor<'a> {
218218
/// use tracing_opentelemetry::MetricsLayer;
219219
/// use tracing_subscriber::layer::SubscriberExt;
220220
/// use tracing_subscriber::Registry;
221-
/// # use opentelemetry_sdk::metrics::MeterProvider;
221+
/// # use opentelemetry_sdk::metrics::SdkMeterProvider;
222222
///
223223
/// // Constructing a MeterProvider is out-of-scope for the docs here, but there
224224
/// // are examples in the opentelemetry repository. See:
225225
/// // https://github.com/open-telemetry/opentelemetry-rust/blob/dfeac078ff7853e7dc814778524b93470dfa5c9c/examples/metrics-basic/src/main.rs#L7
226-
/// # let meter_provider: MeterProvider = unimplemented!();
226+
/// # let meter_provider: SdkMeterProvider = unimplemented!();
227227
///
228228
/// let opentelemetry_metrics = MetricsLayer::new(meter_provider);
229229
/// let subscriber = Registry::default().with(opentelemetry_metrics);
@@ -305,7 +305,7 @@ impl<'a> Visit for MetricVisitor<'a> {
305305
/// # use tracing::info;
306306
/// // adds attributes bar="baz" and qux=2 to the `foo` counter.
307307
/// info!(monotonic_counter.foo = 1, bar = "baz", qux = 2);
308-
/// ```
308+
/// ```
309309
///
310310
/// # Implementation Details
311311
///

src/tracer.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ fn process_sampling_result(
158158
mod tests {
159159
use super::*;
160160
use crate::OtelData;
161-
use opentelemetry::trace::{SpanBuilder, SpanId, TracerProvider as _};
161+
use opentelemetry::trace::TracerProvider as _;
162162
use opentelemetry_sdk::trace::{config, Sampler, TracerProvider};
163163

164164
#[test]

tests/metrics_publishing.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
11
use opentelemetry::{metrics::MetricsError, KeyValue};
22
use opentelemetry_sdk::{
33
metrics::{
4-
data,
5-
data::{Histogram, Sum},
4+
data::{self, Histogram, Sum},
65
reader::{
76
AggregationSelector, DefaultAggregationSelector, DefaultTemporalitySelector,
87
MetricReader, TemporalitySelector,
98
},
10-
InstrumentKind, ManualReader, MeterProvider,
9+
InstrumentKind, ManualReader, MeterProviderBuilder, SdkMeterProvider,
1110
},
1211
AttributeSet, Resource,
1312
};
@@ -416,7 +415,9 @@ fn init_subscriber<T>(
416415
inner: Arc::new(reader),
417416
};
418417

419-
let provider = MeterProvider::builder().with_reader(reader.clone()).build();
418+
let provider = MeterProviderBuilder::default()
419+
.with_reader(reader.clone())
420+
.build();
420421
let exporter = TestExporter {
421422
expected_metric_name,
422423
expected_instrument_kind,
@@ -473,7 +474,7 @@ struct TestExporter<T> {
473474
expected_value: T,
474475
expected_attributes: Option<AttributeSet>,
475476
reader: TestReader,
476-
_meter_provider: MeterProvider,
477+
_meter_provider: SdkMeterProvider,
477478
}
478479

479480
impl<T> TestExporter<T>

tests/trace_state_propagation.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
use futures_util::future::BoxFuture;
22
use opentelemetry::{
3-
propagation::TextMapPropagator,
3+
propagation::{TextMapCompositePropagator, TextMapPropagator},
44
trace::{SpanContext, TraceContextExt, Tracer as _, TracerProvider as _},
55
Context,
66
};
77
use opentelemetry_sdk::{
88
export::trace::{ExportResult, SpanData, SpanExporter},
9-
propagation::{BaggagePropagator, TextMapCompositePropagator, TraceContextPropagator},
9+
propagation::{BaggagePropagator, TraceContextPropagator},
1010
trace::{Tracer, TracerProvider},
1111
};
1212
use std::collections::{HashMap, HashSet};

0 commit comments

Comments
 (0)