From ed834dfc82e72b4703c09a26992b8905d51b3ec7 Mon Sep 17 00:00:00 2001 From: Tom Tan Date: Tue, 19 Oct 2021 22:57:00 -0700 Subject: [PATCH 1/2] Exports span attributes to ETW --- .../etw/include/opentelemetry/exporters/etw/etw_tracer.h | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h b/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h index cd157f34d5..f0e3ac5e58 100644 --- a/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h +++ b/exporters/etw/include/opentelemetry/exporters/etw/etw_tracer.h @@ -837,9 +837,12 @@ class Span : public trace::Span */ void SetAttribute(nostd::string_view key, const common::AttributeValue &value) noexcept override { - // TODO: not implemented - UNREFERENCED_PARAMETER(key); - UNREFERENCED_PARAMETER(value); + // don't override fields propagated from span data. + if (key == ETW_FIELD_NAME || key == ETW_FIELD_SPAN_ID || key == ETW_FIELD_TRACE_ID) + { + return; + } + attributes_[std::string{key}].FromAttributeValue(value); } /** From 93f15d614523268e8639d6714e701b49358837d9 Mon Sep 17 00:00:00 2001 From: Tom Tan Date: Wed, 20 Oct 2021 00:39:23 -0700 Subject: [PATCH 2/2] Add test for SetAttribute in ETW exporter --- exporters/etw/test/etw_tracer_test.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/exporters/etw/test/etw_tracer_test.cc b/exporters/etw/test/etw_tracer_test.cc index 400099bbe7..1c9c1f09be 100644 --- a/exporters/etw/test/etw_tracer_test.cc +++ b/exporters/etw/test/etw_tracer_test.cc @@ -69,6 +69,9 @@ TEST(ETWTracer, TracerCheck) auto innerSpan = tracer->StartSpan("MySpanL3", attribs); auto innerScope = tracer->WithActiveSpan(innerSpan); + // Add span attribute + EXPECT_NO_THROW(outerSpan->SetAttribute("AttrName1", "AttrValue1")); + // Add first event std::string eventName1 = "MyEvent1"; Properties event1 =