From b2c1bd6b8d0bb9bb43b64db9fdb43de599eb6d86 Mon Sep 17 00:00:00 2001 From: Lennart <18233294+lennart-k@users.noreply.github.com> Date: Sun, 13 Apr 2025 20:13:28 +0200 Subject: [PATCH] Fix tracing --- Cargo.lock | 43 ++++++++++++++++++++++++++++++++++++++++++- Cargo.toml | 4 +++- src/setup_tracing.rs | 34 ++++++++++++++++++++-------------- 3 files changed, 65 insertions(+), 16 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 57d11cd..b9b71bd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1572,6 +1572,19 @@ dependencies = [ "webpki-roots", ] +[[package]] +name = "hyper-timeout" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b90d566bffbce6a75bd8b09a05aa8c2cb1fabb6cb348f8840c9e4c90a0d83b0" +dependencies = [ + "hyper", + "hyper-util", + "pin-project-lite", + "tokio", + "tower-service", +] + [[package]] name = "hyper-util" version = "0.1.11" @@ -2199,6 +2212,8 @@ dependencies = [ "prost", "reqwest", "thiserror 2.0.12", + "tokio", + "tonic", "tracing", ] @@ -2817,7 +2832,7 @@ dependencies = [ "sync_wrapper", "tokio", "tokio-rustls", - "tower", + "tower 0.5.2", "tower-service", "url", "wasm-bindgen", @@ -3116,6 +3131,7 @@ dependencies = [ "serde", "thiserror 2.0.12", "tokio", + "tracing", "url", "uuid", ] @@ -3982,10 +3998,35 @@ dependencies = [ "http 1.3.1", "http-body", "http-body-util", + "hyper", + "hyper-timeout", + "hyper-util", "percent-encoding", "pin-project", "prost", + "tokio", "tokio-stream", + "tower 0.4.13", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "indexmap 1.9.3", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util", "tower-layer", "tower-service", "tracing", diff --git a/Cargo.toml b/Cargo.toml index 8d7d20a..81a5327 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -130,7 +130,9 @@ tracing-actix-web = { workspace = true } uuid.workspace = true opentelemetry = { version = "0.29", optional = true } -opentelemetry-otlp = { version = "0.29", optional = true } +opentelemetry-otlp = { version = "0.29", optional = true, features = [ + "grpc-tonic", +] } opentelemetry_sdk = { version = "0.29", features = [ "rt-tokio", ], optional = true } diff --git a/src/setup_tracing.rs b/src/setup_tracing.rs index e999f27..156c91c 100644 --- a/src/setup_tracing.rs +++ b/src/setup_tracing.rs @@ -1,14 +1,14 @@ use crate::config::TracingConfig; #[cfg(feature = "opentelemetry")] -use opentelemetry::{global, trace::TracerProvider, KeyValue}; +use opentelemetry::{KeyValue, global, trace::TracerProvider}; #[cfg(feature = "opentelemetry")] use opentelemetry_otlp::WithExportConfig; #[cfg(feature = "opentelemetry")] -use opentelemetry_sdk::{propagation::TraceContextPropagator, trace::Tracer, Resource}; +use opentelemetry_sdk::{Resource, propagation::TraceContextPropagator, trace::Tracer}; #[cfg(feature = "opentelemetry")] use opentelemetry_semantic_conventions::{ - resource::{SERVICE_NAME, SERVICE_VERSION}, SCHEMA_URL, + resource::{SERVICE_NAME, SERVICE_VERSION}, }; #[cfg(feature = "opentelemetry")] use std::time::Duration; @@ -17,9 +17,9 @@ use tracing::level_filters::LevelFilter; use tracing::warn; #[cfg(feature = "opentelemetry")] use tracing_opentelemetry::OpenTelemetryLayer; +use tracing_subscriber::EnvFilter; use tracing_subscriber::layer::SubscriberExt; use tracing_subscriber::util::SubscriberInitExt; -use tracing_subscriber::EnvFilter; #[cfg(feature = "opentelemetry")] pub fn init_otel() -> Tracer { @@ -29,15 +29,19 @@ pub fn init_otel() -> Tracer { .build() .unwrap(); - let tracer_provider = opentelemetry_sdk::trace::TracerProvider::builder() - .with_batch_exporter(otel_exporter, opentelemetry_sdk::runtime::Tokio) - .with_resource(Resource::from_schema_url( - [ - KeyValue::new(SERVICE_NAME, env!("CARGO_PKG_NAME")), - KeyValue::new(SERVICE_VERSION, env!("CARGO_PKG_VERSION")), - ], - SCHEMA_URL, - )) + let tracer_provider = opentelemetry_sdk::trace::SdkTracerProvider::builder() + .with_batch_exporter(otel_exporter) + .with_resource( + Resource::builder_empty() + .with_schema_url( + [ + KeyValue::new(SERVICE_NAME, env!("CARGO_PKG_NAME")), + KeyValue::new(SERVICE_VERSION, env!("CARGO_PKG_VERSION")), + ], + SCHEMA_URL, + ) + .build(), + ) .build(); global::set_tracer_provider(tracer_provider.clone()); @@ -66,7 +70,9 @@ pub fn setup_tracing(config: &TracingConfig) { #[cfg(not(feature = "opentelemetry"))] { registry.init(); - warn!("This version of RustiCal is compiled without the opentelemetry feature. tracing.opentelemtry = true has no effect"); + warn!( + "This version of RustiCal is compiled without the opentelemetry feature. tracing.opentelemtry = true has no effect" + ); } } else { registry.init();