hw_metrics.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344
  1. /*
  2. * Copyright The OpenTelemetry Authors
  3. * SPDX-License-Identifier: Apache-2.0
  4. */
  5. /*
  6. * DO NOT EDIT, this is an Auto-generated file from:
  7. * buildscripts/semantic-convention/templates/registry/semantic_metrics-h.j2
  8. */
  9. #pragma once
  10. #include "opentelemetry/common/macros.h"
  11. #include "opentelemetry/metrics/meter.h"
  12. #include "opentelemetry/version.h"
  13. OPENTELEMETRY_BEGIN_NAMESPACE
  14. namespace semconv
  15. {
  16. namespace hw
  17. {
  18. /**
  19. * Energy consumed by the component
  20. * <p>
  21. * counter
  22. */
  23. static constexpr const char *kMetricHwEnergy = "hw.energy";
  24. static constexpr const char *descrMetricHwEnergy = "Energy consumed by the component";
  25. static constexpr const char *unitMetricHwEnergy = "J";
  26. static inline nostd::unique_ptr<metrics::Counter<uint64_t>> CreateSyncInt64MetricHwEnergy(
  27. metrics::Meter *meter)
  28. {
  29. return meter->CreateUInt64Counter(kMetricHwEnergy, descrMetricHwEnergy, unitMetricHwEnergy);
  30. }
  31. static inline nostd::unique_ptr<metrics::Counter<double>> CreateSyncDoubleMetricHwEnergy(
  32. metrics::Meter *meter)
  33. {
  34. return meter->CreateDoubleCounter(kMetricHwEnergy, descrMetricHwEnergy, unitMetricHwEnergy);
  35. }
  36. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncInt64MetricHwEnergy(
  37. metrics::Meter *meter)
  38. {
  39. return meter->CreateInt64ObservableCounter(kMetricHwEnergy, descrMetricHwEnergy,
  40. unitMetricHwEnergy);
  41. }
  42. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncDoubleMetricHwEnergy(
  43. metrics::Meter *meter)
  44. {
  45. return meter->CreateDoubleObservableCounter(kMetricHwEnergy, descrMetricHwEnergy,
  46. unitMetricHwEnergy);
  47. }
  48. /**
  49. * Number of errors encountered by the component
  50. * <p>
  51. * counter
  52. */
  53. static constexpr const char *kMetricHwErrors = "hw.errors";
  54. static constexpr const char *descrMetricHwErrors = "Number of errors encountered by the component";
  55. static constexpr const char *unitMetricHwErrors = "{error}";
  56. static inline nostd::unique_ptr<metrics::Counter<uint64_t>> CreateSyncInt64MetricHwErrors(
  57. metrics::Meter *meter)
  58. {
  59. return meter->CreateUInt64Counter(kMetricHwErrors, descrMetricHwErrors, unitMetricHwErrors);
  60. }
  61. static inline nostd::unique_ptr<metrics::Counter<double>> CreateSyncDoubleMetricHwErrors(
  62. metrics::Meter *meter)
  63. {
  64. return meter->CreateDoubleCounter(kMetricHwErrors, descrMetricHwErrors, unitMetricHwErrors);
  65. }
  66. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncInt64MetricHwErrors(
  67. metrics::Meter *meter)
  68. {
  69. return meter->CreateInt64ObservableCounter(kMetricHwErrors, descrMetricHwErrors,
  70. unitMetricHwErrors);
  71. }
  72. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncDoubleMetricHwErrors(
  73. metrics::Meter *meter)
  74. {
  75. return meter->CreateDoubleObservableCounter(kMetricHwErrors, descrMetricHwErrors,
  76. unitMetricHwErrors);
  77. }
  78. /**
  79. * Ambient (external) temperature of the physical host
  80. * <p>
  81. * gauge
  82. */
  83. static constexpr const char *kMetricHwHostAmbientTemperature = "hw.host.ambient_temperature";
  84. static constexpr const char *descrMetricHwHostAmbientTemperature =
  85. "Ambient (external) temperature of the physical host";
  86. static constexpr const char *unitMetricHwHostAmbientTemperature = "Cel";
  87. #if OPENTELEMETRY_ABI_VERSION_NO >= 2
  88. static inline nostd::unique_ptr<metrics::Gauge<int64_t>>
  89. CreateSyncInt64MetricHwHostAmbientTemperature(metrics::Meter *meter)
  90. {
  91. return meter->CreateInt64Gauge(kMetricHwHostAmbientTemperature,
  92. descrMetricHwHostAmbientTemperature,
  93. unitMetricHwHostAmbientTemperature);
  94. }
  95. static inline nostd::unique_ptr<metrics::Gauge<double>>
  96. CreateSyncDoubleMetricHwHostAmbientTemperature(metrics::Meter *meter)
  97. {
  98. return meter->CreateDoubleGauge(kMetricHwHostAmbientTemperature,
  99. descrMetricHwHostAmbientTemperature,
  100. unitMetricHwHostAmbientTemperature);
  101. }
  102. #endif /* OPENTELEMETRY_ABI_VERSION_NO */
  103. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  104. CreateAsyncInt64MetricHwHostAmbientTemperature(metrics::Meter *meter)
  105. {
  106. return meter->CreateInt64ObservableGauge(kMetricHwHostAmbientTemperature,
  107. descrMetricHwHostAmbientTemperature,
  108. unitMetricHwHostAmbientTemperature);
  109. }
  110. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  111. CreateAsyncDoubleMetricHwHostAmbientTemperature(metrics::Meter *meter)
  112. {
  113. return meter->CreateDoubleObservableGauge(kMetricHwHostAmbientTemperature,
  114. descrMetricHwHostAmbientTemperature,
  115. unitMetricHwHostAmbientTemperature);
  116. }
  117. /**
  118. * Total energy consumed by the entire physical host, in joules
  119. * <p>
  120. * The overall energy usage of a host MUST be reported using the specific @code hw.host.energy
  121. * @endcode and @code hw.host.power @endcode metrics <strong>only</strong>, instead of the generic
  122. * @code hw.energy @endcode and @code hw.power @endcode described in the previous section, to
  123. * prevent summing up overlapping values. <p> counter
  124. */
  125. static constexpr const char *kMetricHwHostEnergy = "hw.host.energy";
  126. static constexpr const char *descrMetricHwHostEnergy =
  127. "Total energy consumed by the entire physical host, in joules";
  128. static constexpr const char *unitMetricHwHostEnergy = "J";
  129. static inline nostd::unique_ptr<metrics::Counter<uint64_t>> CreateSyncInt64MetricHwHostEnergy(
  130. metrics::Meter *meter)
  131. {
  132. return meter->CreateUInt64Counter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
  133. unitMetricHwHostEnergy);
  134. }
  135. static inline nostd::unique_ptr<metrics::Counter<double>> CreateSyncDoubleMetricHwHostEnergy(
  136. metrics::Meter *meter)
  137. {
  138. return meter->CreateDoubleCounter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
  139. unitMetricHwHostEnergy);
  140. }
  141. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncInt64MetricHwHostEnergy(
  142. metrics::Meter *meter)
  143. {
  144. return meter->CreateInt64ObservableCounter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
  145. unitMetricHwHostEnergy);
  146. }
  147. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncDoubleMetricHwHostEnergy(
  148. metrics::Meter *meter)
  149. {
  150. return meter->CreateDoubleObservableCounter(kMetricHwHostEnergy, descrMetricHwHostEnergy,
  151. unitMetricHwHostEnergy);
  152. }
  153. /**
  154. * By how many degrees Celsius the temperature of the physical host can be increased, before
  155. * reaching a warning threshold on one of the internal sensors <p> gauge
  156. */
  157. static constexpr const char *kMetricHwHostHeatingMargin = "hw.host.heating_margin";
  158. static constexpr const char *descrMetricHwHostHeatingMargin =
  159. "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
  160. ";
  161. static constexpr const char *unitMetricHwHostHeatingMargin = "Cel";
  162. #if OPENTELEMETRY_ABI_VERSION_NO >= 2
  163. static inline nostd::unique_ptr<metrics::Gauge<int64_t>> CreateSyncInt64MetricHwHostHeatingMargin(
  164. metrics::Meter *meter)
  165. {
  166. return meter->CreateInt64Gauge(kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin,
  167. unitMetricHwHostHeatingMargin);
  168. }
  169. static inline nostd::unique_ptr<metrics::Gauge<double>> CreateSyncDoubleMetricHwHostHeatingMargin(
  170. metrics::Meter *meter)
  171. {
  172. return meter->CreateDoubleGauge(kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin,
  173. unitMetricHwHostHeatingMargin);
  174. }
  175. #endif /* OPENTELEMETRY_ABI_VERSION_NO */
  176. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  177. CreateAsyncInt64MetricHwHostHeatingMargin(metrics::Meter *meter)
  178. {
  179. return meter->CreateInt64ObservableGauge(
  180. kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin, unitMetricHwHostHeatingMargin);
  181. }
  182. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  183. CreateAsyncDoubleMetricHwHostHeatingMargin(metrics::Meter *meter)
  184. {
  185. return meter->CreateDoubleObservableGauge(
  186. kMetricHwHostHeatingMargin, descrMetricHwHostHeatingMargin, unitMetricHwHostHeatingMargin);
  187. }
  188. /**
  189. * Instantaneous power consumed by the entire physical host in Watts (@code hw.host.energy @endcode
  190. * is preferred) <p> The overall energy usage of a host MUST be reported using the specific @code
  191. * hw.host.energy @endcode and @code hw.host.power @endcode metrics <strong>only</strong>, instead
  192. * of the generic @code hw.energy @endcode and @code hw.power @endcode described in the previous
  193. * section, to prevent summing up overlapping values. <p> gauge
  194. */
  195. static constexpr const char *kMetricHwHostPower = "hw.host.power";
  196. static constexpr const char *descrMetricHwHostPower =
  197. "Instantaneous power consumed by the entire physical host in Watts (`hw.host.energy` is preferred)
  198. ";
  199. static constexpr const char *unitMetricHwHostPower = "W";
  200. #if OPENTELEMETRY_ABI_VERSION_NO >= 2
  201. static inline nostd::unique_ptr<metrics::Gauge<int64_t>> CreateSyncInt64MetricHwHostPower(
  202. metrics::Meter *meter)
  203. {
  204. return meter->CreateInt64Gauge(kMetricHwHostPower, descrMetricHwHostPower, unitMetricHwHostPower);
  205. }
  206. static inline nostd::unique_ptr<metrics::Gauge<double>> CreateSyncDoubleMetricHwHostPower(
  207. metrics::Meter *meter)
  208. {
  209. return meter->CreateDoubleGauge(kMetricHwHostPower, descrMetricHwHostPower,
  210. unitMetricHwHostPower);
  211. }
  212. #endif /* OPENTELEMETRY_ABI_VERSION_NO */
  213. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncInt64MetricHwHostPower(
  214. metrics::Meter *meter)
  215. {
  216. return meter->CreateInt64ObservableGauge(kMetricHwHostPower, descrMetricHwHostPower,
  217. unitMetricHwHostPower);
  218. }
  219. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncDoubleMetricHwHostPower(
  220. metrics::Meter *meter)
  221. {
  222. return meter->CreateDoubleObservableGauge(kMetricHwHostPower, descrMetricHwHostPower,
  223. unitMetricHwHostPower);
  224. }
  225. /**
  226. * Instantaneous power consumed by the component
  227. * <p>
  228. * It is recommended to report @code hw.energy @endcode instead of @code hw.power @endcode when
  229. * possible. <p> gauge
  230. */
  231. static constexpr const char *kMetricHwPower = "hw.power";
  232. static constexpr const char *descrMetricHwPower = "Instantaneous power consumed by the component";
  233. static constexpr const char *unitMetricHwPower = "W";
  234. #if OPENTELEMETRY_ABI_VERSION_NO >= 2
  235. static inline nostd::unique_ptr<metrics::Gauge<int64_t>> CreateSyncInt64MetricHwPower(
  236. metrics::Meter *meter)
  237. {
  238. return meter->CreateInt64Gauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
  239. }
  240. static inline nostd::unique_ptr<metrics::Gauge<double>> CreateSyncDoubleMetricHwPower(
  241. metrics::Meter *meter)
  242. {
  243. return meter->CreateDoubleGauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
  244. }
  245. #endif /* OPENTELEMETRY_ABI_VERSION_NO */
  246. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncInt64MetricHwPower(
  247. metrics::Meter *meter)
  248. {
  249. return meter->CreateInt64ObservableGauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
  250. }
  251. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncDoubleMetricHwPower(
  252. metrics::Meter *meter)
  253. {
  254. return meter->CreateDoubleObservableGauge(kMetricHwPower, descrMetricHwPower, unitMetricHwPower);
  255. }
  256. /**
  257. * Operational status: @code 1 @endcode (true) or @code 0 @endcode (false) for each of the possible
  258. * states <p>
  259. * @code hw.status @endcode is currently specified as an <em>UpDownCounter</em> but would ideally be
  260. * represented using a <a
  261. * href="https://github.com/prometheus/OpenMetrics/blob/v1.0.0/specification/OpenMetrics.md#stateset"><em>StateSet</em>
  262. * as defined in OpenMetrics</a>. This semantic convention will be updated once <em>StateSet</em> is
  263. * specified in OpenTelemetry. This planned change is not expected to have any consequence on the
  264. * way users query their timeseries backend to retrieve the values of @code hw.status @endcode over
  265. * time. <p> updowncounter
  266. */
  267. static constexpr const char *kMetricHwStatus = "hw.status";
  268. static constexpr const char *descrMetricHwStatus =
  269. "Operational status: `1` (true) or `0` (false) for each of the possible states";
  270. static constexpr const char *unitMetricHwStatus = "1";
  271. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>> CreateSyncInt64MetricHwStatus(
  272. metrics::Meter *meter)
  273. {
  274. return meter->CreateInt64UpDownCounter(kMetricHwStatus, descrMetricHwStatus, unitMetricHwStatus);
  275. }
  276. static inline nostd::unique_ptr<metrics::UpDownCounter<double>> CreateSyncDoubleMetricHwStatus(
  277. metrics::Meter *meter)
  278. {
  279. return meter->CreateDoubleUpDownCounter(kMetricHwStatus, descrMetricHwStatus, unitMetricHwStatus);
  280. }
  281. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncInt64MetricHwStatus(
  282. metrics::Meter *meter)
  283. {
  284. return meter->CreateInt64ObservableUpDownCounter(kMetricHwStatus, descrMetricHwStatus,
  285. unitMetricHwStatus);
  286. }
  287. static inline nostd::shared_ptr<metrics::ObservableInstrument> CreateAsyncDoubleMetricHwStatus(
  288. metrics::Meter *meter)
  289. {
  290. return meter->CreateDoubleObservableUpDownCounter(kMetricHwStatus, descrMetricHwStatus,
  291. unitMetricHwStatus);
  292. }
  293. } // namespace hw
  294. } // namespace semconv
  295. OPENTELEMETRY_END_NAMESPACE