From 88bfb72d9c84d7e5eb8fe5e39ac1c8afa0cef6ee Mon Sep 17 00:00:00 2001 From: Rachel Yang Date: Tue, 9 Sep 2025 16:27:08 -0400 Subject: [PATCH] WIP: chore(telemetry): add malformed baggage header telemetry --- src/datadog/telemetry_metrics.cpp | 2 ++ src/datadog/telemetry_metrics.h | 4 ++++ src/datadog/tracer.cpp | 5 +++++ 3 files changed, 11 insertions(+) diff --git a/src/datadog/telemetry_metrics.cpp b/src/datadog/telemetry_metrics.cpp index ab0363e6..ebda23b3 100644 --- a/src/datadog/telemetry_metrics.cpp +++ b/src/datadog/telemetry_metrics.cpp @@ -56,6 +56,8 @@ const telemetry::Counter extracted = {"context_header_style.extracted", "tracers", true}; const telemetry::Counter truncated = {"context_header.truncated", "tracers", true}; +const telemetry::Counter malformed = {"context_header_style.malformed", "tracers", + true}; } // namespace trace_context } // namespace tracer diff --git a/src/datadog/telemetry_metrics.h b/src/datadog/telemetry_metrics.h index df0406b4..ef0f55d0 100644 --- a/src/datadog/telemetry_metrics.h +++ b/src/datadog/telemetry_metrics.h @@ -109,6 +109,10 @@ extern const telemetry::Counter extracted; /// reason for truncation (`truncation_reason:baggage_item_count_exceeded`, /// `truncation_reason:baggage_byte_count_exceeded`) extern const telemetry::Counter truncated; + +/// The number of times baggage headers are dropped because they're malformed +/// (missing key/value/'='), tagged by header style (`header_style:baggage`) +extern const telemetry::Counter malformed; } // namespace trace_context } // namespace tracer diff --git a/src/datadog/tracer.cpp b/src/datadog/tracer.cpp index 472fb3b4..234d2d24 100644 --- a/src/datadog/tracer.cpp +++ b/src/datadog/tracer.cpp @@ -449,6 +449,11 @@ Expected Tracer::extract_baggage( if (maybe_baggage) { telemetry::counter::increment(metrics::tracer::trace_context::extracted, {"header_style:baggage"}); + } else if (auto err = maybe_baggage.if_error()) { + if (err->code == Baggage::Error::MALFORMED_BAGGAGE_HEADER) { + telemetry::counter::increment(metrics::tracer::trace_context::malformed, + {"header_style:baggage"}); + } } return maybe_baggage; }