Skip to content

Commit e4399ab

Browse files
committed
chore(o11y): bump opentelemetry from 0.26 to 0.27
1 parent 16ee46d commit e4399ab

File tree

5 files changed

+61
-66
lines changed

5 files changed

+61
-66
lines changed

Cargo.lock

+20-20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/synd_o11y/Cargo.toml

+9-9
Original file line numberDiff line numberDiff line change
@@ -15,26 +15,26 @@ version = "0.1.8"
1515
[dependencies]
1616
axum = { workspace = true }
1717
http = { workspace = true }
18-
opentelemetry = { version = "0.26.0" }
19-
opentelemetry-appender-tracing = { version = "0.26.0", default-features = false } # disable logs_level_enabled which affect global filtering
20-
opentelemetry-http = { version = "0.26.0" }
21-
opentelemetry-otlp = { version = "0.26.0", default-features = false, features = ["trace", "metrics", "logs", "grpc-tonic"] }
22-
opentelemetry-semantic-conventions = { version = "0.26.0", features = ["semconv_experimental"] }
23-
opentelemetry-stdout = { version = "0.26.0", optional = true, default-features = false, features = ["metrics"] }
24-
opentelemetry_sdk = { version = "0.26.0", features = ["logs", "rt-tokio"] }
18+
opentelemetry = { version = "0.27.0" }
19+
opentelemetry-appender-tracing = { version = "0.27.0", default-features = false } # disable logs_level_enabled which affect global filtering
20+
opentelemetry-http = { version = "0.27.0" }
21+
opentelemetry-otlp = { version = "0.27.0", default-features = false, features = ["trace", "metrics", "logs", "grpc-tonic"] }
22+
opentelemetry-semantic-conventions = { version = "0.27.0", features = ["semconv_experimental"] }
23+
opentelemetry-stdout = { version = "0.27.0", optional = true, default-features = false, features = ["metrics"] }
24+
opentelemetry_sdk = { version = "0.27.0", features = ["logs", "rt-tokio", "spec_unstable_metrics_views"] }
2525
rand = { workspace = true }
2626
reqwest = { workspace = true }
2727
serde = { workspace = true, features = ["derive"] }
2828
tracing = { workspace = true }
29-
tracing-opentelemetry = { version = "0.27.0" }
29+
tracing-opentelemetry = { version = "0.28.0" }
3030
tracing-subscriber = { workspace = true, features = ["registry", "fmt", "std", "chrono"] }
3131

3232
[features]
3333
opentelemetry-stdout = ["dep:opentelemetry-stdout"]
3434

3535
[dev-dependencies]
3636
insta = { workspace = true, features = ["yaml", "redactions"] }
37-
opentelemetry-proto = { version = "0.26.1", features = ["gen-tonic", "trace", "metrics", "logs", "with-serde"] }
37+
opentelemetry-proto = { version = "0.27.0", features = ["gen-tonic", "trace", "metrics", "logs", "with-serde"] }
3838
tokio = { workspace = true, features = ["macros", "rt-multi-thread", "sync"] }
3939
tonic = { version = "0.12.3", features = ["transport"] }
4040

crates/synd_o11y/src/tracing_subscriber/otel_log/mod.rs

+12-12
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,31 @@
11
use opentelemetry_appender_tracing::layer::OpenTelemetryTracingBridge;
2-
use opentelemetry_otlp::WithExportConfig as _;
2+
use opentelemetry_otlp::WithExportConfig;
33
use opentelemetry_sdk::{
44
logs::{BatchConfig, LoggerProvider},
55
runtime, Resource,
66
};
77
use tracing::Subscriber;
88
use tracing_subscriber::{registry::LookupSpan, Layer};
99

10+
#[expect(clippy::needless_pass_by_value)]
1011
pub fn layer<S>(
1112
endpoint: impl Into<String>,
1213
resource: Resource,
13-
batch_config: BatchConfig,
14+
// TODO: how to use BatchConfig after 0.27 ?
15+
_batch_config: BatchConfig,
1416
) -> (impl Layer<S>, LoggerProvider)
1517
where
1618
S: Subscriber + for<'span> LookupSpan<'span>,
1719
{
18-
let provider = opentelemetry_otlp::new_pipeline()
19-
.logging()
20-
.with_resource(resource)
21-
.with_batch_config(batch_config)
22-
.with_exporter(
23-
opentelemetry_otlp::new_exporter()
24-
.tonic()
25-
.with_endpoint(endpoint),
26-
)
27-
.install_batch(runtime::Tokio)
20+
let exporter = opentelemetry_otlp::LogExporter::builder()
21+
.with_tonic()
22+
.with_endpoint(endpoint)
23+
.build()
2824
.unwrap();
25+
let provider = opentelemetry_sdk::logs::LoggerProvider::builder()
26+
.with_resource(resource)
27+
.with_batch_exporter(exporter, runtime::Tokio)
28+
.build();
2929

3030
(OpenTelemetryTracingBridge::new(&provider), provider)
3131
}

