From 4f41ab2370097891db333834354a40d517c72fe1 Mon Sep 17 00:00:00 2001 From: uuushiro Date: Sun, 1 Feb 2026 15:14:02 +0900 Subject: [PATCH] Add otel.kind = "client" to db_span! macro for OpenTelemetry compatibility This ensures DB spans are recognized as Client spans by OpenTelemetry-compatible APM tools (Datadog, Jaeger, etc.), enabling proper DB span visualization and SQL query tracking. The tracing-opentelemetry crate uses the otel.kind field to determine SpanKind. Without this, spans default to Internal and may not be properly categorized as database operations by APM backends. --- src/database/tracing_spans.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/database/tracing_spans.rs b/src/database/tracing_spans.rs index bb6641c9d..78579c85a 100644 --- a/src/database/tracing_spans.rs +++ b/src/database/tracing_spans.rs @@ -120,6 +120,7 @@ macro_rules! db_span { let op = $crate::database::tracing_spans::DbOperation::from_sql(sql); ::tracing::info_span!( $name, + otel.kind = "client", db.system = $crate::database::tracing_spans::db_system_name($backend), db.operation = %op, db.statement = ::tracing::field::Empty,