10 #include "opentelemetry/common/key_value_iterable.h"
11 #include "opentelemetry/context/context.h"
12 #include "opentelemetry/metrics/sync_instruments.h"
13 #include "opentelemetry/sdk/metrics/instruments.h"
14 #include "opentelemetry/sdk/metrics/state/metric_storage.h"
15 #include "opentelemetry/version.h"
27 std::unique_ptr<SyncWritableMetricStorage> storage)
33 std::unique_ptr<SyncWritableMetricStorage>
storage_;
40 std::unique_ptr<SyncWritableMetricStorage> storage);
42 void Add(uint64_t value,
43 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
45 void Add(uint64_t value,
46 const opentelemetry::common::KeyValueIterable &attributes,
47 const opentelemetry::context::Context &
context) noexcept
override;
49 void Add(uint64_t value) noexcept
override;
51 void Add(uint64_t value,
const opentelemetry::context::Context &
context) noexcept
override;
59 std::unique_ptr<SyncWritableMetricStorage> storage);
61 void Add(
double value,
62 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
63 void Add(
double value,
64 const opentelemetry::common::KeyValueIterable &attributes,
65 const opentelemetry::context::Context &
context) noexcept
override;
67 void Add(
double value) noexcept
override;
68 void Add(
double value,
const opentelemetry::context::Context &
context) noexcept
override;
75 std::unique_ptr<SyncWritableMetricStorage> storage);
77 void Add(int64_t value,
78 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
79 void Add(int64_t value,
80 const opentelemetry::common::KeyValueIterable &attributes,
81 const opentelemetry::context::Context &
context) noexcept
override;
83 void Add(int64_t value) noexcept
override;
84 void Add(int64_t value,
const opentelemetry::context::Context &
context) noexcept
override;
91 std::unique_ptr<SyncWritableMetricStorage> storage);
93 void Add(
double value,
94 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
95 void Add(
double value,
96 const opentelemetry::common::KeyValueIterable &attributes,
97 const opentelemetry::context::Context &
context) noexcept
override;
99 void Add(
double value) noexcept
override;
100 void Add(
double value,
const opentelemetry::context::Context &
context) noexcept
override;
103 #if OPENTELEMETRY_ABI_VERSION_NO >= 2
104 class LongGauge :
public Synchronous,
public opentelemetry::metrics::Gauge<int64_t>
108 std::unique_ptr<SyncWritableMetricStorage> storage);
110 void Record(int64_t value,
111 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
112 void Record(int64_t value,
113 const opentelemetry::common::KeyValueIterable &attributes,
114 const opentelemetry::context::Context &
context) noexcept
override;
116 void Record(int64_t value) noexcept
override;
117 void Record(int64_t value,
const opentelemetry::context::Context &
context) noexcept
override;
120 class DoubleGauge :
public Synchronous,
public opentelemetry::metrics::Gauge<double>
123 DoubleGauge(
const InstrumentDescriptor &instrument_descriptor,
124 std::unique_ptr<SyncWritableMetricStorage> storage);
126 void Record(
double value,
127 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
128 void Record(
double value,
129 const opentelemetry::common::KeyValueIterable &attributes,
130 const opentelemetry::context::Context &
context) noexcept
override;
132 void Record(
double value) noexcept
override;
133 void Record(
double value,
const opentelemetry::context::Context &
context) noexcept
override;
141 std::unique_ptr<SyncWritableMetricStorage> storage);
143 #if OPENTELEMETRY_ABI_VERSION_NO >= 2
144 void Record(uint64_t value,
145 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
147 void Record(uint64_t value) noexcept
override;
150 void Record(uint64_t value,
151 const opentelemetry::common::KeyValueIterable &attributes,
152 const opentelemetry::context::Context &
context) noexcept
override;
154 void Record(uint64_t value,
const opentelemetry::context::Context &
context) noexcept
override;
161 std::unique_ptr<SyncWritableMetricStorage> storage);
163 #if OPENTELEMETRY_ABI_VERSION_NO >= 2
165 const opentelemetry::common::KeyValueIterable &attributes) noexcept
override;
167 void Record(
double value) noexcept
override;
171 const opentelemetry::common::KeyValueIterable &attributes,
172 const opentelemetry::context::Context &
context) noexcept
override;
174 void Record(
double value,
const opentelemetry::context::Context &
context) noexcept
override;