From aea64c726aeab1f5a947397a27caeb6d76bebf88 Mon Sep 17 00:00:00 2001 From: asonix Date: Mon, 9 Dec 2024 19:37:35 -0600 Subject: [PATCH] Update opentelemetry stack --- Cargo.lock | 25 +++++++++++++------------ Cargo.toml | 8 ++++---- src/main.rs | 23 ++++++++++++----------- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3be58fa..de573b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2687,23 +2687,23 @@ checksum = "1261fe7e33c73b354eab43b1273a57c8f967d0391e80353e51f764ac02cf6775" [[package]] name = "opentelemetry" -version = "0.24.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c365a63eec4f55b7efeceb724f1336f26a9cf3427b70e59e2cd2a5b947fba96" +checksum = "ab70038c28ed37b97d8ed414b6429d343a8bbf44c9f79ec854f3a643029ba6d7" dependencies = [ "futures-core", "futures-sink", "js-sys", - "once_cell", "pin-project-lite", "thiserror 1.0.69", + "tracing", ] [[package]] name = "opentelemetry-otlp" -version = "0.17.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b925a602ffb916fb7421276b86756027b37ee708f9dce2dbdcc51739f07e727" +checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" dependencies = [ "async-trait", "futures-core", @@ -2715,13 +2715,14 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tonic", + "tracing", ] [[package]] name = "opentelemetry-proto" -version = "0.7.0" +version = "0.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30ee9f20bff9c984511a02f082dc8ede839e4a9bf15cc2487c8d6fea5ad850d9" +checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" dependencies = [ "opentelemetry", "opentelemetry_sdk", @@ -2731,16 +2732,15 @@ dependencies = [ [[package]] name = "opentelemetry_sdk" -version = "0.24.1" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692eac490ec80f24a17828d49b40b60f5aeaccdfe6a503f939713afd22bc28df" +checksum = "231e9d6ceef9b0b2546ddf52335785ce41252bc7474ee8ba05bfad277be13ab8" dependencies = [ "async-trait", "futures-channel", "futures-executor", "futures-util", "glob", - "once_cell", "opentelemetry", "percent-encoding", "rand", @@ -2748,6 +2748,7 @@ dependencies = [ "thiserror 1.0.69", "tokio", "tokio-stream", + "tracing", ] [[package]] @@ -4549,9 +4550,9 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.25.0" +version = "0.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9784ed4da7d921bc8df6963f8c80a0e4ce34ba6ba76668acadd3edbd985ff3b" +checksum = "97a971f6058498b5c0f1affa23e7ea202057a7301dbff68e968b2d578bcbd053" dependencies = [ "js-sys", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index d27bb9a..e5ae133 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -47,9 +47,9 @@ metrics-exporter-prometheus = { version = "0.15.0", default-features = false, fe metrics-util = "0.17.0" mime = "0.3.16" minify-html = "0.15.0" -opentelemetry = "0.24" -opentelemetry_sdk = { version = "0.24", features = ["rt-tokio"] } -opentelemetry-otlp = "0.17" +opentelemetry = "0.27.1" +opentelemetry_sdk = { version = "0.27", features = ["rt-tokio"] } +opentelemetry-otlp = { version = "0.27", features = ["grpc-tonic"] } pin-project-lite = "0.2.9" # pinned to metrics-util quanta = "0.12.0" @@ -77,7 +77,7 @@ time = { version = "0.3.17", features = ["serde"] } tracing = "0.1" tracing-error = "0.2" tracing-log = "0.2" -tracing-opentelemetry = "0.25" +tracing-opentelemetry = "0.28" tracing-subscriber = { version = "0.3", features = [ "ansi", "env-filter", diff --git a/src/main.rs b/src/main.rs index 84f2975..881a94d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -83,17 +83,18 @@ fn init_subscriber( let subscriber = subscriber.with(console_layer); if let Some(url) = opentelemetry_url { - let tracer_provider = opentelemetry_otlp::new_pipeline() - .tracing() - .with_trace_config(opentelemetry_sdk::trace::Config::default().with_resource( - Resource::new(vec![KeyValue::new("service.name", software_name)]), - )) - .with_exporter( - opentelemetry_otlp::new_exporter() - .tonic() - .with_endpoint(url.as_str()), - ) - .install_batch(opentelemetry_sdk::runtime::Tokio)?; + let exporter = opentelemetry_otlp::SpanExporter::builder() + .with_tonic() + .with_endpoint(url.as_str()) + .build()?; + + let tracer_provider = opentelemetry_sdk::trace::TracerProvider::builder() + .with_resource(Resource::new(vec![KeyValue::new( + "service.name", + software_name, + )])) + .with_batch_exporter(exporter, opentelemetry_sdk::runtime::Tokio) + .build(); let otel_layer = tracing_opentelemetry::layer() .with_tracer(tracer_provider.tracer(software_name))