Program Listing for File instruments.h
↰ Return to documentation for file (/home/docs/checkouts/readthedocs.org/user_builds/opentelemetry-cpp/checkouts/stable/sdk/include/opentelemetry/sdk/metrics/instruments.h
)
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <functional>
#include <string>
#include "opentelemetry/sdk/common/attribute_utils.h"
#include "opentelemetry/version.h"
OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace metrics
{
enum class InstrumentType
{
kCounter,
kHistogram,
kUpDownCounter,
kObservableCounter,
kObservableGauge,
kObservableUpDownCounter
};
enum class InstrumentClass
{
kSync,
kAsync
};
enum class InstrumentValueType
{
kInt,
kLong,
kFloat,
kDouble
};
enum class AggregationType
{
kDrop,
kHistogram,
kLastValue,
kSum,
kDefault
};
enum class AggregationTemporality
{
kUnspecified,
kDelta,
kCumulative
};
struct InstrumentDescriptor
{
std::string name_;
std::string description_;
std::string unit_;
InstrumentType type_;
InstrumentValueType value_type_;
};
using MetricAttributes = opentelemetry::sdk::common::OrderedAttributeMap;
using AggregationTemporalitySelector = std::function<AggregationTemporality(InstrumentType)>;
/*class InstrumentSelector {
public:
InstrumentSelector(opentelemetry::nostd::string_view name,
opentelemetry::sdk::metrics::InstrumentType type): name_(name.data()), type_(type) {} InstrumentType
GetType(){return type_;} std::string GetNameFilter() { return name_;}
private:
std::string name_;
InstrumentType type_;
};*/
} // namespace metrics
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE