From 210aae774604df124df28b60c6e888cb7499105a Mon Sep 17 00:00:00 2001 From: Lalit Bhasin Date: Sun, 15 Nov 2020 18:36:47 +0530 Subject: [PATCH 1/3] samplers --- sdk/include/opentelemetry/sdk/trace/sampler.h | 3 ++- sdk/include/opentelemetry/sdk/trace/samplers/always_off.h | 3 ++- sdk/include/opentelemetry/sdk/trace/samplers/always_on.h | 3 ++- sdk/include/opentelemetry/sdk/trace/samplers/parent.h | 3 ++- .../opentelemetry/sdk/trace/samplers/trace_id_ratio.h | 3 ++- sdk/src/trace/samplers/parent.cc | 5 +++-- sdk/src/trace/samplers/trace_id_ratio.cc | 3 ++- 7 files changed, 15 insertions(+), 8 deletions(-) diff --git a/sdk/include/opentelemetry/sdk/trace/sampler.h b/sdk/include/opentelemetry/sdk/trace/sampler.h index dc084dca22..fd86d3f28b 100644 --- a/sdk/include/opentelemetry/sdk/trace/sampler.h +++ b/sdk/include/opentelemetry/sdk/trace/sampler.h @@ -70,7 +70,8 @@ class Sampler trace_api::TraceId trace_id, nostd::string_view name, trace_api::SpanKind span_kind, - const opentelemetry::common::KeyValueIterable &attributes) noexcept = 0; + const opentelemetry::common::KeyValueIterable &attributes, + const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept = 0; /** * Returns the sampler name or short description with the configuration. diff --git a/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h b/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h index 7fd862be89..c0a7b95d2e 100644 --- a/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h +++ b/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h @@ -24,7 +24,8 @@ class AlwaysOffSampler : public Sampler trace_api::TraceId /*trace_id*/, nostd::string_view /*name*/, trace_api::SpanKind /*span_kind*/, - const opentelemetry::common::KeyValueIterable & /*attributes*/) noexcept override + const opentelemetry::common::KeyValueIterable & /*attributes*/, + const trace_api::SpanContextKeyValueIterable & /*links*/ ) noexcept override { return {Decision::DROP, nullptr}; } diff --git a/sdk/include/opentelemetry/sdk/trace/samplers/always_on.h b/sdk/include/opentelemetry/sdk/trace/samplers/always_on.h index 0a75eb1e00..fb5396e206 100644 --- a/sdk/include/opentelemetry/sdk/trace/samplers/always_on.h +++ b/sdk/include/opentelemetry/sdk/trace/samplers/always_on.h @@ -23,7 +23,8 @@ class AlwaysOnSampler : public Sampler trace_api::TraceId /*trace_id*/, nostd::string_view /*name*/, trace_api::SpanKind /*span_kind*/, - const opentelemetry::common::KeyValueIterable & /*attributes*/) noexcept override + const opentelemetry::common::KeyValueIterable & /*attributes*/, + const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept override { return {Decision::RECORD_AND_SAMPLE, nullptr}; } diff --git a/sdk/include/opentelemetry/sdk/trace/samplers/parent.h b/sdk/include/opentelemetry/sdk/trace/samplers/parent.h index 91337bd497..4d30e8d121 100644 --- a/sdk/include/opentelemetry/sdk/trace/samplers/parent.h +++ b/sdk/include/opentelemetry/sdk/trace/samplers/parent.h @@ -27,7 +27,8 @@ class ParentBasedSampler : public Sampler trace_api::TraceId trace_id, nostd::string_view name, trace_api::SpanKind span_kind, - const opentelemetry::common::KeyValueIterable &attributes) noexcept override; + const opentelemetry::common::KeyValueIterable &attributes, + const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept override; /** * @return Description MUST be ParentBased{delegate_sampler_.getDescription()} diff --git a/sdk/include/opentelemetry/sdk/trace/samplers/trace_id_ratio.h b/sdk/include/opentelemetry/sdk/trace/samplers/trace_id_ratio.h index 80be8ae80d..624316be1e 100644 --- a/sdk/include/opentelemetry/sdk/trace/samplers/trace_id_ratio.h +++ b/sdk/include/opentelemetry/sdk/trace/samplers/trace_id_ratio.h @@ -34,7 +34,8 @@ class TraceIdRatioBasedSampler : public Sampler trace_api::TraceId trace_id, nostd::string_view /*name*/, trace_api::SpanKind /*span_kind*/, - const opentelemetry::common::KeyValueIterable & /*attributes*/) noexcept override; + const opentelemetry::common::KeyValueIterable & /*attributes*/, + const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept override; /** * @return Description MUST be TraceIdRatioBasedSampler{0.000100} diff --git a/sdk/src/trace/samplers/parent.cc b/sdk/src/trace/samplers/parent.cc index 5385b3543e..f00a8bc556 100644 --- a/sdk/src/trace/samplers/parent.cc +++ b/sdk/src/trace/samplers/parent.cc @@ -15,12 +15,13 @@ SamplingResult ParentBasedSampler::ShouldSample( trace_api::TraceId trace_id, nostd::string_view name, trace_api::SpanKind span_kind, - const opentelemetry::common::KeyValueIterable &attributes) noexcept + const opentelemetry::common::KeyValueIterable &attributes, + const trace_api::SpanContextKeyValueIterable &links) noexcept { if (!parent_context.IsValid()) { // If no parent (root span) exists returns the result of the delegateSampler - return delegate_sampler_->ShouldSample(parent_context, trace_id, name, span_kind, attributes); + return delegate_sampler_->ShouldSample(parent_context, trace_id, name, span_kind, attributes, links); } // If parent exists: diff --git a/sdk/src/trace/samplers/trace_id_ratio.cc b/sdk/src/trace/samplers/trace_id_ratio.cc index f20246cb55..7c154346df 100644 --- a/sdk/src/trace/samplers/trace_id_ratio.cc +++ b/sdk/src/trace/samplers/trace_id_ratio.cc @@ -88,7 +88,8 @@ SamplingResult TraceIdRatioBasedSampler::ShouldSample( trace_api::TraceId trace_id, nostd::string_view /*name*/, trace_api::SpanKind /*span_kind*/, - const opentelemetry::common::KeyValueIterable & /*attributes*/) noexcept + const opentelemetry::common::KeyValueIterable & /*attributes*/, + const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept { if (threshold_ == 0) return {Decision::DROP, nullptr}; From 24c7151492183c63d160845dadc5aa582ab078ae Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Sun, 15 Nov 2020 21:15:49 +0530 Subject: [PATCH 2/3] updates --- sdk/include/opentelemetry/sdk/trace/sampler.h | 3 +- .../sdk/trace/samplers/always_off.h | 2 +- sdk/src/trace/samplers/parent.cc | 3 +- sdk/src/trace/tracer.cc | 3 +- sdk/test/trace/always_off_sampler_test.cc | 11 +++-- sdk/test/trace/always_on_sampler_test.cc | 12 ++++- sdk/test/trace/parent_sampler_test.cc | 18 +++++--- sdk/test/trace/sampler_benchmark.cc | 8 +++- sdk/test/trace/trace_id_ratio_sampler_test.cc | 46 +++++++++++++------ sdk/test/trace/tracer_test.cc | 3 +- 10 files changed, 76 insertions(+), 33 deletions(-) diff --git a/sdk/include/opentelemetry/sdk/trace/sampler.h b/sdk/include/opentelemetry/sdk/trace/sampler.h index fd86d3f28b..f44af1057f 100644 --- a/sdk/include/opentelemetry/sdk/trace/sampler.h +++ b/sdk/include/opentelemetry/sdk/trace/sampler.h @@ -3,6 +3,7 @@ #include "opentelemetry/common/attribute_value.h" #include "opentelemetry/trace/span.h" #include "opentelemetry/trace/span_context.h" +#include "opentelemetry/trace/span_context_kv_iterable.h" #include "opentelemetry/trace/trace_id.h" #include "opentelemetry/version.h" @@ -71,7 +72,7 @@ class Sampler nostd::string_view name, trace_api::SpanKind span_kind, const opentelemetry::common::KeyValueIterable &attributes, - const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept = 0; + const trace_api::SpanContextKeyValueIterable &links) noexcept = 0; /** * Returns the sampler name or short description with the configuration. diff --git a/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h b/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h index c0a7b95d2e..f6e3221ce3 100644 --- a/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h +++ b/sdk/include/opentelemetry/sdk/trace/samplers/always_off.h @@ -25,7 +25,7 @@ class AlwaysOffSampler : public Sampler nostd::string_view /*name*/, trace_api::SpanKind /*span_kind*/, const opentelemetry::common::KeyValueIterable & /*attributes*/, - const trace_api::SpanContextKeyValueIterable & /*links*/ ) noexcept override + const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept override { return {Decision::DROP, nullptr}; } diff --git a/sdk/src/trace/samplers/parent.cc b/sdk/src/trace/samplers/parent.cc index f00a8bc556..08095398a8 100644 --- a/sdk/src/trace/samplers/parent.cc +++ b/sdk/src/trace/samplers/parent.cc @@ -21,7 +21,8 @@ SamplingResult ParentBasedSampler::ShouldSample( if (!parent_context.IsValid()) { // If no parent (root span) exists returns the result of the delegateSampler - return delegate_sampler_->ShouldSample(parent_context, trace_id, name, span_kind, attributes, links); + return delegate_sampler_->ShouldSample(parent_context, trace_id, name, span_kind, attributes, + links); } // If parent exists: diff --git a/sdk/src/trace/tracer.cc b/sdk/src/trace/tracer.cc index 0854f8b5ec..ca0590f170 100644 --- a/sdk/src/trace/tracer.cc +++ b/sdk/src/trace/tracer.cc @@ -1,5 +1,4 @@ #include "opentelemetry/sdk/trace/tracer.h" - #include "opentelemetry/context/runtime_context.h" #include "opentelemetry/nostd/shared_ptr.h" #include "opentelemetry/sdk/common/atomic_shared_ptr.h" @@ -60,7 +59,7 @@ nostd::shared_ptr Tracer::StartSpan( trace_api::SpanContext parent = GetCurrentSpanContext(options.parent); auto sampling_result = - sampler_->ShouldSample(parent, parent.trace_id(), name, options.kind, attributes); + sampler_->ShouldSample(parent, parent.trace_id(), name, options.kind, attributes, links); if (sampling_result.decision == Decision::DROP) { // Don't allocate a no-op span for every DROP decision, but use a static diff --git a/sdk/test/trace/always_off_sampler_test.cc b/sdk/test/trace/always_off_sampler_test.cc index 023cc45316..822b81f93e 100644 --- a/sdk/test/trace/always_off_sampler_test.cc +++ b/sdk/test/trace/always_off_sampler_test.cc @@ -1,6 +1,6 @@ -#include "opentelemetry/sdk/trace/samplers/always_off.h" - #include +#include "opentelemetry/sdk/trace/samplers/always_off.h" +#include "opentelemetry/trace/span_context_kv_iterable_view.h" using opentelemetry::sdk::trace::AlwaysOffSampler; using opentelemetry::sdk::trace::Decision; @@ -15,10 +15,15 @@ TEST(AlwaysOffSampler, ShouldSample) using M = std::map; M m1 = {{}}; + + using L = std::vector>>; + L l1 = {{SpanContext(false, false), {}}, {SpanContext(false, false), {}}}; + opentelemetry::common::KeyValueIterableView view{m1}; + opentelemetry::trace::SpanContextKeyValueIterableView links{l1}; auto sampling_result = - sampler.ShouldSample(SpanContext::GetInvalid(), trace_id, "", span_kind, view); + sampler.ShouldSample(SpanContext::GetInvalid(), trace_id, "", span_kind, view, links); ASSERT_EQ(Decision::DROP, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); diff --git a/sdk/test/trace/always_on_sampler_test.cc b/sdk/test/trace/always_on_sampler_test.cc index 31d3a2df01..7dad69acc4 100644 --- a/sdk/test/trace/always_on_sampler_test.cc +++ b/sdk/test/trace/always_on_sampler_test.cc @@ -1,5 +1,6 @@ #include "opentelemetry/nostd/span.h" #include "opentelemetry/sdk/trace/samplers/always_on.h" +#include "opentelemetry/trace/span_context_kv_iterable_view.h" #include #include @@ -19,11 +20,17 @@ TEST(AlwaysOnSampler, ShouldSample) trace_api::TraceId trace_id_valid(buf); std::map key_value_container = {{"key", 0}}; + using L = std::vector>>; + L l1 = {{trace_api::SpanContext(false, false), {}}, {trace_api::SpanContext(false, false), {}}}; + + opentelemetry::trace::SpanContextKeyValueIterableView links{l1}; + // Test with invalid (empty) trace id and empty parent context auto sampling_result = sampler.ShouldSample( SpanContext::GetInvalid(), trace_id_invalid, "invalid trace id test", trace_api::SpanKind::kServer, - opentelemetry::common::KeyValueIterableView>(key_value_container)); + opentelemetry::common::KeyValueIterableView>(key_value_container), + links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); @@ -32,7 +39,8 @@ TEST(AlwaysOnSampler, ShouldSample) sampling_result = sampler.ShouldSample( SpanContext::GetInvalid(), trace_id_valid, "valid trace id test", trace_api::SpanKind::kServer, - opentelemetry::common::KeyValueIterableView>(key_value_container)); + opentelemetry::common::KeyValueIterableView>(key_value_container), + links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); diff --git a/sdk/test/trace/parent_sampler_test.cc b/sdk/test/trace/parent_sampler_test.cc index 59eae3b293..ea9718bef5 100644 --- a/sdk/test/trace/parent_sampler_test.cc +++ b/sdk/test/trace/parent_sampler_test.cc @@ -3,6 +3,7 @@ #include "opentelemetry/sdk/trace/samplers/always_off.h" #include "opentelemetry/sdk/trace/samplers/always_on.h" #include "opentelemetry/sdk/trace/samplers/parent.h" +#include "opentelemetry/trace/span_context_kv_iterable_view.h" using opentelemetry::sdk::trace::AlwaysOffSampler; using opentelemetry::sdk::trace::AlwaysOnSampler; @@ -24,28 +25,33 @@ TEST(ParentBasedSampler, ShouldSample) opentelemetry::trace::SpanKind span_kind = opentelemetry::trace::SpanKind::kInternal; using M = std::map; M m1 = {{}}; + + using L = std::vector>>; + L l1 = {{trace_api::SpanContext(false, false), {}}, {trace_api::SpanContext(false, false), {}}}; + opentelemetry::common::KeyValueIterableView view{m1}; + trace_api::SpanContextKeyValueIterableView links{l1}; trace_api::SpanContext parent_context_sampled(trace_id, span_id, trace_api::TraceFlags{1}, false); trace_api::SpanContext parent_context_nonsampled(trace_id, span_id, trace_api::TraceFlags{0}, false); // Case 1: Parent doesn't exist. Return result of delegateSampler() - auto sampling_result = - sampler_off.ShouldSample(trace_api::SpanContext::GetInvalid(), trace_id, "", span_kind, view); - auto sampling_result2 = - sampler_on.ShouldSample(trace_api::SpanContext::GetInvalid(), trace_id, "", span_kind, view); + auto sampling_result = sampler_off.ShouldSample(trace_api::SpanContext::GetInvalid(), trace_id, + "", span_kind, view, links); + auto sampling_result2 = sampler_on.ShouldSample(trace_api::SpanContext::GetInvalid(), trace_id, + "", span_kind, view, links); ASSERT_EQ(Decision::DROP, sampling_result.decision); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result2.decision); // Case 2: Parent exists and SampledFlag is true auto sampling_result3 = - sampler_off.ShouldSample(parent_context_sampled, trace_id, "", span_kind, view); + sampler_off.ShouldSample(parent_context_sampled, trace_id, "", span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result3.decision); // Case 3: Parent exists and SampledFlag is false auto sampling_result4 = - sampler_on.ShouldSample(parent_context_nonsampled, trace_id, "", span_kind, view); + sampler_on.ShouldSample(parent_context_nonsampled, trace_id, "", span_kind, view, links); ASSERT_EQ(Decision::DROP, sampling_result4.decision); } diff --git a/sdk/test/trace/sampler_benchmark.cc b/sdk/test/trace/sampler_benchmark.cc index f8d59a315b..4d31d0f43f 100644 --- a/sdk/test/trace/sampler_benchmark.cc +++ b/sdk/test/trace/sampler_benchmark.cc @@ -64,12 +64,18 @@ void BenchmarkShouldSampler(Sampler &sampler, benchmark::State &state) using M = std::map; M m1 = {{}}; + + using L = std::vector>>; + L l1 = {{trace_api::SpanContext(false, false), {}}, {trace_api::SpanContext(false, false), {}}}; + opentelemetry::common::KeyValueIterableView view{m1}; + trace_api::SpanContextKeyValueIterableView links{l1}; while (state.KeepRunning()) { auto invalid_ctx = SpanContext::GetInvalid(); - benchmark::DoNotOptimize(sampler.ShouldSample(invalid_ctx, trace_id, "", span_kind, view)); + benchmark::DoNotOptimize( + sampler.ShouldSample(invalid_ctx, trace_id, "", span_kind, view, links)); } } diff --git a/sdk/test/trace/trace_id_ratio_sampler_test.cc b/sdk/test/trace/trace_id_ratio_sampler_test.cc index f60c002804..ff711630fa 100644 --- a/sdk/test/trace/trace_id_ratio_sampler_test.cc +++ b/sdk/test/trace/trace_id_ratio_sampler_test.cc @@ -1,4 +1,5 @@ #include "opentelemetry/sdk/trace/samplers/trace_id_ratio.h" +#include "opentelemetry/trace/span_context_kv_iterable_view.h" #include "src/common/random.h" #include @@ -34,7 +35,12 @@ int RunShouldSampleCountDecision(trace_api::SpanContext &context, using M = std::map; M m1 = {{}}; + + using L = std::vector>>; + L l1 = {{trace_api::SpanContext(false, false), {}}, {trace_api::SpanContext(false, false), {}}}; + opentelemetry::common::KeyValueIterableView view{m1}; + trace_api::SpanContextKeyValueIterableView links{l1}; for (int i = 0; i < iterations; ++i) { @@ -43,7 +49,7 @@ int RunShouldSampleCountDecision(trace_api::SpanContext &context, opentelemetry::trace::TraceId trace_id(buf); - auto result = sampler.ShouldSample(context, trace_id, "", span_kind, view); + auto result = sampler.ShouldSample(context, trace_id, "", span_kind, view, links); if (result.decision == Decision::RECORD_AND_SAMPLE) { ++actual_count; @@ -62,12 +68,17 @@ TEST(TraceIdRatioBasedSampler, ShouldSampleWithoutContext) using M = std::map; M m1 = {{}}; + + using L = std::vector>>; + L l1 = {{trace_api::SpanContext(false, false), {}}, {trace_api::SpanContext(false, false), {}}}; + opentelemetry::common::KeyValueIterableView view{m1}; + trace_api::SpanContextKeyValueIterableView links{l1}; TraceIdRatioBasedSampler s1(0.01); - auto sampling_result = - s1.ShouldSample(trace_api::SpanContext::GetInvalid(), invalid_trace_id, "", span_kind, view); + auto sampling_result = s1.ShouldSample(trace_api::SpanContext::GetInvalid(), invalid_trace_id, "", + span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); @@ -75,32 +86,32 @@ TEST(TraceIdRatioBasedSampler, ShouldSampleWithoutContext) constexpr uint8_t buf[] = {0, 0, 0, 0, 0, 0, 0, 0x80, 0, 0, 0, 0, 0, 0, 0, 0}; opentelemetry::trace::TraceId valid_trace_id(buf); - sampling_result = - s1.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", span_kind, view); + sampling_result = s1.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", + span_kind, view, links); ASSERT_EQ(Decision::DROP, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); TraceIdRatioBasedSampler s2(0.50000001); - sampling_result = - s2.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", span_kind, view); + sampling_result = s2.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", + span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); TraceIdRatioBasedSampler s3(0.49999999); - sampling_result = - s3.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", span_kind, view); + sampling_result = s3.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", + span_kind, view, links); ASSERT_EQ(Decision::DROP, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); TraceIdRatioBasedSampler s4(0.50000000); - sampling_result = - s4.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", span_kind, view); + sampling_result = s4.ShouldSample(trace_api::SpanContext::GetInvalid(), valid_trace_id, "", + span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); @@ -122,26 +133,31 @@ TEST(TraceIdRatioBasedSampler, ShouldSampleWithContext) using M = std::map; M m1 = {{}}; + + using L = std::vector>>; + L l1 = {{trace_api::SpanContext(false, false), {}}, {trace_api::SpanContext(false, false), {}}}; + opentelemetry::common::KeyValueIterableView view{m1}; + trace_api::SpanContextKeyValueIterableView links{l1}; TraceIdRatioBasedSampler s1(0.01); - auto sampling_result = s1.ShouldSample(c1, trace_id, "", span_kind, view); + auto sampling_result = s1.ShouldSample(c1, trace_id, "", span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); - sampling_result = s1.ShouldSample(c2, trace_id, "", span_kind, view); + sampling_result = s1.ShouldSample(c2, trace_id, "", span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); - sampling_result = s1.ShouldSample(c3, trace_id, "", span_kind, view); + sampling_result = s1.ShouldSample(c3, trace_id, "", span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); - sampling_result = s1.ShouldSample(c4, trace_id, "", span_kind, view); + sampling_result = s1.ShouldSample(c4, trace_id, "", span_kind, view, links); ASSERT_EQ(Decision::RECORD_AND_SAMPLE, sampling_result.decision); ASSERT_EQ(nullptr, sampling_result.attributes); diff --git a/sdk/test/trace/tracer_test.cc b/sdk/test/trace/tracer_test.cc index 22160617df..45a5bfc020 100644 --- a/sdk/test/trace/tracer_test.cc +++ b/sdk/test/trace/tracer_test.cc @@ -29,7 +29,8 @@ class MockSampler final : public Sampler trace_api::TraceId /*trace_id*/, nostd::string_view /*name*/, trace_api::SpanKind /*span_kind*/, - const opentelemetry::common::KeyValueIterable & /*attributes*/) noexcept override + const opentelemetry::common::KeyValueIterable & /*attributes*/, + const opentelemetry::trace::SpanContextKeyValueIterable & /*links*/) noexcept override { // Return two pairs of attributes. These attributes should be added to the // span attributes From 7a64e53fad5e6e8d2ac6b7779babc614c9ce660c Mon Sep 17 00:00:00 2001 From: Lalit Kumar Bhasin Date: Mon, 16 Nov 2020 16:56:23 +0530 Subject: [PATCH 3/3] nit comment --- sdk/include/opentelemetry/sdk/trace/samplers/parent.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/include/opentelemetry/sdk/trace/samplers/parent.h b/sdk/include/opentelemetry/sdk/trace/samplers/parent.h index 4d30e8d121..2341827854 100644 --- a/sdk/include/opentelemetry/sdk/trace/samplers/parent.h +++ b/sdk/include/opentelemetry/sdk/trace/samplers/parent.h @@ -28,7 +28,7 @@ class ParentBasedSampler : public Sampler nostd::string_view name, trace_api::SpanKind span_kind, const opentelemetry::common::KeyValueIterable &attributes, - const trace_api::SpanContextKeyValueIterable & /*links*/) noexcept override; + const trace_api::SpanContextKeyValueIterable &links) noexcept override; /** * @return Description MUST be ParentBased{delegate_sampler_.getDescription()}