/*
* Copyright The OpenTelemetry Authors
* SPDX-License-Identifier: Apache-2.0
*/
/*
* DO NOT EDIT, this is an Auto-generated file from:
* buildscripts/semantic-convention/templates/registry/semantic_metrics-h.j2
*/
#pragma once
#include "opentelemetry/common/macros.h"
#include "opentelemetry/metrics/meter.h"
#include "opentelemetry/version.h"
OPENTELEMETRY_BEGIN_NAMESPACE
namespace semconv
{
namespace hw
{
/**
* Energy consumed by the component
*
* counter
*/
static constexpr const char *kMetricHwEnergy = "hw.energy";
static constexpr const char *descrMetricHwEnergy = "Energy consumed by the component";
static constexpr const char *unitMetricHwEnergy = "J";
static inline nostd::unique_ptr> CreateSyncInt64MetricHwEnergy(
metrics::Meter *meter)
{
return meter->CreateUInt64Counter(kMetricHwEnergy, descrMetricHwEnergy, unitMetricHwEnergy);
}
static inline nostd::unique_ptr> CreateSyncDoubleMetricHwEnergy(
metrics::Meter *meter)
{
return meter->CreateDoubleCounter(kMetricHwEnergy, descrMetricHwEnergy, unitMetricHwEnergy);
}
static inline nostd::shared_ptr CreateAsyncInt64MetricHwEnergy(
metrics::Meter *meter)
{
return meter->CreateInt64ObservableCounter(kMetricHwEnergy, descrMetricHwEnergy,
unitMetricHwEnergy);
}
static inline nostd::shared_ptr CreateAsyncDoubleMetricHwEnergy(
metrics::Meter *meter)
{
return meter->CreateDoubleObservableCounter(kMetricHwEnergy, descrMetricHwEnergy,
unitMetricHwEnergy);
}
/**
* Number of errors encountered by the component
*
* counter
*/
static constexpr const char *kMetricHwErrors = "hw.errors";
static constexpr const char *descrMetricHwErrors = "Number of errors encountered by the component";
static constexpr const char *unitMetricHwErrors = "{error}";
static inline nostd::unique_ptr> CreateSyncInt64MetricHwErrors(
metrics::Meter *meter)
{
return meter->CreateUInt64Counter(kMetricHwErrors, descrMetricHwErrors, unitMetricHwErrors);
}
static inline nostd::unique_ptr> CreateSyncDoubleMetricHwErrors(
metrics::Meter *meter)
{
return meter->CreateDoubleCounter(kMetricHwErrors, descrMetricHwErrors, unitMetricHwErrors);
}
static inline nostd::shared_ptr CreateAsyncInt64MetricHwErrors(
metrics::Meter *meter)
{
return meter->CreateInt64ObservableCounter(kMetricHwErrors, descrMetricHwErrors,
unitMetricHwErrors);
}
static inline nostd::shared_ptr CreateAsyncDoubleMetricHwErrors(
metrics::Meter *meter)
{
return meter->CreateDoubleObservableCounter(kMetricHwErrors, descrMetricHwErrors,
unitMetricHwErrors);
}
/**
* Ambient (external) temperature of the physical host
*
* gauge
*/
static constexpr const char *kMetricHwHostAmbientTemperature = "hw.host.ambient_temperature";
static constexpr const char *descrMetricHwHostAmbientTemperature =
"Ambient (external) temperature of the physical host";
static constexpr const char *unitMetricHwHostAmbientTemperature = "Cel";
#if OPENTELEMETRY_ABI_VERSION_NO >= 2
static inline nostd::unique_ptr>
CreateSyncInt64MetricHwHostAmbientTemperature(metrics::Meter *meter)
{
return meter->CreateInt64Gauge(kMetricHwHostAmbientTemperature,
descrMetricHwHostAmbientTemperature,
unitMetricHwHostAmbientTemperature);
}
static inline nostd::unique_ptr>
CreateSyncDoubleMetricHwHostAmbientTemperature(metrics::Meter *meter)
{
return meter->CreateDoubleGauge(kMetricHwHostAmbientTemperature,
descrMetricHwHostAmbientTemperature,
unitMetricHwHostAmbientTemperature);
}
#endif /* OPENTELEMETRY_ABI_VERSION_NO */
static inline nostd::shared_ptr
CreateAsyncInt64MetricHwHostAmbientTemperature(metrics::Meter *meter)
{
return meter->CreateInt64ObservableGauge(kMetricHwHostAmbientTemperature,
descrMetricHwHostAmbientTemperature,
unitMetricHwHostAmbientTemperature);
}
static inline nostd::shared_ptr
CreateAsyncDoubleMetricHwHostAmbientTemperature(metrics::Meter *meter)
{
return meter->CreateDoubleObservableGauge(kMetricHwHostAmbientTemperature,
descrMetricHwHostAmbientTemperature,
unitMetricHwHostAmbientTemperature);
}
/**
* Total energy consumed by the entire physical host, in joules
*
* The overall energy usage of a host MUST be reported using the specific @code hw.host.energy
* @endcode and @code hw.host.power @endcode metrics only, instead of the generic
* @code hw.energy @endcode and @code hw.power @endcode described in the previous section, to
* prevent summing up overlapping values.
counter
*/
static constexpr const char *kMetricHwHostEnergy = "hw.host.energy";
static constexpr const char *descrMetricHwHostEnergy =
"Total energy consumed by the entire physical host, in joules";
static constexpr const char *unitMetricHwHostEnergy = "J";
static inline nostd::unique_ptr> CreateSyncInt64MetricHwHostEnergy(
metrics::Meter *meter)
{
return meter->CreateUInt64Counter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
unitMetricHwHostEnergy);
}
static inline nostd::unique_ptr> CreateSyncDoubleMetricHwHostEnergy(
metrics::Meter *meter)
{
return meter->CreateDoubleCounter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
unitMetricHwHostEnergy);
}
static inline nostd::shared_ptr CreateAsyncInt64MetricHwHostEnergy(
metrics::Meter *meter)
{
return meter->CreateInt64ObservableCounter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
unitMetricHwHostEnergy);
}
static inline nostd::shared_ptr CreateAsyncDoubleMetricHwHostEnergy(
metrics::Meter *meter)
{
return meter->CreateDoubleObservableCounter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
unitMetricHwHostEnergy);
}
/**
* By how many degrees Celsius the temperature of the physical host can be increased, before
* reaching a warning threshold on one of the internal sensors gauge
*/
static constexpr const char *kMetricHwHostHeatingMargin = "hw.host.heating_margin";
static constexpr const char *descrMetricHwHostHeatingMargin =
"By how many degrees Celsius the temperature of the physical host can be increased, before reaching a warning threshold on one of the internal sensors
";
static constexpr const char *unitMetricHwHostHeatingMargin = "Cel";
#if OPENTELEMETRY_ABI_VERSION_NO >= 2
static inline nostd::unique_ptr> CreateSyncInt64MetricHwHostHeatingMargin(
metrics::Meter *meter)
{
return meter->CreateInt64Gauge(kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin,
unitMetricHwHostHeatingMargin);
}
static inline nostd::unique_ptr> CreateSyncDoubleMetricHwHostHeatingMargin(
metrics::Meter *meter)
{
return meter->CreateDoubleGauge(kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin,
unitMetricHwHostHeatingMargin);
}
#endif /* OPENTELEMETRY_ABI_VERSION_NO */
static inline nostd::shared_ptr
CreateAsyncInt64MetricHwHostHeatingMargin(metrics::Meter *meter)
{
return meter->CreateInt64ObservableGauge(
kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin, unitMetricHwHostHeatingMargin);
}
static inline nostd::shared_ptr
CreateAsyncDoubleMetricHwHostHeatingMargin(metrics::Meter *meter)
{
return meter->CreateDoubleObservableGauge(
kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin, unitMetricHwHostHeatingMargin);
}
/**
* Instantaneous power consumed by the entire physical host in Watts (@code hw.host.energy @endcode
* is preferred) The overall energy usage of a host MUST be reported using the specific @code
* hw.host.energy @endcode and @code hw.host.power @endcode metrics only, instead
* of the generic @code hw.energy @endcode and @code hw.power @endcode described in the previous
* section, to prevent summing up overlapping values.
gauge
*/
static constexpr const char *kMetricHwHostPower = "hw.host.power";
static constexpr const char *descrMetricHwHostPower =
"Instantaneous power consumed by the entire physical host in Watts (`hw.host.energy` is preferred)
";
static constexpr const char *unitMetricHwHostPower = "W";
#if OPENTELEMETRY_ABI_VERSION_NO >= 2
static inline nostd::unique_ptr> CreateSyncInt64MetricHwHostPower(
metrics::Meter *meter)
{
return meter->CreateInt64Gauge(kMetricHwHostPower, descrMetricHwHostPower, unitMetricHwHostPower);
}
static inline nostd::unique_ptr> CreateSyncDoubleMetricHwHostPower(
metrics::Meter *meter)
{
return meter->CreateDoubleGauge(kMetricHwHostPower, descrMetricHwHostPower,
unitMetricHwHostPower);
}
#endif /* OPENTELEMETRY_ABI_VERSION_NO */
static inline nostd::shared_ptr CreateAsyncInt64MetricHwHostPower(
metrics::Meter *meter)
{
return meter->CreateInt64ObservableGauge(kMetricHwHostPower, descrMetricHwHostPower,
unitMetricHwHostPower);
}
static inline nostd::shared_ptr CreateAsyncDoubleMetricHwHostPower(
metrics::Meter *meter)
{
return meter->CreateDoubleObservableGauge(kMetricHwHostPower, descrMetricHwHostPower,
unitMetricHwHostPower);
}
/**
* Instantaneous power consumed by the component
*
* It is recommended to report @code hw.energy @endcode instead of @code hw.power @endcode when
* possible.
gauge
*/
static constexpr const char *kMetricHwPower = "hw.power";
static constexpr const char *descrMetricHwPower = "Instantaneous power consumed by the component";
static constexpr const char *unitMetricHwPower = "W";
#if OPENTELEMETRY_ABI_VERSION_NO >= 2
static inline nostd::unique_ptr> CreateSyncInt64MetricHwPower(
metrics::Meter *meter)
{
return meter->CreateInt64Gauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
}
static inline nostd::unique_ptr> CreateSyncDoubleMetricHwPower(
metrics::Meter *meter)
{
return meter->CreateDoubleGauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
}
#endif /* OPENTELEMETRY_ABI_VERSION_NO */
static inline nostd::shared_ptr CreateAsyncInt64MetricHwPower(
metrics::Meter *meter)
{
return meter->CreateInt64ObservableGauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
}
static inline nostd::shared_ptr CreateAsyncDoubleMetricHwPower(
metrics::Meter *meter)
{
return meter->CreateDoubleObservableGauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
}
/**
* Operational status: @code 1 @endcode (true) or @code 0 @endcode (false) for each of the possible
* states
* @code hw.status @endcode is currently specified as an UpDownCounter but would ideally be
* represented using a StateSet
* as defined in OpenMetrics. This semantic convention will be updated once StateSet is
* specified in OpenTelemetry. This planned change is not expected to have any consequence on the
* way users query their timeseries backend to retrieve the values of @code hw.status @endcode over
* time.
updowncounter
*/
static constexpr const char *kMetricHwStatus = "hw.status";
static constexpr const char *descrMetricHwStatus =
"Operational status: `1` (true) or `0` (false) for each of the possible states";
static constexpr const char *unitMetricHwStatus = "1";
static inline nostd::unique_ptr> CreateSyncInt64MetricHwStatus(
metrics::Meter *meter)
{
return meter->CreateInt64UpDownCounter(kMetricHwStatus, descrMetricHwStatus, unitMetricHwStatus);
}
static inline nostd::unique_ptr> CreateSyncDoubleMetricHwStatus(
metrics::Meter *meter)
{
return meter->CreateDoubleUpDownCounter(kMetricHwStatus, descrMetricHwStatus, unitMetricHwStatus);
}
static inline nostd::shared_ptr CreateAsyncInt64MetricHwStatus(
metrics::Meter *meter)
{
return meter->CreateInt64ObservableUpDownCounter(kMetricHwStatus, descrMetricHwStatus,
unitMetricHwStatus);
}
static inline nostd::shared_ptr CreateAsyncDoubleMetricHwStatus(
metrics::Meter *meter)
{
return meter->CreateDoubleObservableUpDownCounter(kMetricHwStatus, descrMetricHwStatus,
unitMetricHwStatus);
}
} // namespace hw
} // namespace semconv
OPENTELEMETRY_END_NAMESPACE