crates/synd_o11y/src/tracing_subscriber/otel_metrics/mod.rs

+5-8
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,7 @@ use std::time::Duration;
33
use opentelemetry::{global, metrics::MeterProvider};
44
use opentelemetry_otlp::WithExportConfig;
55
use opentelemetry_sdk::{
6-
metrics::{
7-
reader::DefaultTemporalitySelector, Instrument, PeriodicReader, SdkMeterProvider, Stream,
8-
View,
9-
},
6+
metrics::{Instrument, PeriodicReader, SdkMeterProvider, Stream, View},
107
runtime, Resource,
118
};
129
use tracing::{Metadata, Subscriber};
@@ -38,10 +35,10 @@ fn init_meter_provider(
3835
interval: Duration,
3936
) -> impl MeterProvider {
4037
// Currently OtelpMetricPipeline does not provide a way to set up views.
41-
let exporter = opentelemetry_otlp::new_exporter()
42-
.tonic()
38+
let exporter = opentelemetry_otlp::MetricExporter::builder()
39+
.with_tonic()
4340
.with_endpoint(endpoint)
44-
.build_metrics_exporter(Box::new(DefaultTemporalitySelector::new()))
41+
.build()
4542
.unwrap();
4643

4744
let reader = PeriodicReader::builder(exporter, runtime::Tokio)
@@ -56,7 +53,7 @@ fn init_meter_provider(
5653

5754
#[cfg(feature = "opentelemetry-stdout")]
5855
let stdout_reader = {
59-
let exporter = opentelemetry_stdout::MetricsExporterBuilder::default().build();
56+
let exporter = opentelemetry_stdout::MetricExporterBuilder::default().build();
6057
PeriodicReader::builder(exporter, runtime::Tokio)
6158
.with_interval(Duration::from_secs(60))
6259
.build()

crates/synd_o11y/src/tracing_subscriber/otel_trace/mod.rs

+15-17
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,28 @@ where
2121
OpenTelemetryLayer::new(init_tracer(endpoint, resource, sampler_ratio, batch_config))
2222
}
2323

24+
#[expect(clippy::needless_pass_by_value)]
2425
fn init_tracer(
2526
endpoint: impl Into<String>,
2627
resource: Resource,
2728
sampler_ratio: f64,
28-
batch_config: BatchConfig,
29+
// TODO: how to use BatchConfig after 0.27 ?
30+
_batch_config: BatchConfig,
2931
) -> Tracer {
30-
let provider = opentelemetry_otlp::new_pipeline()
31-
.tracing()
32-
.with_trace_config(
33-
opentelemetry_sdk::trace::Config::default()
34-
.with_sampler(Sampler::ParentBased(Box::new(Sampler::TraceIdRatioBased(
35-
sampler_ratio,
36-
))))
37-
.with_resource(resource),
38-
)
39-
.with_batch_config(batch_config)
40-
.with_exporter(
41-
opentelemetry_otlp::new_exporter()
42-
.tonic()
43-
.with_endpoint(endpoint),
44-
)
45-
.install_batch(runtime::Tokio)
32+
let exporter = opentelemetry_otlp::SpanExporter::builder()
33+
.with_tonic()
34+
.with_endpoint(endpoint)
35+
.build()
4636
.unwrap();
4737

38+
let provider = opentelemetry_sdk::trace::TracerProvider::builder()
39+
.with_resource(resource)
40+
.with_sampler(Sampler::ParentBased(Box::new(Sampler::TraceIdRatioBased(
41+
sampler_ratio,
42+
))))
43+
.with_batch_exporter(exporter, runtime::Tokio)
44+
.build();
45+
4846
// > It would now be the responsibility of users to set it by calling global::set_tracer_provider(tracer_provider.clone());
4947
// https://github.com/open-telemetry/opentelemetry-rust/blob/main/opentelemetry-otlp/CHANGELOG.md#v0170
5048
global::set_tracer_provider(provider.clone());

0 commit comments

Comments
 (0)