Skip to content

Commit b358202

Browse files
authored
Upgrade opentelemetry-prometheus to 0.28 (open-telemetry#2650)
1 parent f3a375c commit b358202

File tree

4 files changed

+47
-64
lines changed

4 files changed

+47
-64
lines changed

opentelemetry-prometheus/CHANGELOG.md

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,19 @@
22

33
## vNext
44

5-
- Bump msrv to 1.75.0.
5+
## v0.28.0
66

7+
- Update `opentelemetry` dependency version to 0.28
8+
- Update `opentelemetry_sdk` dependency version to 0.28
9+
- Update `opentelemetry-semantic-conventions` dependency version to 0.28
10+
- Bump msrv to 1.75.0.
711

812
## v0.27.0
913

1014
- Update `opentelemetry` dependency version to 0.27
1115
- Update `opentelemetry_sdk` dependency version to 0.27
1216
- Update `opentelemetry-semantic-conventions` dependency version to 0.27
1317

14-
1518
## v0.17.0
1619

1720
### Changed
@@ -66,6 +69,7 @@
6669
## v0.12.0
6770

6871
### Changed
72+
6973
- [Breaking] Add `_total` suffix for all counters [#952](https://github.com/open-telemetry/opentelemetry-rust/pull/952).
7074
- Update to `opentelemetry` v0.19.
7175
- Bump MSRV to 1.57 [#953](https://github.com/open-telemetry/opentelemetry-rust/pull/953).

opentelemetry-prometheus/Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "opentelemetry-prometheus"
3-
version = "0.27.0"
3+
version = "0.28.0"
44
description = "Prometheus exporter for OpenTelemetry"
55
homepage = "https://github.com/open-telemetry/opentelemetry-rust"
66
repository = "https://github.com/open-telemetry/opentelemetry-rust"
@@ -21,14 +21,14 @@ rustdoc-args = ["--cfg", "docsrs"]
2121

2222
[dependencies]
2323
once_cell = { version = "1.13" }
24-
opentelemetry = { version = "0.27", default-features = false, features = ["metrics"] }
25-
opentelemetry_sdk = { version = "0.27", default-features = false, features = ["metrics"] }
24+
opentelemetry = { version = "0.28", default-features = false, features = ["metrics"] }
25+
opentelemetry_sdk = { version = "0.28", default-features = false, features = ["metrics"] }
2626
prometheus = "0.13"
2727
protobuf = "2.14"
2828
tracing = {version = ">=0.1.40", default-features = false, optional = true} # optional for opentelemetry internal logging
2929

3030
[dev-dependencies]
31-
opentelemetry-semantic-conventions = { version = "0.27" }
31+
opentelemetry-semantic-conventions = { version = "0.28" }
3232
http-body-util = { version = "0.1" }
3333
hyper = { version = "1.3", features = ["full"] }
3434
hyper-util = { version = "0.1", features = ["full"] }

opentelemetry-prometheus/src/lib.rs

+4-3
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@
9999
use once_cell::sync::{Lazy, OnceCell};
100100
use opentelemetry::{otel_error, otel_warn, InstrumentationScope, Key, Value};
101101
use opentelemetry_sdk::{
102+
error::OTelSdkResult,
102103
metrics::{
103104
data::{self, ResourceMetrics},
104105
reader::MetricReader,
@@ -157,11 +158,11 @@ impl MetricReader for PrometheusExporter {
157158
self.reader.collect(rm)
158159
}
159160

160-
fn force_flush(&self) -> MetricResult<()> {
161+
fn force_flush(&self) -> OTelSdkResult {
161162
self.reader.force_flush()
162163
}
163164

164-
fn shutdown(&self) -> MetricResult<()> {
165+
fn shutdown(&self) -> OTelSdkResult {
165166
self.reader.shutdown()
166167
}
167168

@@ -284,7 +285,7 @@ impl prometheus::core::Collector for Collector {
284285
};
285286

286287
let mut metrics = ResourceMetrics {
287-
resource: Resource::empty(),
288+
resource: Resource::builder_empty().build(),
288289
scope_metrics: vec![],
289290
};
290291
if let Err(err) = self.reader.collect(&mut metrics) {

opentelemetry-prometheus/tests/integration_test.rs

+33-55
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
use std::collections::HashSet;
22
use std::fs;
33
use std::path::Path;
4-
use std::time::Duration;
54

65
use opentelemetry::metrics::{Meter, MeterProvider as _};
76
use opentelemetry::KeyValue;
87
use opentelemetry::{InstrumentationScope, Key};
98
use opentelemetry_prometheus::{ExporterBuilder, ResourceSelector};
109
use opentelemetry_sdk::metrics::SdkMeterProvider;
11-
use opentelemetry_sdk::resource::{
12-
EnvResourceDetector, SdkProvidedResourceDetector, TelemetryResourceDetector,
13-
};
1410
use opentelemetry_sdk::Resource;
1511
use opentelemetry_semantic_conventions::resource::{SERVICE_NAME, TELEMETRY_SDK_VERSION};
1612
use prometheus::{Encoder, TextEncoder};
@@ -360,26 +356,20 @@ fn prometheus_exporter_integration() {
360356
let exporter = tc.builder.with_registry(registry.clone()).build().unwrap();
361357

362358
let res = if tc.empty_resource {
363-
Resource::empty()
359+
Resource::builder_empty().build()
364360
} else {
365-
Resource::from_detectors(
366-
Duration::from_secs(0),
367-
vec![
368-
Box::new(SdkProvidedResourceDetector),
369-
Box::new(EnvResourceDetector::new()),
370-
Box::new(TelemetryResourceDetector),
371-
],
372-
)
373-
.merge(&mut Resource::new(
374-
vec![
375-
// always specify service.name because the default depends on the running OS
376-
KeyValue::new(SERVICE_NAME, "prometheus_test"),
377-
// Overwrite the semconv.TelemetrySDKVersionKey value so we don't need to update every version
378-
KeyValue::new(TELEMETRY_SDK_VERSION, "latest"),
379-
]
380-
.into_iter()
381-
.chain(tc.custom_resource_attrs.into_iter()),
382-
))
361+
Resource::builder()
362+
.with_attributes(
363+
vec![
364+
// always specify service.name because the default depends on the running OS
365+
KeyValue::new(SERVICE_NAME, "prometheus_test"),
366+
// Overwrite the semconv.TelemetrySDKVersionKey value so we don't need to update every version
367+
KeyValue::new(TELEMETRY_SDK_VERSION, "latest"),
368+
]
369+
.into_iter()
370+
.chain(tc.custom_resource_attrs.into_iter()),
371+
)
372+
.build()
383373
};
384374

385375
let provider = SdkMeterProvider::builder()
@@ -431,20 +421,14 @@ fn multiple_scopes() {
431421
.build()
432422
.unwrap();
433423

434-
let resource = Resource::from_detectors(
435-
Duration::from_secs(0),
436-
vec![
437-
Box::new(SdkProvidedResourceDetector),
438-
Box::new(EnvResourceDetector::new()),
439-
Box::new(TelemetryResourceDetector),
440-
],
441-
)
442-
.merge(&mut Resource::new(vec![
443-
// always specify service.name because the default depends on the running OS
444-
KeyValue::new(SERVICE_NAME, "prometheus_test"),
445-
// Overwrite the semconv.TelemetrySDKVersionKey value so we don't need to update every version
446-
KeyValue::new(TELEMETRY_SDK_VERSION, "latest"),
447-
]));
424+
let resource = Resource::builder()
425+
.with_attributes([
426+
// always specify service.name because the default depends on the running OS
427+
KeyValue::new(SERVICE_NAME, "prometheus_test"),
428+
// Overwrite the semconv.TelemetrySDKVersionKey value so we don't need to update every version
429+
KeyValue::new(TELEMETRY_SDK_VERSION, "latest"),
430+
])
431+
.build();
448432

449433
let provider = SdkMeterProvider::builder()
450434
.with_reader(exporter)
@@ -781,24 +765,18 @@ fn duplicate_metrics() {
781765
let registry = prometheus::Registry::new();
782766
let exporter = tc.builder.with_registry(registry.clone()).build().unwrap();
783767

784-
let resource = Resource::from_detectors(
785-
Duration::from_secs(0),
786-
vec![
787-
Box::new(SdkProvidedResourceDetector),
788-
Box::new(EnvResourceDetector::new()),
789-
Box::new(TelemetryResourceDetector),
790-
],
791-
)
792-
.merge(&mut Resource::new(
793-
vec![
794-
// always specify service.name because the default depends on the running OS
795-
KeyValue::new(SERVICE_NAME, "prometheus_test"),
796-
// Overwrite the semconv.TelemetrySDKVersionKey value so we don't need to update every version
797-
KeyValue::new(TELEMETRY_SDK_VERSION, "latest"),
798-
]
799-
.into_iter()
800-
.chain(tc.custom_resource_attrs.into_iter()),
801-
));
768+
let resource = Resource::builder()
769+
.with_attributes(
770+
vec![
771+
// always specify service.name because the default depends on the running OS
772+
KeyValue::new(SERVICE_NAME, "prometheus_test"),
773+
// Overwrite the semconv.TelemetrySDKVersionKey value so we don't need to update every version
774+
KeyValue::new(TELEMETRY_SDK_VERSION, "latest"),
775+
]
776+
.into_iter()
777+
.chain(tc.custom_resource_attrs.into_iter()),
778+
)
779+
.build();
802780

803781
let provider = SdkMeterProvider::builder()
804782
.with_resource(resource)

0 commit comments

Comments
 (0)