From 2969196f086ccb5e24355caa2fa63aae734cbe05 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 11 Jan 2024 23:06:20 +0100 Subject: [PATCH 1/9] Fixes #2487 --- api/include/opentelemetry/trace/trace_flags.h | 3 +++ bazel/repository.bzl | 6 +++--- .../opentelemetry/exporters/otlp/otlp_recordable.h | 2 ++ exporters/otlp/src/otlp_recordable.cc | 7 +++++++ sdk/include/opentelemetry/sdk/trace/multi_recordable.h | 8 ++++++++ sdk/include/opentelemetry/sdk/trace/recordable.h | 6 ++++++ sdk/include/opentelemetry/sdk/trace/span_data.h | 8 ++++++++ third_party/opentelemetry-proto | 2 +- third_party_release | 2 +- 9 files changed, 39 insertions(+), 5 deletions(-) diff --git a/api/include/opentelemetry/trace/trace_flags.h b/api/include/opentelemetry/trace/trace_flags.h index 1f7bf4f9b3..a64727fed2 100644 --- a/api/include/opentelemetry/trace/trace_flags.h +++ b/api/include/opentelemetry/trace/trace_flags.h @@ -19,6 +19,7 @@ class TraceFlags final { public: static constexpr uint8_t kIsSampled = 1; + static constexpr uint8_t kIsRandom = 2; TraceFlags() noexcept : rep_{0} {} @@ -26,6 +27,8 @@ class TraceFlags final bool IsSampled() const noexcept { return rep_ & kIsSampled; } + bool IsRandom() const noexcept { return rep_ & kIsRandom; } + // Populates the buffer with the lowercase base16 representation of the flags. void ToLowerBase16(nostd::span buffer) const noexcept { diff --git a/bazel/repository.bzl b/bazel/repository.bzl index 7e09e299cf..0fde88dc5c 100644 --- a/bazel/repository.bzl +++ b/bazel/repository.bzl @@ -100,10 +100,10 @@ def opentelemetry_cpp_deps(): http_archive, name = "com_github_opentelemetry_proto", build_file = "@io_opentelemetry_cpp//bazel:opentelemetry_proto.BUILD", - sha256 = "a13a1a7b76a1f22a0ca2e6c293e176ffef031413ab8ba653a82a1dbc286a3a33", - strip_prefix = "opentelemetry-proto-1.0.0", + sha256 = "df491a05f3fcbf86cc5ba5c9de81f6a624d74d4773d7009d573e37d6e2b6af64", + strip_prefix = "opentelemetry-proto-1.1.0", urls = [ - "https://github.com/open-telemetry/opentelemetry-proto/archive/v1.0.0.tar.gz", + "https://github.com/open-telemetry/opentelemetry-proto/archive/v1.1.0.tar.gz", ], ) diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable.h index 76e8856330..88e7cd91cf 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_recordable.h @@ -53,6 +53,8 @@ class OtlpRecordable final : public opentelemetry::sdk::trace::Recordable void SetName(nostd::string_view name) noexcept override; + void SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept override; + void SetSpanKind(opentelemetry::trace::SpanKind span_kind) noexcept override; void SetResource(const opentelemetry::sdk::resource::Resource &resource) noexcept override; diff --git a/exporters/otlp/src/otlp_recordable.cc b/exporters/otlp/src/otlp_recordable.cc index a3ab4327f2..f9cee24677 100644 --- a/exporters/otlp/src/otlp_recordable.cc +++ b/exporters/otlp/src/otlp_recordable.cc @@ -140,6 +140,13 @@ void OtlpRecordable::SetName(nostd::string_view name) noexcept span_.set_name(name.data(), name.size()); } +void OtlpRecordable::SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept +{ + uint32_t all_flags = flags.flags() & opentelemetry::proto::trace::v1::SPAN_FLAGS_TRACE_FLAGS_MASK; + + span_.set_flags(all_flags); +} + void OtlpRecordable::SetSpanKind(trace::SpanKind span_kind) noexcept { proto::trace::v1::Span_SpanKind proto_span_kind = diff --git a/sdk/include/opentelemetry/sdk/trace/multi_recordable.h b/sdk/include/opentelemetry/sdk/trace/multi_recordable.h index 8519591286..e8ad3ea39c 100644 --- a/sdk/include/opentelemetry/sdk/trace/multi_recordable.h +++ b/sdk/include/opentelemetry/sdk/trace/multi_recordable.h @@ -112,6 +112,14 @@ class MultiRecordable : public Recordable } } + void SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept override + { + for (auto &recordable : recordables_) + { + recordable.second->SetTraceFlags(flags); + } + } + void SetSpanKind(opentelemetry::trace::SpanKind span_kind) noexcept override { for (auto &recordable : recordables_) diff --git a/sdk/include/opentelemetry/sdk/trace/recordable.h b/sdk/include/opentelemetry/sdk/trace/recordable.h index cb73ef5f64..f4ac53fe2e 100644 --- a/sdk/include/opentelemetry/sdk/trace/recordable.h +++ b/sdk/include/opentelemetry/sdk/trace/recordable.h @@ -135,6 +135,12 @@ class Recordable */ virtual void SetName(nostd::string_view name) noexcept = 0; + /** + * Set the trace flags of the span. + * @param flags the flags to set + */ + virtual void SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept = 0; + /** * Set the spankind of the span. * @param span_kind the spankind to set diff --git a/sdk/include/opentelemetry/sdk/trace/span_data.h b/sdk/include/opentelemetry/sdk/trace/span_data.h index ef2c57a092..4bd11f06ed 100644 --- a/sdk/include/opentelemetry/sdk/trace/span_data.h +++ b/sdk/include/opentelemetry/sdk/trace/span_data.h @@ -136,6 +136,8 @@ class SpanData final : public Recordable */ opentelemetry::nostd::string_view GetName() const noexcept { return name_; } + opentelemetry::trace::TraceFlags GetFlags() const noexcept { return flags_; } + /** * Get the kind of this span * @return the kind of this span @@ -273,6 +275,11 @@ class SpanData final : public Recordable name_ = std::string(name.data(), name.length()); } + void SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept override + { + flags_ = flags; + } + void SetSpanKind(opentelemetry::trace::SpanKind span_kind) noexcept override { span_kind_ = span_kind; @@ -306,6 +313,7 @@ class SpanData final : public Recordable opentelemetry::sdk::common::AttributeMap attribute_map_; std::vector events_; std::vector links_; + opentelemetry::trace::TraceFlags flags_; opentelemetry::trace::SpanKind span_kind_{opentelemetry::trace::SpanKind::kInternal}; const opentelemetry::sdk::resource::Resource *resource_; const InstrumentationScope *instrumentation_scope_; diff --git a/third_party/opentelemetry-proto b/third_party/opentelemetry-proto index c4dfbc51f3..4ca4f0335c 160000 --- a/third_party/opentelemetry-proto +++ b/third_party/opentelemetry-proto @@ -1 +1 @@ -Subproject commit c4dfbc51f3cd4089778555a2ac5d9bc093ed2956 +Subproject commit 4ca4f0335c63cda7ab31ea7ed70d6553aee14dce diff --git a/third_party_release b/third_party_release index 817d9b728e..7689cd8638 100644 --- a/third_party_release +++ b/third_party_release @@ -19,7 +19,7 @@ benchmark=v1.7.1 googletest=1.13.0 ms-gsl=v3.1.0-67-g6f45293 nlohmann-json=v3.11.2 -opentelemetry-proto=v1.0.0 +opentelemetry-proto=v1.1.0 opentracing-cpp=v1.6.0 prometheus-cpp=v1.1.0 vcpkg=2022.08.15 From 18626eca4e66edcd863f044777fb7334d976e4be Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 11 Jan 2024 23:36:31 +0100 Subject: [PATCH 2/9] Cleanup --- api/include/opentelemetry/trace/trace_flags.h | 2 +- .../include/opentelemetry/exporters/zipkin/recordable.h | 2 ++ exporters/zipkin/src/recordable.cc | 6 ++++++ sdk/include/opentelemetry/sdk/trace/span_data.h | 5 +---- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/api/include/opentelemetry/trace/trace_flags.h b/api/include/opentelemetry/trace/trace_flags.h index a64727fed2..ce8686a836 100644 --- a/api/include/opentelemetry/trace/trace_flags.h +++ b/api/include/opentelemetry/trace/trace_flags.h @@ -19,7 +19,7 @@ class TraceFlags final { public: static constexpr uint8_t kIsSampled = 1; - static constexpr uint8_t kIsRandom = 2; + static constexpr uint8_t kIsRandom = 2; TraceFlags() noexcept : rep_{0} {} diff --git a/exporters/zipkin/include/opentelemetry/exporters/zipkin/recordable.h b/exporters/zipkin/include/opentelemetry/exporters/zipkin/recordable.h index 64894082fd..09955711e3 100644 --- a/exporters/zipkin/include/opentelemetry/exporters/zipkin/recordable.h +++ b/exporters/zipkin/include/opentelemetry/exporters/zipkin/recordable.h @@ -39,6 +39,8 @@ class Recordable final : public sdk::trace::Recordable void SetName(nostd::string_view name) noexcept override; + void SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept override; + void SetStartTime(opentelemetry::common::SystemTimestamp start_time) noexcept override; void SetSpanKind(opentelemetry::trace::SpanKind span_kind) noexcept override; diff --git a/exporters/zipkin/src/recordable.cc b/exporters/zipkin/src/recordable.cc index 3397053e29..ed43cb8a2d 100644 --- a/exporters/zipkin/src/recordable.cc +++ b/exporters/zipkin/src/recordable.cc @@ -213,6 +213,12 @@ void Recordable::SetName(nostd::string_view name) noexcept span_["name"] = name.data(); } +void Recordable::SetTraceFlags(opentelemetry::trace::TraceFlags /* flags */) noexcept +{ + // TODO: Currently not supported by specs: + // https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/sdk_exporters/zipkin.md +} + void Recordable::SetResource(const sdk::resource::Resource &resource) noexcept { // only service.name attribute is supported by specs as of now. diff --git a/sdk/include/opentelemetry/sdk/trace/span_data.h b/sdk/include/opentelemetry/sdk/trace/span_data.h index 4bd11f06ed..53f965c3f9 100644 --- a/sdk/include/opentelemetry/sdk/trace/span_data.h +++ b/sdk/include/opentelemetry/sdk/trace/span_data.h @@ -275,10 +275,7 @@ class SpanData final : public Recordable name_ = std::string(name.data(), name.length()); } - void SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept override - { - flags_ = flags; - } + void SetTraceFlags(opentelemetry::trace::TraceFlags flags) noexcept override { flags_ = flags; } void SetSpanKind(opentelemetry::trace::SpanKind span_kind) noexcept override { From 702c03f2259e8d241e420e0571f572286d78adf1 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Fri, 12 Jan 2024 01:34:39 +0100 Subject: [PATCH 3/9] Propagate kIsRandom flag. --- api/include/opentelemetry/trace/trace_flags.h | 4 +++- .../opentelemetry/sdk/trace/id_generator.h | 11 +++++++++- .../sdk/trace/random_id_generator.h | 2 ++ sdk/src/trace/span.cc | 2 ++ sdk/src/trace/tracer.cc | 22 ++++++++++++++----- sdk/test/trace/tracer_test.cc | 3 +++ 6 files changed, 36 insertions(+), 8 deletions(-) diff --git a/api/include/opentelemetry/trace/trace_flags.h b/api/include/opentelemetry/trace/trace_flags.h index ce8686a836..98099fcc6b 100644 --- a/api/include/opentelemetry/trace/trace_flags.h +++ b/api/include/opentelemetry/trace/trace_flags.h @@ -18,8 +18,10 @@ namespace trace class TraceFlags final { public: + /** See https://www.w3.org/TR/trace-context-1/#trace-flags */ static constexpr uint8_t kIsSampled = 1; - static constexpr uint8_t kIsRandom = 2; + /** See https://www.w3.org/TR/trace-context-2/#trace-flags */ + static constexpr uint8_t kIsRandom = 2; TraceFlags() noexcept : rep_{0} {} diff --git a/sdk/include/opentelemetry/sdk/trace/id_generator.h b/sdk/include/opentelemetry/sdk/trace/id_generator.h index bd807ff89a..8e868efce5 100644 --- a/sdk/include/opentelemetry/sdk/trace/id_generator.h +++ b/sdk/include/opentelemetry/sdk/trace/id_generator.h @@ -16,8 +16,9 @@ namespace trace /** IdGenerator provides an interface for generating Trace Id and Span Id */ class IdGenerator { - public: + IdGenerator(bool is_random) : is_random_(is_random) {} + virtual ~IdGenerator() = default; /** Returns a SpanId represented by opaque 128-bit trace identifier */ @@ -25,6 +26,14 @@ class IdGenerator /** Returns a TraceId represented by opaque 64-bit trace identifier */ virtual opentelemetry::trace::TraceId GenerateTraceId() noexcept = 0; + + bool IsRandom() const { return is_random_; } + +private: + /** True if GenerateTraceId() is random, + * per https://www.w3.org/TR/trace-context-2/#random-trace-id-flag + */ + bool is_random_; }; } // namespace trace diff --git a/sdk/include/opentelemetry/sdk/trace/random_id_generator.h b/sdk/include/opentelemetry/sdk/trace/random_id_generator.h index f06f02f5e7..a2adcf55f7 100644 --- a/sdk/include/opentelemetry/sdk/trace/random_id_generator.h +++ b/sdk/include/opentelemetry/sdk/trace/random_id_generator.h @@ -15,6 +15,8 @@ namespace trace class RandomIdGenerator : public IdGenerator { public: + RandomIdGenerator() : IdGenerator(true) {} + opentelemetry::trace::SpanId GenerateSpanId() noexcept override; opentelemetry::trace::TraceId GenerateTraceId() noexcept override; diff --git a/sdk/src/trace/span.cc b/sdk/src/trace/span.cc index 25708cddd9..ca3406a154 100644 --- a/sdk/src/trace/span.cc +++ b/sdk/src/trace/span.cc @@ -70,6 +70,8 @@ Span::Span(std::shared_ptr &&tracer, ? parent_span_context.span_id() : opentelemetry::trace::SpanId()); + recordable_->SetTraceFlags(span_context_->trace_flags()); + attributes.ForEachKeyValue([&](nostd::string_view key, common::AttributeValue value) noexcept { recordable_->SetAttribute(key, value); return true; diff --git a/sdk/src/trace/tracer.cc b/sdk/src/trace/tracer.cc index c722d60326..438a1e1f4b 100644 --- a/sdk/src/trace/tracer.cc +++ b/sdk/src/trace/tracer.cc @@ -52,26 +52,36 @@ nostd::shared_ptr Tracer::StartSpan( } } + IdGenerator &generator = GetIdGenerator(); opentelemetry::trace::TraceId trace_id; - opentelemetry::trace::SpanId span_id = GetIdGenerator().GenerateSpanId(); + opentelemetry::trace::SpanId span_id = generator.GenerateSpanId(); bool is_parent_span_valid = false; + uint8_t flags = 0; if (parent_context.IsValid()) { trace_id = parent_context.trace_id(); + flags = parent_context.trace_flags().flags(); is_parent_span_valid = true; } else { - trace_id = GetIdGenerator().GenerateTraceId(); + trace_id = generator.GenerateTraceId(); + if (generator.IsRandom()) + { + flags = opentelemetry::trace::TraceFlags::kIsRandom; + } } + /* TODO: investigate if ShouldSample needs to know if trace_id is kIsRandom ? */ auto sampling_result = context_->GetSampler().ShouldSample(parent_context, trace_id, name, options.kind, attributes, links); - auto trace_flags = - sampling_result.IsSampled() - ? opentelemetry::trace::TraceFlags{opentelemetry::trace::TraceFlags::kIsSampled} - : opentelemetry::trace::TraceFlags{}; + if (sampling_result.IsSampled()) + { + flags |= opentelemetry::trace::TraceFlags::kIsSampled; + } + + opentelemetry::trace::TraceFlags trace_flags(flags); auto span_context = std::unique_ptr(new opentelemetry::trace::SpanContext( diff --git a/sdk/test/trace/tracer_test.cc b/sdk/test/trace/tracer_test.cc index 61ad24be1d..78bdbc9a43 100644 --- a/sdk/test/trace/tracer_test.cc +++ b/sdk/test/trace/tracer_test.cc @@ -71,6 +71,9 @@ class MockSampler final : public Sampler */ class MockIdGenerator : public IdGenerator { +public: + MockIdGenerator() : IdGenerator(false) {} + opentelemetry::trace::SpanId GenerateSpanId() noexcept override { return opentelemetry::trace::SpanId(buf_span); From e74c8f33f65451264d5e2331cf36e66cb05cfd1f Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Fri, 12 Jan 2024 22:51:28 +0100 Subject: [PATCH 4/9] Fix ETW --- .../opentelemetry/exporters/etw/etw_random_id_generator.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h b/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h index c347c44f92..f1942386fa 100644 --- a/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h +++ b/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h @@ -17,6 +17,8 @@ namespace trace class ETWRandomIdGenerator : public IdGenerator { +public: + ETWRandomIdGenerator() : IdGenerator(true) {} opentelemetry::trace::SpanId GenerateSpanId() noexcept override { From 556642885439f9ced8d3678ec73803159d236975 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Fri, 12 Jan 2024 23:05:20 +0100 Subject: [PATCH 5/9] ETW tests --- 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 a7aa6b168b..a546309b84 100644 --- a/exporters/etw/test/etw_tracer_test.cc +++ b/exporters/etw/test/etw_tracer_test.cc @@ -28,6 +28,9 @@ std::string getTemporaryValue() */ class MockIdGenerator : public sdk::trace::IdGenerator { +public: + MockIdGenerator() : sdk::trace::IdGenerator(false) {} + opentelemetry::trace::SpanId GenerateSpanId() noexcept override { return opentelemetry::trace::SpanId(buf_span); From d88131f4ec923fd9451eec04ee3badb953b41a7a Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Fri, 12 Jan 2024 23:55:04 +0100 Subject: [PATCH 6/9] Cleanup --- api/include/opentelemetry/trace/trace_flags.h | 18 +++++++++++++++--- sdk/src/trace/tracer.cc | 13 ++++++++++++- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/api/include/opentelemetry/trace/trace_flags.h b/api/include/opentelemetry/trace/trace_flags.h index 98099fcc6b..fe62c7036a 100644 --- a/api/include/opentelemetry/trace/trace_flags.h +++ b/api/include/opentelemetry/trace/trace_flags.h @@ -18,10 +18,22 @@ namespace trace class TraceFlags final { public: - /** See https://www.w3.org/TR/trace-context-1/#trace-flags */ static constexpr uint8_t kIsSampled = 1; - /** See https://www.w3.org/TR/trace-context-2/#trace-flags */ - static constexpr uint8_t kIsRandom = 2; + static constexpr uint8_t kIsRandom = 2; + + /** + * Valid flags in W3C Trace Context version 1. + * kIsSampled. + * See https://www.w3.org/TR/trace-context-1/#trace-flags + */ + static constexpr uint8_t kAllW3CTraceContext1Flags = 0x01; + + /** + * Valid flags in W3C Trace Context version 2. + * kIsSampled, kIsRandom. + * See https://www.w3.org/TR/trace-context-1/#trace-flags + */ + static constexpr uint8_t kAllW3CTraceContext2Flags = 0x03; TraceFlags() noexcept : rep_{0} {} diff --git a/sdk/src/trace/tracer.cc b/sdk/src/trace/tracer.cc index 438a1e1f4b..838eca88c7 100644 --- a/sdk/src/trace/tracer.cc +++ b/sdk/src/trace/tracer.cc @@ -73,7 +73,6 @@ nostd::shared_ptr Tracer::StartSpan( } } - /* TODO: investigate if ShouldSample needs to know if trace_id is kIsRandom ? */ auto sampling_result = context_->GetSampler().ShouldSample(parent_context, trace_id, name, options.kind, attributes, links); if (sampling_result.IsSampled()) @@ -81,6 +80,18 @@ nostd::shared_ptr Tracer::StartSpan( flags |= opentelemetry::trace::TraceFlags::kIsSampled; } +#if 1 + /* https://github.com/open-telemetry/opentelemetry-specification as of v1.29.0 */ + /* Support W3C Trace Context version 1. */ + flags &= opentelemetry::trace::TraceFlags::kAllW3CTraceContext1Flags; +#endif + +#if 0 + /* Waiting for https://github.com/open-telemetry/opentelemetry-specification/issues/3411 */ + /* Support W3C Trace Context version 2. */ + flags &= opentelemetry::trace::TraceFlags::kAllW3CTraceContext2Flags; +#endif + opentelemetry::trace::TraceFlags trace_flags(flags); auto span_context = From dfe7626e0578e99206f22c1741db5a42aad496d6 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Tue, 16 Jan 2024 22:42:02 +0100 Subject: [PATCH 7/9] Cleanup, changelog. --- CHANGELOG.md | 2 ++ api/include/opentelemetry/trace/trace_flags.h | 6 ++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8379620fb..89624f88cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ Increment the: [#2450](https://github.com/open-telemetry/opentelemetry-cpp/pull/2450) * [EXPORTER] Set `is_monotonic` flag for Observable Counters [#2478](https://github.com/open-telemetry/opentelemetry-cpp/pull/2478) +* [PROTO] Upgrade to opentelemetry-proto v1.1.0 + [#2488](https://github.com/open-telemetry/opentelemetry-cpp/pull/2488) Important changes: diff --git a/api/include/opentelemetry/trace/trace_flags.h b/api/include/opentelemetry/trace/trace_flags.h index fe62c7036a..0ad9dc136b 100644 --- a/api/include/opentelemetry/trace/trace_flags.h +++ b/api/include/opentelemetry/trace/trace_flags.h @@ -23,17 +23,15 @@ class TraceFlags final /** * Valid flags in W3C Trace Context version 1. - * kIsSampled. * See https://www.w3.org/TR/trace-context-1/#trace-flags */ - static constexpr uint8_t kAllW3CTraceContext1Flags = 0x01; + static constexpr uint8_t kAllW3CTraceContext1Flags = kIsSampled; /** * Valid flags in W3C Trace Context version 2. - * kIsSampled, kIsRandom. * See https://www.w3.org/TR/trace-context-1/#trace-flags */ - static constexpr uint8_t kAllW3CTraceContext2Flags = 0x03; + static constexpr uint8_t kAllW3CTraceContext2Flags = kIsSampled | kIsRandom; TraceFlags() noexcept : rep_{0} {} From 44716aa80923aa760dbf80cf4dc722560d3a09cc Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Tue, 16 Jan 2024 23:06:10 +0100 Subject: [PATCH 8/9] Added missing doxygen doc. --- sdk/include/opentelemetry/sdk/trace/span_data.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sdk/include/opentelemetry/sdk/trace/span_data.h b/sdk/include/opentelemetry/sdk/trace/span_data.h index 53f965c3f9..a7f8ccc4be 100644 --- a/sdk/include/opentelemetry/sdk/trace/span_data.h +++ b/sdk/include/opentelemetry/sdk/trace/span_data.h @@ -136,6 +136,10 @@ class SpanData final : public Recordable */ opentelemetry::nostd::string_view GetName() const noexcept { return name_; } + /** + * Get the trace flags for this span + * @return the trace flags for this span + */ opentelemetry::trace::TraceFlags GetFlags() const noexcept { return flags_; } /** From cbeb840d69710ee08063db71223b8a306c939add Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Tue, 16 Jan 2024 23:20:15 +0100 Subject: [PATCH 9/9] Be conservative for GUID based trace id random number generator, set IsRandom flag to false. --- .../opentelemetry/exporters/etw/etw_random_id_generator.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h b/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h index f1942386fa..aa23e6f81b 100644 --- a/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h +++ b/exporters/etw/include/opentelemetry/exporters/etw/etw_random_id_generator.h @@ -18,7 +18,7 @@ namespace trace class ETWRandomIdGenerator : public IdGenerator { public: - ETWRandomIdGenerator() : IdGenerator(true) {} + ETWRandomIdGenerator() : IdGenerator(false) {} opentelemetry::trace::SpanId GenerateSpanId() noexcept override {