Skip to content

Commit c2437bc

Browse files
committed
Upgrade to opentelemetry 0.22
1 parent f10aecd commit c2437bc

6 files changed

+38
-86
lines changed

Cargo.toml

+8-8
Original file line numberDiff line numberDiff line change
@@ -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"] }
@@ -41,12 +41,12 @@ smallvec = { version = "1.0", optional = true }
4141
[dev-dependencies]
4242
async-trait = "0.1.56"
4343
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"
44+
opentelemetry = { version = "0.22.0", features = ["trace", "metrics"] }
45+
opentelemetry_sdk = { version = "0.22.0", default-features = false, features = ["trace", "rt-tokio"] }
46+
opentelemetry-jaeger = "0.21.0"
47+
opentelemetry-stdout = { version = "0.3.0", features = ["trace", "metrics"] }
48+
opentelemetry-otlp = { version = "0.15.0", features = ["metrics"] }
49+
opentelemetry-semantic-conventions = "0.14.0"
5050
futures-util = { version = "0.3", default-features = false }
5151
tokio = { version = "1", features = ["full"] }
5252
tokio-stream = "0.1"

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 {

src/metrics.rs

+3-16
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ pub(crate) struct Instruments {
3030
i64_up_down_counter: MetricsMap<UpDownCounter<i64>>,
3131
f64_up_down_counter: MetricsMap<UpDownCounter<f64>>,
3232
u64_histogram: MetricsMap<Histogram<u64>>,
33-
i64_histogram: MetricsMap<Histogram<i64>>,
3433
f64_histogram: MetricsMap<Histogram<f64>>,
3534
}
3635

@@ -43,7 +42,6 @@ pub(crate) enum InstrumentType {
4342
UpDownCounterI64(i64),
4443
UpDownCounterF64(f64),
4544
HistogramU64(u64),
46-
HistogramI64(i64),
4745
HistogramF64(f64),
4846
}
4947

@@ -119,14 +117,6 @@ impl Instruments {
119117
|rec| rec.record(value, attributes),
120118
);
121119
}
122-
InstrumentType::HistogramI64(value) => {
123-
update_or_insert(
124-
&self.i64_histogram,
125-
metric_name,
126-
|| meter.i64_histogram(metric_name).init(),
127-
|rec| rec.record(value, attributes),
128-
);
129-
}
130120
InstrumentType::HistogramF64(value) => {
131121
update_or_insert(
132122
&self.f64_histogram,
@@ -198,9 +188,6 @@ impl<'a> Visit for MetricVisitor<'a> {
198188
} else if let Some(metric_name) = field.name().strip_prefix(METRIC_PREFIX_COUNTER) {
199189
self.visited_metrics
200190
.push((metric_name, InstrumentType::UpDownCounterI64(value)));
201-
} else if let Some(metric_name) = field.name().strip_prefix(METRIC_PREFIX_HISTOGRAM) {
202-
self.visited_metrics
203-
.push((metric_name, InstrumentType::HistogramI64(value)));
204191
} else {
205192
self.attributes.push(KeyValue::new(field.name(), value));
206193
}
@@ -231,12 +218,12 @@ impl<'a> Visit for MetricVisitor<'a> {
231218
/// use tracing_opentelemetry::MetricsLayer;
232219
/// use tracing_subscriber::layer::SubscriberExt;
233220
/// use tracing_subscriber::Registry;
234-
/// # use opentelemetry_sdk::metrics::MeterProvider;
221+
/// # use opentelemetry_sdk::metrics::SdkMeterProvider;
235222
///
236223
/// // Constructing a MeterProvider is out-of-scope for the docs here, but there
237224
/// // are examples in the opentelemetry repository. See:
238225
/// // https://github.com/open-telemetry/opentelemetry-rust/blob/dfeac078ff7853e7dc814778524b93470dfa5c9c/examples/metrics-basic/src/main.rs#L7
239-
/// # let meter_provider: MeterProvider = unimplemented!();
226+
/// # let meter_provider: SdkMeterProvider = unimplemented!();
240227
///
241228
/// let opentelemetry_metrics = MetricsLayer::new(meter_provider);
242229
/// let subscriber = Registry::default().with(opentelemetry_metrics);
@@ -318,7 +305,7 @@ impl<'a> Visit for MetricVisitor<'a> {
318305
/// # use tracing::info;
319306
/// // adds attributes bar="baz" and qux=2 to the `foo` counter.
320307
/// info!(monotonic_counter.foo = 1, bar = "baz", qux = 2);
321-
/// ```
308+
/// ```
322309
///
323310
/// # Implementation Details
324311
///

tests/metrics_publishing.rs

+6-53
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
};
@@ -132,22 +131,6 @@ async fn u64_histogram_is_exported() {
132131
exporter.export().unwrap();
133132
}
134133

135-
#[tokio::test]
136-
async fn i64_histogram_is_exported() {
137-
let (subscriber, exporter) = init_subscriber(
138-
"abcdefg_auenatsou".to_string(),
139-
InstrumentKind::Histogram,
140-
-19_i64,
141-
None,
142-
);
143-
144-
tracing::subscriber::with_default(subscriber, || {
145-
tracing::info!(histogram.abcdefg_auenatsou = -19_i64);
146-
});
147-
148-
exporter.export().unwrap();
149-
}
150-
151134
#[tokio::test]
152135
async fn f64_histogram_is_exported() {
153136
let (subscriber, exporter) = init_subscriber(
@@ -324,38 +307,6 @@ async fn u64_histogram_with_attributes_is_exported() {
324307
exporter.export().unwrap();
325308
}
326309

327-
#[tokio::test]
328-
async fn i64_histogram_with_attributes_is_exported() {
329-
let (subscriber, exporter) = init_subscriber(
330-
"hello_world".to_string(),
331-
InstrumentKind::Histogram,
332-
-1_i64,
333-
Some(AttributeSet::from(
334-
[
335-
KeyValue::new("u64_key_1", 1_i64),
336-
KeyValue::new("i64_key_1", 2_i64),
337-
KeyValue::new("f64_key_1", 3_f64),
338-
KeyValue::new("str_key_1", "foo"),
339-
KeyValue::new("bool_key_1", true),
340-
]
341-
.as_slice(),
342-
)),
343-
);
344-
345-
tracing::subscriber::with_default(subscriber, || {
346-
tracing::info!(
347-
histogram.hello_world = -1_i64,
348-
u64_key_1 = 1_u64,
349-
i64_key_1 = 2_i64,
350-
f64_key_1 = 3_f64,
351-
str_key_1 = "foo",
352-
bool_key_1 = true,
353-
);
354-
});
355-
356-
exporter.export().unwrap();
357-
}
358-
359310
#[tokio::test]
360311
async fn f64_histogram_with_attributes_is_exported() {
361312
let (subscriber, exporter) = init_subscriber(
@@ -464,7 +415,9 @@ fn init_subscriber<T>(
464415
inner: Arc::new(reader),
465416
};
466417

467-
let provider = MeterProvider::builder().with_reader(reader.clone()).build();
418+
let provider = MeterProviderBuilder::default()
419+
.with_reader(reader.clone())
420+
.build();
468421
let exporter = TestExporter {
469422
expected_metric_name,
470423
expected_instrument_kind,
@@ -521,7 +474,7 @@ struct TestExporter<T> {
521474
expected_value: T,
522475
expected_attributes: Option<AttributeSet>,
523476
reader: TestReader,
524-
_meter_provider: MeterProvider,
477+
_meter_provider: SdkMeterProvider,
525478
}
526479

527480
impl<T> TestExporter<T>

tests/parents.rs

+15-3
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,11 @@ fn test_tracer() -> (Tracer, TracerProvider, TestExporter, impl Subscriber) {
3333
let tracer = provider.tracer("test");
3434

3535
let subscriber = tracing_subscriber::registry()
36-
.with(layer().with_tracer(tracer.clone()).with_filter(LevelFilter::DEBUG))
36+
.with(
37+
layer()
38+
.with_tracer(tracer.clone())
39+
.with_filter(LevelFilter::DEBUG),
40+
)
3741
.with(tracing_subscriber::fmt::layer().with_filter(LevelFilter::TRACE));
3842

3943
(tracer, provider, exporter, subscriber)
@@ -81,7 +85,11 @@ fn explicit_parents_of_events() {
8185
let expected_root_events = ["1", "2", "5", "8", "9", "13"];
8286

8387
let root_span = spans.iter().find(|s| s.name == "root").unwrap();
84-
let actual_events: Vec<_> = root_span.events.iter().map(|event| event.name.to_string()).collect();
88+
let actual_events: Vec<_> = root_span
89+
.events
90+
.iter()
91+
.map(|event| event.name.to_string())
92+
.collect();
8593

8694
assert_eq!(&expected_root_events, &actual_events[..]);
8795
}
@@ -91,7 +99,11 @@ fn explicit_parents_of_events() {
9199
let expected_child_events = ["4", "6", "10", "14"];
92100

93101
let child_span = spans.iter().find(|s| s.name == "child").unwrap();
94-
let actual_events: Vec<_> = child_span.events.iter().map(|event| event.name.to_string()).collect();
102+
let actual_events: Vec<_> = child_span
103+
.events
104+
.iter()
105+
.map(|event| event.name.to_string())
106+
.collect();
95107

96108
assert_eq!(&expected_child_events, &actual_events[..]);
97109
}

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)