otel_metrics.h 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976
  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 otel
  17. {
  18. /**
  19. The number of log records for which the export has finished, either successful or failed
  20. <p>
  21. For successful exports, @code error.type @endcode MUST NOT be set. For failed exports, @code
  22. error.type @endcode MUST contain the failure cause. For exporters with partial success semantics
  23. (e.g. OTLP with @code rejected_log_records @endcode), rejected log records MUST count as failed
  24. and only non-rejected log records count as success. If no rejection reason is available, @code
  25. rejected @endcode SHOULD be used as value for @code error.type @endcode. <p> counter
  26. */
  27. static constexpr const char *kMetricOtelSdkExporterLogExported = "otel.sdk.exporter.log.exported";
  28. static constexpr const char *descrMetricOtelSdkExporterLogExported =
  29. "The number of log records for which the export has finished, either successful or failed";
  30. static constexpr const char *unitMetricOtelSdkExporterLogExported = "{log_record}";
  31. static inline nostd::unique_ptr<metrics::Counter<uint64_t>>
  32. CreateSyncInt64MetricOtelSdkExporterLogExported(metrics::Meter *meter)
  33. {
  34. return meter->CreateUInt64Counter(kMetricOtelSdkExporterLogExported,
  35. descrMetricOtelSdkExporterLogExported,
  36. unitMetricOtelSdkExporterLogExported);
  37. }
  38. static inline nostd::unique_ptr<metrics::Counter<double>>
  39. CreateSyncDoubleMetricOtelSdkExporterLogExported(metrics::Meter *meter)
  40. {
  41. return meter->CreateDoubleCounter(kMetricOtelSdkExporterLogExported,
  42. descrMetricOtelSdkExporterLogExported,
  43. unitMetricOtelSdkExporterLogExported);
  44. }
  45. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  46. CreateAsyncInt64MetricOtelSdkExporterLogExported(metrics::Meter *meter)
  47. {
  48. return meter->CreateInt64ObservableCounter(kMetricOtelSdkExporterLogExported,
  49. descrMetricOtelSdkExporterLogExported,
  50. unitMetricOtelSdkExporterLogExported);
  51. }
  52. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  53. CreateAsyncDoubleMetricOtelSdkExporterLogExported(metrics::Meter *meter)
  54. {
  55. return meter->CreateDoubleObservableCounter(kMetricOtelSdkExporterLogExported,
  56. descrMetricOtelSdkExporterLogExported,
  57. unitMetricOtelSdkExporterLogExported);
  58. }
  59. /**
  60. The number of log records which were passed to the exporter, but that have not been exported yet
  61. (neither successful, nor failed) <p> For successful exports, @code error.type @endcode MUST NOT be
  62. set. For failed exports, @code error.type @endcode MUST contain the failure cause. <p>
  63. updowncounter
  64. */
  65. static constexpr const char *kMetricOtelSdkExporterLogInflight = "otel.sdk.exporter.log.inflight";
  66. static constexpr const char *descrMetricOtelSdkExporterLogInflight =
  67. "The number of log records which were passed to the exporter, but that have not been exported "
  68. "yet (neither successful, nor failed)";
  69. static constexpr const char *unitMetricOtelSdkExporterLogInflight = "{log_record}";
  70. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  71. CreateSyncInt64MetricOtelSdkExporterLogInflight(metrics::Meter *meter)
  72. {
  73. return meter->CreateInt64UpDownCounter(kMetricOtelSdkExporterLogInflight,
  74. descrMetricOtelSdkExporterLogInflight,
  75. unitMetricOtelSdkExporterLogInflight);
  76. }
  77. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  78. CreateSyncDoubleMetricOtelSdkExporterLogInflight(metrics::Meter *meter)
  79. {
  80. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkExporterLogInflight,
  81. descrMetricOtelSdkExporterLogInflight,
  82. unitMetricOtelSdkExporterLogInflight);
  83. }
  84. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  85. CreateAsyncInt64MetricOtelSdkExporterLogInflight(metrics::Meter *meter)
  86. {
  87. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkExporterLogInflight,
  88. descrMetricOtelSdkExporterLogInflight,
  89. unitMetricOtelSdkExporterLogInflight);
  90. }
  91. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  92. CreateAsyncDoubleMetricOtelSdkExporterLogInflight(metrics::Meter *meter)
  93. {
  94. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkExporterLogInflight,
  95. descrMetricOtelSdkExporterLogInflight,
  96. unitMetricOtelSdkExporterLogInflight);
  97. }
  98. /**
  99. The number of metric data points for which the export has finished, either successful or failed
  100. <p>
  101. For successful exports, @code error.type @endcode MUST NOT be set. For failed exports, @code
  102. error.type @endcode MUST contain the failure cause. For exporters with partial success semantics
  103. (e.g. OTLP with @code rejected_data_points @endcode), rejected data points MUST count as failed
  104. and only non-rejected data points count as success. If no rejection reason is available, @code
  105. rejected @endcode SHOULD be used as value for @code error.type @endcode. <p> counter
  106. */
  107. static constexpr const char *kMetricOtelSdkExporterMetricDataPointExported =
  108. "otel.sdk.exporter.metric_data_point.exported";
  109. static constexpr const char *descrMetricOtelSdkExporterMetricDataPointExported =
  110. "The number of metric data points for which the export has finished, either successful or "
  111. "failed";
  112. static constexpr const char *unitMetricOtelSdkExporterMetricDataPointExported = "{data_point}";
  113. static inline nostd::unique_ptr<metrics::Counter<uint64_t>>
  114. CreateSyncInt64MetricOtelSdkExporterMetricDataPointExported(metrics::Meter *meter)
  115. {
  116. return meter->CreateUInt64Counter(kMetricOtelSdkExporterMetricDataPointExported,
  117. descrMetricOtelSdkExporterMetricDataPointExported,
  118. unitMetricOtelSdkExporterMetricDataPointExported);
  119. }
  120. static inline nostd::unique_ptr<metrics::Counter<double>>
  121. CreateSyncDoubleMetricOtelSdkExporterMetricDataPointExported(metrics::Meter *meter)
  122. {
  123. return meter->CreateDoubleCounter(kMetricOtelSdkExporterMetricDataPointExported,
  124. descrMetricOtelSdkExporterMetricDataPointExported,
  125. unitMetricOtelSdkExporterMetricDataPointExported);
  126. }
  127. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  128. CreateAsyncInt64MetricOtelSdkExporterMetricDataPointExported(metrics::Meter *meter)
  129. {
  130. return meter->CreateInt64ObservableCounter(kMetricOtelSdkExporterMetricDataPointExported,
  131. descrMetricOtelSdkExporterMetricDataPointExported,
  132. unitMetricOtelSdkExporterMetricDataPointExported);
  133. }
  134. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  135. CreateAsyncDoubleMetricOtelSdkExporterMetricDataPointExported(metrics::Meter *meter)
  136. {
  137. return meter->CreateDoubleObservableCounter(kMetricOtelSdkExporterMetricDataPointExported,
  138. descrMetricOtelSdkExporterMetricDataPointExported,
  139. unitMetricOtelSdkExporterMetricDataPointExported);
  140. }
  141. /**
  142. The number of metric data points which were passed to the exporter, but that have not been
  143. exported yet (neither successful, nor failed) <p> For successful exports, @code error.type
  144. @endcode MUST NOT be set. For failed exports, @code error.type @endcode MUST contain the failure
  145. cause. <p> updowncounter
  146. */
  147. static constexpr const char *kMetricOtelSdkExporterMetricDataPointInflight =
  148. "otel.sdk.exporter.metric_data_point.inflight";
  149. static constexpr const char *descrMetricOtelSdkExporterMetricDataPointInflight =
  150. "The number of metric data points which were passed to the exporter, but that have not been "
  151. "exported yet (neither successful, nor failed)";
  152. static constexpr const char *unitMetricOtelSdkExporterMetricDataPointInflight = "{data_point}";
  153. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  154. CreateSyncInt64MetricOtelSdkExporterMetricDataPointInflight(metrics::Meter *meter)
  155. {
  156. return meter->CreateInt64UpDownCounter(kMetricOtelSdkExporterMetricDataPointInflight,
  157. descrMetricOtelSdkExporterMetricDataPointInflight,
  158. unitMetricOtelSdkExporterMetricDataPointInflight);
  159. }
  160. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  161. CreateSyncDoubleMetricOtelSdkExporterMetricDataPointInflight(metrics::Meter *meter)
  162. {
  163. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkExporterMetricDataPointInflight,
  164. descrMetricOtelSdkExporterMetricDataPointInflight,
  165. unitMetricOtelSdkExporterMetricDataPointInflight);
  166. }
  167. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  168. CreateAsyncInt64MetricOtelSdkExporterMetricDataPointInflight(metrics::Meter *meter)
  169. {
  170. return meter->CreateInt64ObservableUpDownCounter(
  171. kMetricOtelSdkExporterMetricDataPointInflight,
  172. descrMetricOtelSdkExporterMetricDataPointInflight,
  173. unitMetricOtelSdkExporterMetricDataPointInflight);
  174. }
  175. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  176. CreateAsyncDoubleMetricOtelSdkExporterMetricDataPointInflight(metrics::Meter *meter)
  177. {
  178. return meter->CreateDoubleObservableUpDownCounter(
  179. kMetricOtelSdkExporterMetricDataPointInflight,
  180. descrMetricOtelSdkExporterMetricDataPointInflight,
  181. unitMetricOtelSdkExporterMetricDataPointInflight);
  182. }
  183. /**
  184. The duration of exporting a batch of telemetry records.
  185. <p>
  186. This metric defines successful operations using the full success definitions for <a
  187. href="https://github.com/open-telemetry/opentelemetry-proto/blob/v1.5.0/docs/specification.md#full-success-1">http</a>
  188. and <a
  189. href="https://github.com/open-telemetry/opentelemetry-proto/blob/v1.5.0/docs/specification.md#full-success">grpc</a>.
  190. Anything else is defined as an unsuccessful operation. For successful operations, @code error.type
  191. @endcode MUST NOT be set. For unsuccessful export operations, @code error.type @endcode MUST
  192. contain a relevant failure cause. <p> histogram
  193. */
  194. static constexpr const char *kMetricOtelSdkExporterOperationDuration =
  195. "otel.sdk.exporter.operation.duration";
  196. static constexpr const char *descrMetricOtelSdkExporterOperationDuration =
  197. "The duration of exporting a batch of telemetry records.";
  198. static constexpr const char *unitMetricOtelSdkExporterOperationDuration = "s";
  199. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  200. CreateSyncInt64MetricOtelSdkExporterOperationDuration(metrics::Meter *meter)
  201. {
  202. return meter->CreateUInt64Histogram(kMetricOtelSdkExporterOperationDuration,
  203. descrMetricOtelSdkExporterOperationDuration,
  204. unitMetricOtelSdkExporterOperationDuration);
  205. }
  206. static inline nostd::unique_ptr<metrics::Histogram<double>>
  207. CreateSyncDoubleMetricOtelSdkExporterOperationDuration(metrics::Meter *meter)
  208. {
  209. return meter->CreateDoubleHistogram(kMetricOtelSdkExporterOperationDuration,
  210. descrMetricOtelSdkExporterOperationDuration,
  211. unitMetricOtelSdkExporterOperationDuration);
  212. }
  213. /**
  214. The number of spans for which the export has finished, either successful or failed
  215. <p>
  216. For successful exports, @code error.type @endcode MUST NOT be set. For failed exports, @code
  217. error.type @endcode MUST contain the failure cause. For exporters with partial success semantics
  218. (e.g. OTLP with @code rejected_spans @endcode), rejected spans MUST count as failed and only
  219. non-rejected spans count as success. If no rejection reason is available, @code rejected @endcode
  220. SHOULD be used as value for @code error.type @endcode. <p> counter
  221. */
  222. static constexpr const char *kMetricOtelSdkExporterSpanExported = "otel.sdk.exporter.span.exported";
  223. static constexpr const char *descrMetricOtelSdkExporterSpanExported =
  224. "The number of spans for which the export has finished, either successful or failed";
  225. static constexpr const char *unitMetricOtelSdkExporterSpanExported = "{span}";
  226. static inline nostd::unique_ptr<metrics::Counter<uint64_t>>
  227. CreateSyncInt64MetricOtelSdkExporterSpanExported(metrics::Meter *meter)
  228. {
  229. return meter->CreateUInt64Counter(kMetricOtelSdkExporterSpanExported,
  230. descrMetricOtelSdkExporterSpanExported,
  231. unitMetricOtelSdkExporterSpanExported);
  232. }
  233. static inline nostd::unique_ptr<metrics::Counter<double>>
  234. CreateSyncDoubleMetricOtelSdkExporterSpanExported(metrics::Meter *meter)
  235. {
  236. return meter->CreateDoubleCounter(kMetricOtelSdkExporterSpanExported,
  237. descrMetricOtelSdkExporterSpanExported,
  238. unitMetricOtelSdkExporterSpanExported);
  239. }
  240. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  241. CreateAsyncInt64MetricOtelSdkExporterSpanExported(metrics::Meter *meter)
  242. {
  243. return meter->CreateInt64ObservableCounter(kMetricOtelSdkExporterSpanExported,
  244. descrMetricOtelSdkExporterSpanExported,
  245. unitMetricOtelSdkExporterSpanExported);
  246. }
  247. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  248. CreateAsyncDoubleMetricOtelSdkExporterSpanExported(metrics::Meter *meter)
  249. {
  250. return meter->CreateDoubleObservableCounter(kMetricOtelSdkExporterSpanExported,
  251. descrMetricOtelSdkExporterSpanExported,
  252. unitMetricOtelSdkExporterSpanExported);
  253. }
  254. /**
  255. Deprecated, use @code otel.sdk.exporter.span.exported @endcode instead.
  256. @deprecated
  257. {"note": "Replaced by @code otel.sdk.exporter.span.exported @endcode.", "reason": "renamed",
  258. "renamed_to": "otel.sdk.exporter.span.exported"} <p> updowncounter
  259. */
  260. OPENTELEMETRY_DEPRECATED static constexpr const char *kMetricOtelSdkExporterSpanExportedCount =
  261. "otel.sdk.exporter.span.exported.count";
  262. OPENTELEMETRY_DEPRECATED static constexpr const char *descrMetricOtelSdkExporterSpanExportedCount =
  263. "Deprecated, use `otel.sdk.exporter.span.exported` instead.";
  264. OPENTELEMETRY_DEPRECATED static constexpr const char *unitMetricOtelSdkExporterSpanExportedCount =
  265. "{span}";
  266. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  267. CreateSyncInt64MetricOtelSdkExporterSpanExportedCount(metrics::Meter *meter)
  268. {
  269. return meter->CreateInt64UpDownCounter(kMetricOtelSdkExporterSpanExportedCount,
  270. descrMetricOtelSdkExporterSpanExportedCount,
  271. unitMetricOtelSdkExporterSpanExportedCount);
  272. }
  273. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  274. CreateSyncDoubleMetricOtelSdkExporterSpanExportedCount(metrics::Meter *meter)
  275. {
  276. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkExporterSpanExportedCount,
  277. descrMetricOtelSdkExporterSpanExportedCount,
  278. unitMetricOtelSdkExporterSpanExportedCount);
  279. }
  280. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  281. CreateAsyncInt64MetricOtelSdkExporterSpanExportedCount(metrics::Meter *meter)
  282. {
  283. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkExporterSpanExportedCount,
  284. descrMetricOtelSdkExporterSpanExportedCount,
  285. unitMetricOtelSdkExporterSpanExportedCount);
  286. }
  287. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  288. CreateAsyncDoubleMetricOtelSdkExporterSpanExportedCount(metrics::Meter *meter)
  289. {
  290. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkExporterSpanExportedCount,
  291. descrMetricOtelSdkExporterSpanExportedCount,
  292. unitMetricOtelSdkExporterSpanExportedCount);
  293. }
  294. /**
  295. The number of spans which were passed to the exporter, but that have not been exported yet
  296. (neither successful, nor failed) <p> For successful exports, @code error.type @endcode MUST NOT be
  297. set. For failed exports, @code error.type @endcode MUST contain the failure cause. <p>
  298. updowncounter
  299. */
  300. static constexpr const char *kMetricOtelSdkExporterSpanInflight = "otel.sdk.exporter.span.inflight";
  301. static constexpr const char *descrMetricOtelSdkExporterSpanInflight =
  302. "The number of spans which were passed to the exporter, but that have not been exported yet "
  303. "(neither successful, nor failed)";
  304. static constexpr const char *unitMetricOtelSdkExporterSpanInflight = "{span}";
  305. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  306. CreateSyncInt64MetricOtelSdkExporterSpanInflight(metrics::Meter *meter)
  307. {
  308. return meter->CreateInt64UpDownCounter(kMetricOtelSdkExporterSpanInflight,
  309. descrMetricOtelSdkExporterSpanInflight,
  310. unitMetricOtelSdkExporterSpanInflight);
  311. }
  312. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  313. CreateSyncDoubleMetricOtelSdkExporterSpanInflight(metrics::Meter *meter)
  314. {
  315. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkExporterSpanInflight,
  316. descrMetricOtelSdkExporterSpanInflight,
  317. unitMetricOtelSdkExporterSpanInflight);
  318. }
  319. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  320. CreateAsyncInt64MetricOtelSdkExporterSpanInflight(metrics::Meter *meter)
  321. {
  322. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkExporterSpanInflight,
  323. descrMetricOtelSdkExporterSpanInflight,
  324. unitMetricOtelSdkExporterSpanInflight);
  325. }
  326. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  327. CreateAsyncDoubleMetricOtelSdkExporterSpanInflight(metrics::Meter *meter)
  328. {
  329. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkExporterSpanInflight,
  330. descrMetricOtelSdkExporterSpanInflight,
  331. unitMetricOtelSdkExporterSpanInflight);
  332. }
  333. /**
  334. Deprecated, use @code otel.sdk.exporter.span.inflight @endcode instead.
  335. @deprecated
  336. {"note": "Replaced by @code otel.sdk.exporter.span.inflight @endcode.", "reason": "renamed",
  337. "renamed_to": "otel.sdk.exporter.span.inflight"} <p> updowncounter
  338. */
  339. OPENTELEMETRY_DEPRECATED static constexpr const char *kMetricOtelSdkExporterSpanInflightCount =
  340. "otel.sdk.exporter.span.inflight.count";
  341. OPENTELEMETRY_DEPRECATED static constexpr const char *descrMetricOtelSdkExporterSpanInflightCount =
  342. "Deprecated, use `otel.sdk.exporter.span.inflight` instead.";
  343. OPENTELEMETRY_DEPRECATED static constexpr const char *unitMetricOtelSdkExporterSpanInflightCount =
  344. "{span}";
  345. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  346. CreateSyncInt64MetricOtelSdkExporterSpanInflightCount(metrics::Meter *meter)
  347. {
  348. return meter->CreateInt64UpDownCounter(kMetricOtelSdkExporterSpanInflightCount,
  349. descrMetricOtelSdkExporterSpanInflightCount,
  350. unitMetricOtelSdkExporterSpanInflightCount);
  351. }
  352. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  353. CreateSyncDoubleMetricOtelSdkExporterSpanInflightCount(metrics::Meter *meter)
  354. {
  355. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkExporterSpanInflightCount,
  356. descrMetricOtelSdkExporterSpanInflightCount,
  357. unitMetricOtelSdkExporterSpanInflightCount);
  358. }
  359. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  360. CreateAsyncInt64MetricOtelSdkExporterSpanInflightCount(metrics::Meter *meter)
  361. {
  362. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkExporterSpanInflightCount,
  363. descrMetricOtelSdkExporterSpanInflightCount,
  364. unitMetricOtelSdkExporterSpanInflightCount);
  365. }
  366. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  367. CreateAsyncDoubleMetricOtelSdkExporterSpanInflightCount(metrics::Meter *meter)
  368. {
  369. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkExporterSpanInflightCount,
  370. descrMetricOtelSdkExporterSpanInflightCount,
  371. unitMetricOtelSdkExporterSpanInflightCount);
  372. }
  373. /**
  374. The number of logs submitted to enabled SDK Loggers
  375. <p>
  376. counter
  377. */
  378. static constexpr const char *kMetricOtelSdkLogCreated = "otel.sdk.log.created";
  379. static constexpr const char *descrMetricOtelSdkLogCreated =
  380. "The number of logs submitted to enabled SDK Loggers";
  381. static constexpr const char *unitMetricOtelSdkLogCreated = "{log_record}";
  382. static inline nostd::unique_ptr<metrics::Counter<uint64_t>> CreateSyncInt64MetricOtelSdkLogCreated(
  383. metrics::Meter *meter)
  384. {
  385. return meter->CreateUInt64Counter(kMetricOtelSdkLogCreated, descrMetricOtelSdkLogCreated,
  386. unitMetricOtelSdkLogCreated);
  387. }
  388. static inline nostd::unique_ptr<metrics::Counter<double>> CreateSyncDoubleMetricOtelSdkLogCreated(
  389. metrics::Meter *meter)
  390. {
  391. return meter->CreateDoubleCounter(kMetricOtelSdkLogCreated, descrMetricOtelSdkLogCreated,
  392. unitMetricOtelSdkLogCreated);
  393. }
  394. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  395. CreateAsyncInt64MetricOtelSdkLogCreated(metrics::Meter *meter)
  396. {
  397. return meter->CreateInt64ObservableCounter(kMetricOtelSdkLogCreated, descrMetricOtelSdkLogCreated,
  398. unitMetricOtelSdkLogCreated);
  399. }
  400. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  401. CreateAsyncDoubleMetricOtelSdkLogCreated(metrics::Meter *meter)
  402. {
  403. return meter->CreateDoubleObservableCounter(
  404. kMetricOtelSdkLogCreated, descrMetricOtelSdkLogCreated, unitMetricOtelSdkLogCreated);
  405. }
  406. /**
  407. The duration of the collect operation of the metric reader.
  408. <p>
  409. For successful collections, @code error.type @endcode MUST NOT be set. For failed collections,
  410. @code error.type @endcode SHOULD contain the failure cause. It can happen that metrics collection
  411. is successful for some MetricProducers, while others fail. In that case @code error.type @endcode
  412. SHOULD be set to any of the failure causes. <p> histogram
  413. */
  414. static constexpr const char *kMetricOtelSdkMetricReaderCollectionDuration =
  415. "otel.sdk.metric_reader.collection.duration";
  416. static constexpr const char *descrMetricOtelSdkMetricReaderCollectionDuration =
  417. "The duration of the collect operation of the metric reader.";
  418. static constexpr const char *unitMetricOtelSdkMetricReaderCollectionDuration = "s";
  419. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  420. CreateSyncInt64MetricOtelSdkMetricReaderCollectionDuration(metrics::Meter *meter)
  421. {
  422. return meter->CreateUInt64Histogram(kMetricOtelSdkMetricReaderCollectionDuration,
  423. descrMetricOtelSdkMetricReaderCollectionDuration,
  424. unitMetricOtelSdkMetricReaderCollectionDuration);
  425. }
  426. static inline nostd::unique_ptr<metrics::Histogram<double>>
  427. CreateSyncDoubleMetricOtelSdkMetricReaderCollectionDuration(metrics::Meter *meter)
  428. {
  429. return meter->CreateDoubleHistogram(kMetricOtelSdkMetricReaderCollectionDuration,
  430. descrMetricOtelSdkMetricReaderCollectionDuration,
  431. unitMetricOtelSdkMetricReaderCollectionDuration);
  432. }
  433. /**
  434. The number of log records for which the processing has finished, either successful or failed
  435. <p>
  436. For successful processing, @code error.type @endcode MUST NOT be set. For failed processing, @code
  437. error.type @endcode MUST contain the failure cause. For the SDK Simple and Batching Log Record
  438. Processor a log record is considered to be processed already when it has been submitted to the
  439. exporter, not when the corresponding export call has finished. <p> counter
  440. */
  441. static constexpr const char *kMetricOtelSdkProcessorLogProcessed =
  442. "otel.sdk.processor.log.processed";
  443. static constexpr const char *descrMetricOtelSdkProcessorLogProcessed =
  444. "The number of log records for which the processing has finished, either successful or failed";
  445. static constexpr const char *unitMetricOtelSdkProcessorLogProcessed = "{log_record}";
  446. static inline nostd::unique_ptr<metrics::Counter<uint64_t>>
  447. CreateSyncInt64MetricOtelSdkProcessorLogProcessed(metrics::Meter *meter)
  448. {
  449. return meter->CreateUInt64Counter(kMetricOtelSdkProcessorLogProcessed,
  450. descrMetricOtelSdkProcessorLogProcessed,
  451. unitMetricOtelSdkProcessorLogProcessed);
  452. }
  453. static inline nostd::unique_ptr<metrics::Counter<double>>
  454. CreateSyncDoubleMetricOtelSdkProcessorLogProcessed(metrics::Meter *meter)
  455. {
  456. return meter->CreateDoubleCounter(kMetricOtelSdkProcessorLogProcessed,
  457. descrMetricOtelSdkProcessorLogProcessed,
  458. unitMetricOtelSdkProcessorLogProcessed);
  459. }
  460. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  461. CreateAsyncInt64MetricOtelSdkProcessorLogProcessed(metrics::Meter *meter)
  462. {
  463. return meter->CreateInt64ObservableCounter(kMetricOtelSdkProcessorLogProcessed,
  464. descrMetricOtelSdkProcessorLogProcessed,
  465. unitMetricOtelSdkProcessorLogProcessed);
  466. }
  467. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  468. CreateAsyncDoubleMetricOtelSdkProcessorLogProcessed(metrics::Meter *meter)
  469. {
  470. return meter->CreateDoubleObservableCounter(kMetricOtelSdkProcessorLogProcessed,
  471. descrMetricOtelSdkProcessorLogProcessed,
  472. unitMetricOtelSdkProcessorLogProcessed);
  473. }
  474. /**
  475. The maximum number of log records the queue of a given instance of an SDK Log Record processor can
  476. hold <p> Only applies to Log Record processors which use a queue, e.g. the SDK Batching Log Record
  477. Processor. <p> updowncounter
  478. */
  479. static constexpr const char *kMetricOtelSdkProcessorLogQueueCapacity =
  480. "otel.sdk.processor.log.queue.capacity";
  481. static constexpr const char *descrMetricOtelSdkProcessorLogQueueCapacity =
  482. "The maximum number of log records the queue of a given instance of an SDK Log Record "
  483. "processor can hold";
  484. static constexpr const char *unitMetricOtelSdkProcessorLogQueueCapacity = "{log_record}";
  485. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  486. CreateSyncInt64MetricOtelSdkProcessorLogQueueCapacity(metrics::Meter *meter)
  487. {
  488. return meter->CreateInt64UpDownCounter(kMetricOtelSdkProcessorLogQueueCapacity,
  489. descrMetricOtelSdkProcessorLogQueueCapacity,
  490. unitMetricOtelSdkProcessorLogQueueCapacity);
  491. }
  492. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  493. CreateSyncDoubleMetricOtelSdkProcessorLogQueueCapacity(metrics::Meter *meter)
  494. {
  495. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkProcessorLogQueueCapacity,
  496. descrMetricOtelSdkProcessorLogQueueCapacity,
  497. unitMetricOtelSdkProcessorLogQueueCapacity);
  498. }
  499. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  500. CreateAsyncInt64MetricOtelSdkProcessorLogQueueCapacity(metrics::Meter *meter)
  501. {
  502. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkProcessorLogQueueCapacity,
  503. descrMetricOtelSdkProcessorLogQueueCapacity,
  504. unitMetricOtelSdkProcessorLogQueueCapacity);
  505. }
  506. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  507. CreateAsyncDoubleMetricOtelSdkProcessorLogQueueCapacity(metrics::Meter *meter)
  508. {
  509. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkProcessorLogQueueCapacity,
  510. descrMetricOtelSdkProcessorLogQueueCapacity,
  511. unitMetricOtelSdkProcessorLogQueueCapacity);
  512. }
  513. /**
  514. The number of log records in the queue of a given instance of an SDK log processor
  515. <p>
  516. Only applies to log record processors which use a queue, e.g. the SDK Batching Log Record
  517. Processor. <p> updowncounter
  518. */
  519. static constexpr const char *kMetricOtelSdkProcessorLogQueueSize =
  520. "otel.sdk.processor.log.queue.size";
  521. static constexpr const char *descrMetricOtelSdkProcessorLogQueueSize =
  522. "The number of log records in the queue of a given instance of an SDK log processor";
  523. static constexpr const char *unitMetricOtelSdkProcessorLogQueueSize = "{log_record}";
  524. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  525. CreateSyncInt64MetricOtelSdkProcessorLogQueueSize(metrics::Meter *meter)
  526. {
  527. return meter->CreateInt64UpDownCounter(kMetricOtelSdkProcessorLogQueueSize,
  528. descrMetricOtelSdkProcessorLogQueueSize,
  529. unitMetricOtelSdkProcessorLogQueueSize);
  530. }
  531. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  532. CreateSyncDoubleMetricOtelSdkProcessorLogQueueSize(metrics::Meter *meter)
  533. {
  534. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkProcessorLogQueueSize,
  535. descrMetricOtelSdkProcessorLogQueueSize,
  536. unitMetricOtelSdkProcessorLogQueueSize);
  537. }
  538. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  539. CreateAsyncInt64MetricOtelSdkProcessorLogQueueSize(metrics::Meter *meter)
  540. {
  541. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkProcessorLogQueueSize,
  542. descrMetricOtelSdkProcessorLogQueueSize,
  543. unitMetricOtelSdkProcessorLogQueueSize);
  544. }
  545. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  546. CreateAsyncDoubleMetricOtelSdkProcessorLogQueueSize(metrics::Meter *meter)
  547. {
  548. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkProcessorLogQueueSize,
  549. descrMetricOtelSdkProcessorLogQueueSize,
  550. unitMetricOtelSdkProcessorLogQueueSize);
  551. }
  552. /**
  553. The number of spans for which the processing has finished, either successful or failed
  554. <p>
  555. For successful processing, @code error.type @endcode MUST NOT be set. For failed processing, @code
  556. error.type @endcode MUST contain the failure cause. For the SDK Simple and Batching Span Processor
  557. a span is considered to be processed already when it has been submitted to the exporter, not when
  558. the corresponding export call has finished. <p> counter
  559. */
  560. static constexpr const char *kMetricOtelSdkProcessorSpanProcessed =
  561. "otel.sdk.processor.span.processed";
  562. static constexpr const char *descrMetricOtelSdkProcessorSpanProcessed =
  563. "The number of spans for which the processing has finished, either successful or failed";
  564. static constexpr const char *unitMetricOtelSdkProcessorSpanProcessed = "{span}";
  565. static inline nostd::unique_ptr<metrics::Counter<uint64_t>>
  566. CreateSyncInt64MetricOtelSdkProcessorSpanProcessed(metrics::Meter *meter)
  567. {
  568. return meter->CreateUInt64Counter(kMetricOtelSdkProcessorSpanProcessed,
  569. descrMetricOtelSdkProcessorSpanProcessed,
  570. unitMetricOtelSdkProcessorSpanProcessed);
  571. }
  572. static inline nostd::unique_ptr<metrics::Counter<double>>
  573. CreateSyncDoubleMetricOtelSdkProcessorSpanProcessed(metrics::Meter *meter)
  574. {
  575. return meter->CreateDoubleCounter(kMetricOtelSdkProcessorSpanProcessed,
  576. descrMetricOtelSdkProcessorSpanProcessed,
  577. unitMetricOtelSdkProcessorSpanProcessed);
  578. }
  579. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  580. CreateAsyncInt64MetricOtelSdkProcessorSpanProcessed(metrics::Meter *meter)
  581. {
  582. return meter->CreateInt64ObservableCounter(kMetricOtelSdkProcessorSpanProcessed,
  583. descrMetricOtelSdkProcessorSpanProcessed,
  584. unitMetricOtelSdkProcessorSpanProcessed);
  585. }
  586. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  587. CreateAsyncDoubleMetricOtelSdkProcessorSpanProcessed(metrics::Meter *meter)
  588. {
  589. return meter->CreateDoubleObservableCounter(kMetricOtelSdkProcessorSpanProcessed,
  590. descrMetricOtelSdkProcessorSpanProcessed,
  591. unitMetricOtelSdkProcessorSpanProcessed);
  592. }
  593. /**
  594. Deprecated, use @code otel.sdk.processor.span.processed @endcode instead.
  595. @deprecated
  596. {"note": "Replaced by @code otel.sdk.processor.span.processed @endcode.", "reason": "renamed",
  597. "renamed_to": "otel.sdk.processor.span.processed"} <p> updowncounter
  598. */
  599. OPENTELEMETRY_DEPRECATED static constexpr const char *kMetricOtelSdkProcessorSpanProcessedCount =
  600. "otel.sdk.processor.span.processed.count";
  601. OPENTELEMETRY_DEPRECATED static constexpr const char
  602. *descrMetricOtelSdkProcessorSpanProcessedCount =
  603. "Deprecated, use `otel.sdk.processor.span.processed` instead.";
  604. OPENTELEMETRY_DEPRECATED static constexpr const char *unitMetricOtelSdkProcessorSpanProcessedCount =
  605. "{span}";
  606. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  607. CreateSyncInt64MetricOtelSdkProcessorSpanProcessedCount(metrics::Meter *meter)
  608. {
  609. return meter->CreateInt64UpDownCounter(kMetricOtelSdkProcessorSpanProcessedCount,
  610. descrMetricOtelSdkProcessorSpanProcessedCount,
  611. unitMetricOtelSdkProcessorSpanProcessedCount);
  612. }
  613. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  614. CreateSyncDoubleMetricOtelSdkProcessorSpanProcessedCount(metrics::Meter *meter)
  615. {
  616. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkProcessorSpanProcessedCount,
  617. descrMetricOtelSdkProcessorSpanProcessedCount,
  618. unitMetricOtelSdkProcessorSpanProcessedCount);
  619. }
  620. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  621. CreateAsyncInt64MetricOtelSdkProcessorSpanProcessedCount(metrics::Meter *meter)
  622. {
  623. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkProcessorSpanProcessedCount,
  624. descrMetricOtelSdkProcessorSpanProcessedCount,
  625. unitMetricOtelSdkProcessorSpanProcessedCount);
  626. }
  627. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  628. CreateAsyncDoubleMetricOtelSdkProcessorSpanProcessedCount(metrics::Meter *meter)
  629. {
  630. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkProcessorSpanProcessedCount,
  631. descrMetricOtelSdkProcessorSpanProcessedCount,
  632. unitMetricOtelSdkProcessorSpanProcessedCount);
  633. }
  634. /**
  635. The maximum number of spans the queue of a given instance of an SDK span processor can hold
  636. <p>
  637. Only applies to span processors which use a queue, e.g. the SDK Batching Span Processor.
  638. <p>
  639. updowncounter
  640. */
  641. static constexpr const char *kMetricOtelSdkProcessorSpanQueueCapacity =
  642. "otel.sdk.processor.span.queue.capacity";
  643. static constexpr const char *descrMetricOtelSdkProcessorSpanQueueCapacity =
  644. "The maximum number of spans the queue of a given instance of an SDK span processor can hold";
  645. static constexpr const char *unitMetricOtelSdkProcessorSpanQueueCapacity = "{span}";
  646. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  647. CreateSyncInt64MetricOtelSdkProcessorSpanQueueCapacity(metrics::Meter *meter)
  648. {
  649. return meter->CreateInt64UpDownCounter(kMetricOtelSdkProcessorSpanQueueCapacity,
  650. descrMetricOtelSdkProcessorSpanQueueCapacity,
  651. unitMetricOtelSdkProcessorSpanQueueCapacity);
  652. }
  653. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  654. CreateSyncDoubleMetricOtelSdkProcessorSpanQueueCapacity(metrics::Meter *meter)
  655. {
  656. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkProcessorSpanQueueCapacity,
  657. descrMetricOtelSdkProcessorSpanQueueCapacity,
  658. unitMetricOtelSdkProcessorSpanQueueCapacity);
  659. }
  660. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  661. CreateAsyncInt64MetricOtelSdkProcessorSpanQueueCapacity(metrics::Meter *meter)
  662. {
  663. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkProcessorSpanQueueCapacity,
  664. descrMetricOtelSdkProcessorSpanQueueCapacity,
  665. unitMetricOtelSdkProcessorSpanQueueCapacity);
  666. }
  667. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  668. CreateAsyncDoubleMetricOtelSdkProcessorSpanQueueCapacity(metrics::Meter *meter)
  669. {
  670. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkProcessorSpanQueueCapacity,
  671. descrMetricOtelSdkProcessorSpanQueueCapacity,
  672. unitMetricOtelSdkProcessorSpanQueueCapacity);
  673. }
  674. /**
  675. The number of spans in the queue of a given instance of an SDK span processor
  676. <p>
  677. Only applies to span processors which use a queue, e.g. the SDK Batching Span Processor.
  678. <p>
  679. updowncounter
  680. */
  681. static constexpr const char *kMetricOtelSdkProcessorSpanQueueSize =
  682. "otel.sdk.processor.span.queue.size";
  683. static constexpr const char *descrMetricOtelSdkProcessorSpanQueueSize =
  684. "The number of spans in the queue of a given instance of an SDK span processor";
  685. static constexpr const char *unitMetricOtelSdkProcessorSpanQueueSize = "{span}";
  686. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  687. CreateSyncInt64MetricOtelSdkProcessorSpanQueueSize(metrics::Meter *meter)
  688. {
  689. return meter->CreateInt64UpDownCounter(kMetricOtelSdkProcessorSpanQueueSize,
  690. descrMetricOtelSdkProcessorSpanQueueSize,
  691. unitMetricOtelSdkProcessorSpanQueueSize);
  692. }
  693. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  694. CreateSyncDoubleMetricOtelSdkProcessorSpanQueueSize(metrics::Meter *meter)
  695. {
  696. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkProcessorSpanQueueSize,
  697. descrMetricOtelSdkProcessorSpanQueueSize,
  698. unitMetricOtelSdkProcessorSpanQueueSize);
  699. }
  700. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  701. CreateAsyncInt64MetricOtelSdkProcessorSpanQueueSize(metrics::Meter *meter)
  702. {
  703. return meter->CreateInt64ObservableUpDownCounter(kMetricOtelSdkProcessorSpanQueueSize,
  704. descrMetricOtelSdkProcessorSpanQueueSize,
  705. unitMetricOtelSdkProcessorSpanQueueSize);
  706. }
  707. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  708. CreateAsyncDoubleMetricOtelSdkProcessorSpanQueueSize(metrics::Meter *meter)
  709. {
  710. return meter->CreateDoubleObservableUpDownCounter(kMetricOtelSdkProcessorSpanQueueSize,
  711. descrMetricOtelSdkProcessorSpanQueueSize,
  712. unitMetricOtelSdkProcessorSpanQueueSize);
  713. }
  714. /**
  715. The number of created spans for which the end operation was called
  716. <p>
  717. For spans with @code recording=true @endcode: Implementations MUST record both @code
  718. otel.sdk.span.live @endcode and @code otel.sdk.span.ended @endcode. For spans with @code
  719. recording=false @endcode: If implementations decide to record this metric, they MUST also record
  720. @code otel.sdk.span.live @endcode. <p> counter
  721. */
  722. static constexpr const char *kMetricOtelSdkSpanEnded = "otel.sdk.span.ended";
  723. static constexpr const char *descrMetricOtelSdkSpanEnded =
  724. "The number of created spans for which the end operation was called";
  725. static constexpr const char *unitMetricOtelSdkSpanEnded = "{span}";
  726. static inline nostd::unique_ptr<metrics::Counter<uint64_t>> CreateSyncInt64MetricOtelSdkSpanEnded(
  727. metrics::Meter *meter)
  728. {
  729. return meter->CreateUInt64Counter(kMetricOtelSdkSpanEnded, descrMetricOtelSdkSpanEnded,
  730. unitMetricOtelSdkSpanEnded);
  731. }
  732. static inline nostd::unique_ptr<metrics::Counter<double>> CreateSyncDoubleMetricOtelSdkSpanEnded(
  733. metrics::Meter *meter)
  734. {
  735. return meter->CreateDoubleCounter(kMetricOtelSdkSpanEnded, descrMetricOtelSdkSpanEnded,
  736. unitMetricOtelSdkSpanEnded);
  737. }
  738. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  739. CreateAsyncInt64MetricOtelSdkSpanEnded(metrics::Meter *meter)
  740. {
  741. return meter->CreateInt64ObservableCounter(kMetricOtelSdkSpanEnded, descrMetricOtelSdkSpanEnded,
  742. unitMetricOtelSdkSpanEnded);
  743. }
  744. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  745. CreateAsyncDoubleMetricOtelSdkSpanEnded(metrics::Meter *meter)
  746. {
  747. return meter->CreateDoubleObservableCounter(kMetricOtelSdkSpanEnded, descrMetricOtelSdkSpanEnded,
  748. unitMetricOtelSdkSpanEnded);
  749. }
  750. /**
  751. Deprecated, use @code otel.sdk.span.ended @endcode instead.
  752. @deprecated
  753. {"note": "Replaced by @code otel.sdk.span.ended @endcode.", "reason": "renamed", "renamed_to":
  754. "otel.sdk.span.ended"} <p> counter
  755. */
  756. OPENTELEMETRY_DEPRECATED static constexpr const char *kMetricOtelSdkSpanEndedCount =
  757. "otel.sdk.span.ended.count";
  758. OPENTELEMETRY_DEPRECATED static constexpr const char *descrMetricOtelSdkSpanEndedCount =
  759. "Deprecated, use `otel.sdk.span.ended` instead.";
  760. OPENTELEMETRY_DEPRECATED static constexpr const char *unitMetricOtelSdkSpanEndedCount = "{span}";
  761. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::Counter<uint64_t>>
  762. CreateSyncInt64MetricOtelSdkSpanEndedCount(metrics::Meter *meter)
  763. {
  764. return meter->CreateUInt64Counter(kMetricOtelSdkSpanEndedCount, descrMetricOtelSdkSpanEndedCount,
  765. unitMetricOtelSdkSpanEndedCount);
  766. }
  767. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::Counter<double>>
  768. CreateSyncDoubleMetricOtelSdkSpanEndedCount(metrics::Meter *meter)
  769. {
  770. return meter->CreateDoubleCounter(kMetricOtelSdkSpanEndedCount, descrMetricOtelSdkSpanEndedCount,
  771. unitMetricOtelSdkSpanEndedCount);
  772. }
  773. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  774. CreateAsyncInt64MetricOtelSdkSpanEndedCount(metrics::Meter *meter)
  775. {
  776. return meter->CreateInt64ObservableCounter(kMetricOtelSdkSpanEndedCount,
  777. descrMetricOtelSdkSpanEndedCount,
  778. unitMetricOtelSdkSpanEndedCount);
  779. }
  780. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  781. CreateAsyncDoubleMetricOtelSdkSpanEndedCount(metrics::Meter *meter)
  782. {
  783. return meter->CreateDoubleObservableCounter(kMetricOtelSdkSpanEndedCount,
  784. descrMetricOtelSdkSpanEndedCount,
  785. unitMetricOtelSdkSpanEndedCount);
  786. }
  787. /**
  788. The number of created spans for which the end operation has not been called yet
  789. <p>
  790. For spans with @code recording=true @endcode: Implementations MUST record both @code
  791. otel.sdk.span.live @endcode and @code otel.sdk.span.ended @endcode. For spans with @code
  792. recording=false @endcode: If implementations decide to record this metric, they MUST also record
  793. @code otel.sdk.span.ended @endcode. <p> updowncounter
  794. */
  795. static constexpr const char *kMetricOtelSdkSpanLive = "otel.sdk.span.live";
  796. static constexpr const char *descrMetricOtelSdkSpanLive =
  797. "The number of created spans for which the end operation has not been called yet";
  798. static constexpr const char *unitMetricOtelSdkSpanLive = "{span}";
  799. static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  800. CreateSyncInt64MetricOtelSdkSpanLive(metrics::Meter *meter)
  801. {
  802. return meter->CreateInt64UpDownCounter(kMetricOtelSdkSpanLive, descrMetricOtelSdkSpanLive,
  803. unitMetricOtelSdkSpanLive);
  804. }
  805. static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  806. CreateSyncDoubleMetricOtelSdkSpanLive(metrics::Meter *meter)
  807. {
  808. return meter->CreateDoubleUpDownCounter(kMetricOtelSdkSpanLive, descrMetricOtelSdkSpanLive,
  809. unitMetricOtelSdkSpanLive);
  810. }
  811. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  812. CreateAsyncInt64MetricOtelSdkSpanLive(metrics::Meter *meter)
  813. {
  814. return meter->CreateInt64ObservableUpDownCounter(
  815. kMetricOtelSdkSpanLive, descrMetricOtelSdkSpanLive, unitMetricOtelSdkSpanLive);
  816. }
  817. static inline nostd::shared_ptr<metrics::ObservableInstrument>
  818. CreateAsyncDoubleMetricOtelSdkSpanLive(metrics::Meter *meter)
  819. {
  820. return meter->CreateDoubleObservableUpDownCounter(
  821. kMetricOtelSdkSpanLive, descrMetricOtelSdkSpanLive, unitMetricOtelSdkSpanLive);
  822. }
  823. /**
  824. Deprecated, use @code otel.sdk.span.live @endcode instead.
  825. @deprecated
  826. {"note": "Replaced by @code otel.sdk.span.live @endcode.", "reason": "renamed", "renamed_to":
  827. "otel.sdk.span.live"} <p> updowncounter
  828. */
  829. OPENTELEMETRY_DEPRECATED static constexpr const char *kMetricOtelSdkSpanLiveCount =
  830. "otel.sdk.span.live.count";
  831. OPENTELEMETRY_DEPRECATED static constexpr const char *descrMetricOtelSdkSpanLiveCount =
  832. "Deprecated, use `otel.sdk.span.live` instead.";
  833. OPENTELEMETRY_DEPRECATED static constexpr const char *unitMetricOtelSdkSpanLiveCount = "{span}";
  834. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<int64_t>>
  835. CreateSyncInt64MetricOtelSdkSpanLiveCount(metrics::Meter *meter)
  836. {
  837. return meter->CreateInt64UpDownCounter(
  838. kMetricOtelSdkSpanLiveCount, descrMetricOtelSdkSpanLiveCount, unitMetricOtelSdkSpanLiveCount);
  839. }
  840. OPENTELEMETRY_DEPRECATED static inline nostd::unique_ptr<metrics::UpDownCounter<double>>
  841. CreateSyncDoubleMetricOtelSdkSpanLiveCount(metrics::Meter *meter)
  842. {
  843. return meter->CreateDoubleUpDownCounter(
  844. kMetricOtelSdkSpanLiveCount, descrMetricOtelSdkSpanLiveCount, unitMetricOtelSdkSpanLiveCount);
  845. }
  846. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  847. CreateAsyncInt64MetricOtelSdkSpanLiveCount(metrics::Meter *meter)
  848. {
  849. return meter->CreateInt64ObservableUpDownCounter(
  850. kMetricOtelSdkSpanLiveCount, descrMetricOtelSdkSpanLiveCount, unitMetricOtelSdkSpanLiveCount);
  851. }
  852. OPENTELEMETRY_DEPRECATED static inline nostd::shared_ptr<metrics::ObservableInstrument>
  853. CreateAsyncDoubleMetricOtelSdkSpanLiveCount(metrics::Meter *meter)
  854. {
  855. return meter->CreateDoubleObservableUpDownCounter(
  856. kMetricOtelSdkSpanLiveCount, descrMetricOtelSdkSpanLiveCount, unitMetricOtelSdkSpanLiveCount);
  857. }
  858. } // namespace otel
  859. } // namespace semconv
  860. OPENTELEMETRY_END_NAMESPACE