NVIDIA DeepStream SDK API Reference

9.2 Release
includes/opentelemetry/sdk/metrics/state/observable_registry.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 <mutex>
8 #include <vector>
9 
10 #include "opentelemetry/common/timestamp.h"
11 #include "opentelemetry/metrics/async_instruments.h"
12 #include "opentelemetry/version.h"
13 
15 namespace sdk
16 {
17 namespace metrics
18 {
19 
21 {
23  void *state;
24  opentelemetry::metrics::ObservableInstrument *instrument;
25 };
26 
28 {
29 public:
31  void *state,
32  opentelemetry::metrics::ObservableInstrument *instrument);
33 
35  void *state,
36  opentelemetry::metrics::ObservableInstrument *instrument);
37 
38  void CleanupCallback(opentelemetry::metrics::ObservableInstrument *instrument);
39 
40  void Observe(opentelemetry::common::SystemTimestamp collection_ts);
41 
42 private:
43  std::vector<std::unique_ptr<ObservableCallbackRecord>> callbacks_;
44  std::mutex callbacks_m_;
45 };
46 
47 } // namespace metrics
48 } // namespace sdk
sdk::metrics::ObservableRegistry::RemoveCallback
void RemoveCallback(opentelemetry::metrics::ObservableCallbackPtr callback, void *state, opentelemetry::metrics::ObservableInstrument *instrument)
sdk::metrics::ObservableRegistry::Observe
void Observe(opentelemetry::common::SystemTimestamp collection_ts)
OPENTELEMETRY_BEGIN_NAMESPACE
#define OPENTELEMETRY_BEGIN_NAMESPACE
Definition: includes/opentelemetry/version.h:21
sdk::metrics::ObservableRegistry::CleanupCallback
void CleanupCallback(opentelemetry::metrics::ObservableInstrument *instrument)
metrics::ObservableCallbackPtr
void(*)(ObserverResult, void *) ObservableCallbackPtr
Definition: includes/opentelemetry/metrics/async_instruments.h:13
sdk::metrics::ObservableRegistry::AddCallback
void AddCallback(opentelemetry::metrics::ObservableCallbackPtr callback, void *state, opentelemetry::metrics::ObservableInstrument *instrument)
OPENTELEMETRY_END_NAMESPACE
#define OPENTELEMETRY_END_NAMESPACE
Definition: includes/opentelemetry/version.h:24
sdk::metrics::ObservableCallbackRecord::state
void * state
Definition: includes/opentelemetry/sdk/metrics/state/observable_registry.h:23
sdk::metrics::ObservableCallbackRecord::instrument
opentelemetry::metrics::ObservableInstrument * instrument
Definition: includes/opentelemetry/sdk/metrics/state/observable_registry.h:24
sdk::metrics::ObservableCallbackRecord
Definition: includes/opentelemetry/sdk/metrics/state/observable_registry.h:20
sdk::metrics::ObservableRegistry
Definition: includes/opentelemetry/sdk/metrics/state/observable_registry.h:27
sdk
Definition: includes/opentelemetry/sdk/common/atomic_shared_ptr.h:13
metrics
Definition: includes/opentelemetry/metrics/async_instruments.h:10
sdk::metrics::ObservableCallbackRecord::callback
opentelemetry::metrics::ObservableCallbackPtr callback
Definition: includes/opentelemetry/sdk/metrics/state/observable_registry.h:22