6 #include "opentelemetry/common/attribute_value.h"
7 #include "opentelemetry/common/key_value_iterable_view.h"
8 #include "opentelemetry/context/context.h"
9 #include "opentelemetry/nostd/span.h"
10 #include "opentelemetry/nostd/string_view.h"
11 #include "opentelemetry/nostd/type_traits.h"
12 #include "opentelemetry/version.h"
18 class SynchronousInstrument
27 class Counter :
public SynchronousInstrument
36 virtual void Add(T value) noexcept = 0;
62 virtual void Add(T value,
68 void Add(T value,
const U &attributes) noexcept
81 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>>
84 this->
Add(value,
nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
85 attributes.
begin(), attributes.end()});
89 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>> attributes,
93 nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
94 attributes.
begin(), attributes.end()},
102 class Histogram :
public SynchronousInstrument
105 #if OPENTELEMETRY_ABI_VERSION_NO >= 2
112 virtual void Record(T value) noexcept = 0;
125 void Record(T value,
const U &attributes) noexcept
131 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>>
134 this->
Record(value,
nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
135 attributes.
begin(), attributes.end()});
154 virtual void Record(T value,
167 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>> attributes,
171 nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
172 attributes.
begin(), attributes.end()},
180 class UpDownCounter :
public SynchronousInstrument
188 virtual void Add(T value) noexcept = 0;
213 virtual void Add(T value,
219 void Add(T value,
const U &attributes) noexcept
232 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>>
235 this->
Add(value,
nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
236 attributes.
begin(), attributes.end()});
240 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>> attributes,
244 nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
245 attributes.
begin(), attributes.end()},
250 #if OPENTELEMETRY_ABI_VERSION_NO >= 2
253 class Gauge :
public SynchronousInstrument
262 virtual void Record(T value) noexcept = 0;
288 virtual void Record(T value,
294 void Record(T value,
const U &attributes) noexcept
307 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>>
310 this->Record(value,
nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
311 attributes.
begin(), attributes.end()});
316 std::initializer_list<std::pair<nostd::string_view, common::AttributeValue>> attributes,
320 nostd::span<
const std::pair<nostd::string_view, common::AttributeValue>>{
321 attributes.
begin(), attributes.end()},