NVIDIA DeepStream SDK API Reference

9.2 Release
includes/opentelemetry/sdk/metrics/metric_reader.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 <atomic>
7 #include <chrono>
8 
9 #include "opentelemetry/nostd/function_ref.h"
10 #include "opentelemetry/sdk/metrics/export/metric_producer.h"
11 #include "opentelemetry/sdk/metrics/instruments.h"
12 #include "opentelemetry/version.h"
13 
15 namespace sdk
16 {
17 namespace metrics
18 {
23 {
24 public:
25  MetricReader();
26 
27  void SetMetricProducer(MetricProducer *metric_producer);
28 
33  bool Collect(nostd::function_ref<bool(ResourceMetrics &metric_data)> callback) noexcept;
34 
42  InstrumentType instrument_type) const noexcept = 0;
43 
47  bool Shutdown(std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept;
48 
52  bool ForceFlush(std::chrono::microseconds timeout = (std::chrono::microseconds::max)()) noexcept;
53 
57  bool IsShutdown() const noexcept;
58 
59  virtual ~MetricReader() = default;
60 
61 private:
62  virtual bool OnForceFlush(std::chrono::microseconds timeout) noexcept = 0;
63 
64  virtual bool OnShutDown(std::chrono::microseconds timeout) noexcept = 0;
65 
66  virtual void OnInitialized() noexcept {}
67 
68 protected:
69 private:
70  MetricProducer *metric_producer_;
71  std::atomic<bool> shutdown_{false};
72 };
73 } // namespace metrics
74 } // namespace sdk
nostd::function_ref
Definition: includes/opentelemetry/nostd/function_ref.h:17
sdk::metrics::MetricReader
MetricReader defines the interface to collect metrics from SDK.
Definition: includes/opentelemetry/sdk/metrics/metric_reader.h:22
sdk::metrics::MetricReader::SetMetricProducer
void SetMetricProducer(MetricProducer *metric_producer)
sdk::metrics::MetricReader::GetAggregationTemporality
virtual AggregationTemporality GetAggregationTemporality(InstrumentType instrument_type) const noexcept=0
Get the AggregationTemporality for given Instrument Type for this reader.
sdk::metrics::AggregationTemporality
AggregationTemporality
Definition: includes/opentelemetry/sdk/metrics/instruments.h:54
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
sdk::metrics::MetricReader::IsShutdown
bool IsShutdown() const noexcept
Return the status of Metric reader.
sdk::metrics::MetricReader::Collect
bool Collect(nostd::function_ref< bool(ResourceMetrics &metric_data)> callback) noexcept
Collect the metrics from SDK.
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::MetricReader::~MetricReader
virtual ~MetricReader()=default
sdk::metrics::ResourceMetrics
Definition: includes/opentelemetry/sdk/metrics/export/metric_producer.h:55
max
int max(int a, int b)
Compute the component-wise maximum.
Definition: sources/libs/nvmultiobjecttracker/include/modules/cuDCFv2/helper_math.h:60
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
sdk
Definition: includes/opentelemetry/sdk/common/atomic_shared_ptr.h:13
metrics
Definition: includes/opentelemetry/metrics/async_instruments.h:10
sdk::metrics::MetricReader::ForceFlush
bool ForceFlush(std::chrono::microseconds timeout=(std::chrono::microseconds::max)()) noexcept
Force flush the metric read by the reader.
sdk::metrics::InstrumentType
InstrumentType
Definition: includes/opentelemetry/sdk/metrics/instruments.h:19
sdk::metrics::MetricReader::Shutdown
bool Shutdown(std::chrono::microseconds timeout=(std::chrono::microseconds::max)()) noexcept
Shutdown the metric reader.
sdk::metrics::MetricReader::MetricReader
MetricReader()