Fix tracing

This commit is contained in:
Lennart
2025-04-13 20:13:28 +02:00
parent 64233f91d2
commit b2c1bd6b8d
3 changed files with 65 additions and 16 deletions

43
Cargo.lock generated
View File

@@ -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",

View File

@@ -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 }

View File

@@ -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();