diff --git a/Cargo.lock b/Cargo.lock index 10c923f..cacb145 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -973,7 +973,7 @@ dependencies = [ "futures-core", "prost", "prost-types", - "tonic", + "tonic 0.12.3", "tracing-core", ] @@ -997,7 +997,7 @@ dependencies = [ "thread_local", "tokio", "tokio-stream", - "tonic", + "tonic 0.12.3", "tracing", "tracing-core", "tracing-subscriber", @@ -1626,12 +1626,6 @@ version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f" -[[package]] -name = "glob" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2" - [[package]] name = "h2" version = "0.3.27" @@ -2714,68 +2708,78 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "opentelemetry" -version = "0.27.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab70038c28ed37b97d8ed414b6429d343a8bbf44c9f79ec854f3a643029ba6d7" +checksum = "aaf416e4cb72756655126f7dd7bb0af49c674f4c1b9903e80c009e0c37e552e6" dependencies = [ "futures-core", "futures-sink", "js-sys", "pin-project-lite", - "thiserror 1.0.69", + "thiserror 2.0.12", "tracing", ] [[package]] -name = "opentelemetry-otlp" -version = "0.27.0" +name = "opentelemetry-http" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cf61a1868dacc576bf2b2a1c3e9ab150af7272909e80085c3173384fe11f76" +checksum = "50f6639e842a97dbea8886e3439710ae463120091e2e064518ba8e716e6ac36d" dependencies = [ "async-trait", - "futures-core", + "bytes", "http 1.3.1", "opentelemetry", + "reqwest", +] + +[[package]] +name = "opentelemetry-otlp" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbee664a43e07615731afc539ca60c6d9f1a9425e25ca09c57bc36c87c55852b" +dependencies = [ + "http 1.3.1", + "opentelemetry", + "opentelemetry-http", "opentelemetry-proto", "opentelemetry_sdk", "prost", - "thiserror 1.0.69", + "reqwest", + "thiserror 2.0.12", "tokio", - "tonic", + "tonic 0.13.1", "tracing", ] [[package]] name = "opentelemetry-proto" -version = "0.27.0" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a6e05acbfada5ec79023c85368af14abd0b307c015e9064d249b2a950ef459a6" +checksum = "2e046fd7660710fe5a05e8748e70d9058dc15c94ba914e7c4faa7c728f0e8ddc" dependencies = [ "opentelemetry", "opentelemetry_sdk", "prost", - "tonic", + "tonic 0.13.1", ] [[package]] name = "opentelemetry_sdk" -version = "0.27.1" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "231e9d6ceef9b0b2546ddf52335785ce41252bc7474ee8ba05bfad277be13ab8" +checksum = "11f644aa9e5e31d11896e024305d7e3c98a88884d9f8919dbf37a9991bc47a4b" dependencies = [ - "async-trait", "futures-channel", "futures-executor", "futures-util", - "glob", "opentelemetry", "percent-encoding", - "rand 0.8.5", + "rand 0.9.2", "serde_json", - "thiserror 1.0.69", + "thiserror 2.0.12", "tokio", "tokio-stream", - "tracing", ] [[package]] @@ -3464,6 +3468,7 @@ checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" dependencies = [ "base64 0.22.1", "bytes", + "futures-channel", "futures-core", "futures-util", "http 1.3.1", @@ -4437,6 +4442,32 @@ dependencies = [ "tracing", ] +[[package]] +name = "tonic" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e581ba15a835f4d9ea06c55ab1bd4dce26fc53752c69a04aac00703bfb49ba9" +dependencies = [ + "async-trait", + "base64 0.22.1", + "bytes", + "http 1.3.1", + "http-body", + "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", + "percent-encoding", + "pin-project", + "prost", + "tokio", + "tokio-stream", + "tower 0.5.2", + "tower-layer", + "tower-service", + "tracing", +] + [[package]] name = "tower" version = "0.4.13" @@ -4465,11 +4496,15 @@ checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9" dependencies = [ "futures-core", "futures-util", + "indexmap 2.10.0", "pin-project-lite", + "slab", "sync_wrapper", "tokio", + "tokio-util", "tower-layer", "tower-service", + "tracing", ] [[package]] @@ -4581,9 +4616,9 @@ dependencies = [ [[package]] name = "tracing-opentelemetry" -version = "0.28.0" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a971f6058498b5c0f1affa23e7ea202057a7301dbff68e968b2d578bcbd053" +checksum = "ddcf5959f39507d0d04d6413119c04f33b623f4f951ebcbdddddfad2d0623a9c" dependencies = [ "js-sys", "once_cell", diff --git a/Cargo.toml b/Cargo.toml index c5199a9..305aba3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -46,9 +46,9 @@ metrics-exporter-prometheus = { version = "0.15.0", default-features = false, fe metrics-util = "0.17.0" mime = "0.3.16" minify-html = "0.16.0" -opentelemetry = "0.27.1" -opentelemetry_sdk = { version = "0.27", features = ["rt-tokio"] } -opentelemetry-otlp = { version = "0.27", features = ["grpc-tonic"] } +opentelemetry = "0.30.0" +opentelemetry_sdk = { version = "0.30", features = ["rt-tokio"] } +opentelemetry-otlp = { version = "0.30", features = ["grpc-tonic"] } pin-project-lite = "0.2.9" # pinned to metrics-util quanta = "0.12.0" @@ -76,7 +76,7 @@ time = { version = "0.3.17", features = ["serde"] } tracing = "0.1" tracing-error = "0.2" tracing-log = "0.2" -tracing-opentelemetry = "0.28" +tracing-opentelemetry = "0.31" tracing-subscriber = { version = "0.3", features = [ "ansi", "env-filter", diff --git a/src/main.rs b/src/main.rs index ca20d0d..b49b129 100644 --- a/src/main.rs +++ b/src/main.rs @@ -12,9 +12,9 @@ use error::Error; use http_signature_normalization_actix::middleware::VerifySignature; use metrics_exporter_prometheus::PrometheusBuilder; use metrics_util::layers::FanoutBuilder; -use opentelemetry::{trace::TracerProvider, KeyValue}; +use opentelemetry::trace::TracerProvider; use opentelemetry_otlp::WithExportConfig; -use opentelemetry_sdk::Resource; +use opentelemetry_sdk::{trace::SdkTracerProvider, Resource}; use reqwest_middleware::ClientWithMiddleware; use rustls::ServerConfig; use tokio::task::JoinHandle; @@ -88,12 +88,9 @@ fn init_subscriber( .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) + let tracer_provider = SdkTracerProvider::builder() + .with_resource(Resource::builder().with_service_name(software_name).build()) + .with_batch_exporter(exporter) .build(); let otel_layer = tracing_opentelemetry::layer()