Program Listing for File exemplar_data.h
↰ Return to documentation for file (/home/docs/checkouts/readthedocs.org/user_builds/opentelemetry-cpp/checkouts/latest/sdk/include/opentelemetry/sdk/metrics/data/exemplar_data.h
)
// Copyright The OpenTelemetry Authors
// SPDX-License-Identifier: Apache-2.0
#pragma once
#include <memory>
#include "opentelemetry/common/timestamp.h"
#include "opentelemetry/sdk/common/attribute_utils.h"
#include "opentelemetry/sdk/metrics/data/metric_data.h"
#include "opentelemetry/trace/span_context.h"
#include "opentelemetry/version.h"
OPENTELEMETRY_BEGIN_NAMESPACE
namespace sdk
{
namespace metrics
{
using MetricAttributes = opentelemetry::sdk::common::OrderedAttributeMap;
class ExemplarData
{
public:
static ExemplarData Create(std::shared_ptr<trace::SpanContext> context,
const opentelemetry::common::SystemTimestamp ×tamp,
const PointDataAttributes &point_data_attr)
{
return ExemplarData(context, timestamp, point_data_attr);
}
MetricAttributes GetFilteredAttributes() { return MetricAttributes{}; }
opentelemetry::common::SystemTimestamp GetEpochNanos() { return timestamp_; }
const trace::SpanContext &GetSpanContext() const noexcept { return context_; }
static PointType CreateSumPointData(ValueType value)
{
SumPointData sum_point_data{};
sum_point_data.value_ = value;
return sum_point_data;
}
static PointType CreateLastValuePointData(ValueType value)
{
LastValuePointData last_value_point_data{};
last_value_point_data.value_ = value;
last_value_point_data.is_lastvalue_valid_ = true;
last_value_point_data.sample_ts_ = opentelemetry::common::SystemTimestamp{};
return last_value_point_data;
}
static PointType CreateDropPointData() { return DropPointData{}; }
private:
ExemplarData(std::shared_ptr<trace::SpanContext> context,
opentelemetry::common::SystemTimestamp timestamp,
const PointDataAttributes &point_data_attr)
: context_(*context.get()), timestamp_(timestamp), point_data_attr_(point_data_attr)
{}
trace::SpanContext context_;
opentelemetry::common::SystemTimestamp timestamp_;
PointDataAttributes point_data_attr_;
};
} // namespace metrics
} // namespace sdk
OPENTELEMETRY_END_NAMESPACE