NVIDIA DeepStream SDK API Reference

9.2 Release
includes/opentelemetry/sdk/trace/samplers/parent.h
Go to the documentation of this file.
1 // Copyright The OpenTelemetry Authors
2 // SPDX-License-Identifier: Apache-2.0
3 
4 #pragma once
5 
6 #include <memory>
7 #include <string>
8 
9 #include "opentelemetry/common/key_value_iterable.h"
10 #include "opentelemetry/nostd/string_view.h"
11 #include "opentelemetry/sdk/trace/sampler.h"
12 #include "opentelemetry/sdk/trace/samplers/always_off.h"
13 #include "opentelemetry/sdk/trace/samplers/always_on.h"
14 #include "opentelemetry/trace/span_context.h"
15 #include "opentelemetry/trace/span_metadata.h"
16 #include "opentelemetry/trace/trace_id.h"
17 #include "opentelemetry/version.h"
18 
20 namespace sdk
21 {
22 namespace trace
23 {
24 
41 {
42 public:
43  explicit ParentBasedSampler(const std::shared_ptr<Sampler> &root_sampler,
44  const std::shared_ptr<Sampler> &remote_parent_sampled_sampler =
45  std::make_shared<AlwaysOnSampler>(),
46  const std::shared_ptr<Sampler> &remote_parent_nonsampled_sampler =
47  std::make_shared<AlwaysOffSampler>(),
48  const std::shared_ptr<Sampler> &local_parent_sampled_sampler =
49  std::make_shared<AlwaysOnSampler>(),
50  const std::shared_ptr<Sampler> &local_parent_nonsampled_sampler =
51  std::make_shared<AlwaysOffSampler>()) noexcept;
52 
58  const opentelemetry::trace::SpanContext &parent_context,
59  opentelemetry::trace::TraceId trace_id,
60  nostd::string_view name,
62  const opentelemetry::common::KeyValueIterable &attributes,
63  const opentelemetry::trace::SpanContextKeyValueIterable &links) noexcept override;
64 
68  nostd::string_view GetDescription() const noexcept override;
69 
70 private:
71  const std::shared_ptr<Sampler> root_sampler_;
72  const std::shared_ptr<Sampler> remote_parent_sampled_sampler_;
73  const std::shared_ptr<Sampler> remote_parent_nonsampled_sampler_;
74  const std::shared_ptr<Sampler> local_parent_sampled_sampler_;
75  const std::shared_ptr<Sampler> local_parent_nonsampled_sampler_;
76  const std::string description_;
77 };
78 
79 } // namespace trace
80 } // namespace sdk
trace
Definition: includes/opentelemetry/context/context_value.h:18
sdk::trace::ParentBasedSampler
The ParentBased sampler is a composite sampler that delegates sampling decisions based on the parent ...
Definition: includes/opentelemetry/sdk/trace/samplers/parent.h:40
sdk::trace::Sampler
The Sampler interface allows users to create custom samplers which will return a SamplingResult based...
Definition: includes/opentelemetry/sdk/trace/sampler.h:71
sdk::trace::ParentBasedSampler::GetDescription
nostd::string_view GetDescription() const noexcept override
trace::SpanKind
SpanKind
Definition: includes/opentelemetry/trace/span_metadata.h:13
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
sdk::trace::ParentBasedSampler::ShouldSample
SamplingResult ShouldSample(const opentelemetry::trace::SpanContext &parent_context, opentelemetry::trace::TraceId trace_id, nostd::string_view name, opentelemetry::trace::SpanKind span_kind, const opentelemetry::common::KeyValueIterable &attributes, const opentelemetry::trace::SpanContextKeyValueIterable &links) noexcept override
Implements the decision logic by checking the parent context and delegating to the appropriate config...
sdk
Definition: includes/opentelemetry/sdk/common/atomic_shared_ptr.h:13
sdk::trace::SamplingResult
The output of ShouldSample.
Definition: includes/opentelemetry/sdk/trace/sampler.h:52
sdk::trace::ParentBasedSampler::ParentBasedSampler
ParentBasedSampler(const std::shared_ptr< Sampler > &root_sampler, const std::shared_ptr< Sampler > &remote_parent_sampled_sampler=std::make_shared< AlwaysOnSampler >(), const std::shared_ptr< Sampler > &remote_parent_nonsampled_sampler=std::make_shared< AlwaysOffSampler >(), const std::shared_ptr< Sampler > &local_parent_sampled_sampler=std::make_shared< AlwaysOnSampler >(), const std::shared_ptr< Sampler > &local_parent_nonsampled_sampler=std::make_shared< AlwaysOffSampler >()) noexcept
nostd::string_view
Back port of std::string_view to work with pre-cpp-17 compilers.
Definition: includes/opentelemetry/nostd/string_view.h:37