NVIDIA DeepStream SDK API Reference

9.2 Release
includes/opentelemetry/sdk/metrics/export/metric_producer.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 <utility>
8 #include <vector>
9 
10 #include "opentelemetry/nostd/function_ref.h"
11 #include "opentelemetry/nostd/variant.h"
12 #include "opentelemetry/sdk/metrics/data/metric_data.h"
13 #include "opentelemetry/sdk/metrics/export/metric_filter.h"
14 #include "opentelemetry/version.h"
15 
17 namespace sdk
18 {
19 namespace resource
20 {
21 class Resource;
22 } // namespace resource
23 
24 namespace instrumentationscope
25 {
26 class InstrumentationScope;
27 } // namespace instrumentationscope
28 
29 namespace metrics
30 {
31 
37 {
38  const opentelemetry::sdk::instrumentationscope::InstrumentationScope *scope_ = nullptr;
39  std::vector<MetricData> metric_data_;
40 
41  template <class ScopePtr, class MetricDataType>
42  inline ScopeMetrics(ScopePtr &&scope, MetricDataType &&metric)
43  : scope_{std::forward<ScopePtr>(scope)}, metric_data_{std::forward<MetricDataType>(metric)}
44  {}
45 
46  inline ScopeMetrics() {}
47  inline ScopeMetrics(const ScopeMetrics &) = default;
48  inline ScopeMetrics(ScopeMetrics &&) = default;
49 
50  inline ScopeMetrics &operator=(const ScopeMetrics &) = default;
51 
52  inline ScopeMetrics &operator=(ScopeMetrics &&) = default;
53 };
54 
56 {
57  const opentelemetry::sdk::resource::Resource *resource_ = nullptr;
58  std::vector<ScopeMetrics> scope_metric_data_;
59 
60  template <class ResourcePtr, class ScopeMetricsType>
61  inline ResourceMetrics(ResourcePtr &&resource, ScopeMetricsType &&scope_metric_data)
62  : resource_{std::forward<ResourcePtr>(resource)},
63  scope_metric_data_{std::forward<ScopeMetricsType>(scope_metric_data)}
64  {}
65 
66  inline ResourceMetrics() {}
67  inline ResourceMetrics(const ResourceMetrics &) = default;
68  inline ResourceMetrics(ResourceMetrics &&) = default;
69 
70  inline ResourceMetrics &operator=(const ResourceMetrics &) = default;
71 
72  inline ResourceMetrics &operator=(ResourceMetrics &&) = default;
73 };
74 
83 {
84 public:
85  MetricProducer() = default;
86  virtual ~MetricProducer() = default;
87 
88  MetricProducer(const MetricProducer &) = delete;
89  MetricProducer(const MetricProducer &&) = delete;
90 
91  enum class Status
92  {
93  kSuccess,
94  kFailure,
95  kTimeout,
96  };
97 
98  struct Result
99  {
102  };
103 
109  virtual Result Produce() noexcept = 0;
110 };
111 
112 } // namespace metrics
113 } // namespace sdk
sdk::metrics::ResourceMetrics::resource_
const opentelemetry::sdk::resource::Resource * resource_
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:57
sdk::metrics::ResourceMetrics::operator=
ResourceMetrics & operator=(const ResourceMetrics &)=default
sdk::metrics::ScopeMetrics
Metric Data to be exported along with resources and Instrumentation scope.
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:36
sdk::metrics::ResourceMetrics::scope_metric_data_
std::vector< ScopeMetrics > scope_metric_data_
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:58
sdk::metrics::ResourceMetrics::ResourceMetrics
ResourceMetrics(ResourcePtr &&resource, ScopeMetricsType &&scope_metric_data)
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:61
sdk::metrics::MetricProducer::Status::kFailure
@ kFailure
sdk::metrics::ScopeMetrics::scope_
const opentelemetry::sdk::instrumentationscope::InstrumentationScope * scope_
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:38
sdk::metrics::ScopeMetrics::ScopeMetrics
ScopeMetrics()
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:46
sdk::metrics::MetricProducer::Produce
virtual Result Produce() noexcept=0
Produce returns a batch of Metric Points, with a single instrumentation scope that identifies the Met...
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
sdk::metrics::MetricProducer::~MetricProducer
virtual ~MetricProducer()=default
sdk::metrics::MetricProducer::Result
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:98
sdk::metrics::MetricProducer
MetricProducer defines the interface which bridges to third-party metric sources MUST implement,...
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:82
sdk::metrics::MetricProducer::Status::kTimeout
@ kTimeout
sdk::metrics::MetricProducer::Status
Status
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:91
sdk::metrics::ResourceMetrics
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:55
sdk::metrics::ScopeMetrics::ScopeMetrics
ScopeMetrics(ScopePtr &&scope, MetricDataType &&metric)
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:42
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
sdk::metrics::MetricProducer::Status::kSuccess
@ kSuccess
sdk::metrics::MetricProducer::MetricProducer
MetricProducer()=default
sdk::metrics::MetricProducer::Result::status_
Status status_
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:101
sdk::metrics::MetricProducer::Result::points_
ResourceMetrics points_
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:100
sdk::metrics::ResourceMetrics::ResourceMetrics
ResourceMetrics()
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:66
sdk
Definition: includes/opentelemetry/sdk/common/atomic_shared_ptr.h:13
metrics
Definition: includes/opentelemetry/metrics/async_instruments.h:10
sdk::metrics::ScopeMetrics::operator=
ScopeMetrics & operator=(const ScopeMetrics &)=default
sdk::metrics::ScopeMetrics::metric_data_
std::vector< MetricData > metric_data_
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:39