rpc_metrics.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  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 rpc
  17. {
  18. /**
  19. * Measures the duration of outbound RPC.
  20. * <p>
  21. * While streaming RPCs may record this metric as start-of-batch
  22. * to end-of-batch, it's hard to interpret in practice.
  23. * <p>
  24. * <strong>Streaming</strong>: N/A.
  25. * <p>
  26. * histogram
  27. */
  28. static constexpr const char *kMetricRpcClientDuration = "rpc.client.duration";
  29. static constexpr const char *descrMetricRpcClientDuration =
  30. "Measures the duration of outbound RPC.";
  31. static constexpr const char *unitMetricRpcClientDuration = "ms";
  32. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  33. CreateSyncInt64MetricRpcClientDuration(metrics::Meter *meter)
  34. {
  35. return meter->CreateUInt64Histogram(kMetricRpcClientDuration, descrMetricRpcClientDuration,
  36. unitMetricRpcClientDuration);
  37. }
  38. static inline nostd::unique_ptr<metrics::Histogram<double>> CreateSyncDoubleMetricRpcClientDuration(
  39. metrics::Meter *meter)
  40. {
  41. return meter->CreateDoubleHistogram(kMetricRpcClientDuration, descrMetricRpcClientDuration,
  42. unitMetricRpcClientDuration);
  43. }
  44. /**
  45. * Measures the size of RPC request messages (uncompressed).
  46. * <p>
  47. * <strong>Streaming</strong>: Recorded per message in a streaming batch
  48. * <p>
  49. * histogram
  50. */
  51. static constexpr const char *kMetricRpcClientRequestSize = "rpc.client.request.size";
  52. static constexpr const char *descrMetricRpcClientRequestSize =
  53. "Measures the size of RPC request messages (uncompressed).";
  54. static constexpr const char *unitMetricRpcClientRequestSize = "By";
  55. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  56. CreateSyncInt64MetricRpcClientRequestSize(metrics::Meter *meter)
  57. {
  58. return meter->CreateUInt64Histogram(kMetricRpcClientRequestSize, descrMetricRpcClientRequestSize,
  59. unitMetricRpcClientRequestSize);
  60. }
  61. static inline nostd::unique_ptr<metrics::Histogram<double>>
  62. CreateSyncDoubleMetricRpcClientRequestSize(metrics::Meter *meter)
  63. {
  64. return meter->CreateDoubleHistogram(kMetricRpcClientRequestSize, descrMetricRpcClientRequestSize,
  65. unitMetricRpcClientRequestSize);
  66. }
  67. /**
  68. * Measures the number of messages received per RPC.
  69. * <p>
  70. * Should be 1 for all non-streaming RPCs.
  71. * <p>
  72. * <strong>Streaming</strong>: This metric is required for server and client streaming RPCs
  73. * <p>
  74. * histogram
  75. */
  76. static constexpr const char *kMetricRpcClientRequestsPerRpc = "rpc.client.requests_per_rpc";
  77. static constexpr const char *descrMetricRpcClientRequestsPerRpc =
  78. "Measures the number of messages received per RPC.";
  79. static constexpr const char *unitMetricRpcClientRequestsPerRpc = "{count}";
  80. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  81. CreateSyncInt64MetricRpcClientRequestsPerRpc(metrics::Meter *meter)
  82. {
  83. return meter->CreateUInt64Histogram(kMetricRpcClientRequestsPerRpc,
  84. descrMetricRpcClientRequestsPerRpc,
  85. unitMetricRpcClientRequestsPerRpc);
  86. }
  87. static inline nostd::unique_ptr<metrics::Histogram<double>>
  88. CreateSyncDoubleMetricRpcClientRequestsPerRpc(metrics::Meter *meter)
  89. {
  90. return meter->CreateDoubleHistogram(kMetricRpcClientRequestsPerRpc,
  91. descrMetricRpcClientRequestsPerRpc,
  92. unitMetricRpcClientRequestsPerRpc);
  93. }
  94. /**
  95. * Measures the size of RPC response messages (uncompressed).
  96. * <p>
  97. * <strong>Streaming</strong>: Recorded per response in a streaming batch
  98. * <p>
  99. * histogram
  100. */
  101. static constexpr const char *kMetricRpcClientResponseSize = "rpc.client.response.size";
  102. static constexpr const char *descrMetricRpcClientResponseSize =
  103. "Measures the size of RPC response messages (uncompressed).";
  104. static constexpr const char *unitMetricRpcClientResponseSize = "By";
  105. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  106. CreateSyncInt64MetricRpcClientResponseSize(metrics::Meter *meter)
  107. {
  108. return meter->CreateUInt64Histogram(kMetricRpcClientResponseSize,
  109. descrMetricRpcClientResponseSize,
  110. unitMetricRpcClientResponseSize);
  111. }
  112. static inline nostd::unique_ptr<metrics::Histogram<double>>
  113. CreateSyncDoubleMetricRpcClientResponseSize(metrics::Meter *meter)
  114. {
  115. return meter->CreateDoubleHistogram(kMetricRpcClientResponseSize,
  116. descrMetricRpcClientResponseSize,
  117. unitMetricRpcClientResponseSize);
  118. }
  119. /**
  120. * Measures the number of messages sent per RPC.
  121. * <p>
  122. * Should be 1 for all non-streaming RPCs.
  123. * <p>
  124. * <strong>Streaming</strong>: This metric is required for server and client streaming RPCs
  125. * <p>
  126. * histogram
  127. */
  128. static constexpr const char *kMetricRpcClientResponsesPerRpc = "rpc.client.responses_per_rpc";
  129. static constexpr const char *descrMetricRpcClientResponsesPerRpc =
  130. "Measures the number of messages sent per RPC.";
  131. static constexpr const char *unitMetricRpcClientResponsesPerRpc = "{count}";
  132. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  133. CreateSyncInt64MetricRpcClientResponsesPerRpc(metrics::Meter *meter)
  134. {
  135. return meter->CreateUInt64Histogram(kMetricRpcClientResponsesPerRpc,
  136. descrMetricRpcClientResponsesPerRpc,
  137. unitMetricRpcClientResponsesPerRpc);
  138. }
  139. static inline nostd::unique_ptr<metrics::Histogram<double>>
  140. CreateSyncDoubleMetricRpcClientResponsesPerRpc(metrics::Meter *meter)
  141. {
  142. return meter->CreateDoubleHistogram(kMetricRpcClientResponsesPerRpc,
  143. descrMetricRpcClientResponsesPerRpc,
  144. unitMetricRpcClientResponsesPerRpc);
  145. }
  146. /**
  147. * Measures the duration of inbound RPC.
  148. * <p>
  149. * While streaming RPCs may record this metric as start-of-batch
  150. * to end-of-batch, it's hard to interpret in practice.
  151. * <p>
  152. * <strong>Streaming</strong>: N/A.
  153. * <p>
  154. * histogram
  155. */
  156. static constexpr const char *kMetricRpcServerDuration = "rpc.server.duration";
  157. static constexpr const char *descrMetricRpcServerDuration = "Measures the duration of inbound RPC.";
  158. static constexpr const char *unitMetricRpcServerDuration = "ms";
  159. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  160. CreateSyncInt64MetricRpcServerDuration(metrics::Meter *meter)
  161. {
  162. return meter->CreateUInt64Histogram(kMetricRpcServerDuration, descrMetricRpcServerDuration,
  163. unitMetricRpcServerDuration);
  164. }
  165. static inline nostd::unique_ptr<metrics::Histogram<double>> CreateSyncDoubleMetricRpcServerDuration(
  166. metrics::Meter *meter)
  167. {
  168. return meter->CreateDoubleHistogram(kMetricRpcServerDuration, descrMetricRpcServerDuration,
  169. unitMetricRpcServerDuration);
  170. }
  171. /**
  172. * Measures the size of RPC request messages (uncompressed).
  173. * <p>
  174. * <strong>Streaming</strong>: Recorded per message in a streaming batch
  175. * <p>
  176. * histogram
  177. */
  178. static constexpr const char *kMetricRpcServerRequestSize = "rpc.server.request.size";
  179. static constexpr const char *descrMetricRpcServerRequestSize =
  180. "Measures the size of RPC request messages (uncompressed).";
  181. static constexpr const char *unitMetricRpcServerRequestSize = "By";
  182. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  183. CreateSyncInt64MetricRpcServerRequestSize(metrics::Meter *meter)
  184. {
  185. return meter->CreateUInt64Histogram(kMetricRpcServerRequestSize, descrMetricRpcServerRequestSize,
  186. unitMetricRpcServerRequestSize);
  187. }
  188. static inline nostd::unique_ptr<metrics::Histogram<double>>
  189. CreateSyncDoubleMetricRpcServerRequestSize(metrics::Meter *meter)
  190. {
  191. return meter->CreateDoubleHistogram(kMetricRpcServerRequestSize, descrMetricRpcServerRequestSize,
  192. unitMetricRpcServerRequestSize);
  193. }
  194. /**
  195. * Measures the number of messages received per RPC.
  196. * <p>
  197. * Should be 1 for all non-streaming RPCs.
  198. * <p>
  199. * <strong>Streaming</strong> : This metric is required for server and client streaming RPCs
  200. * <p>
  201. * histogram
  202. */
  203. static constexpr const char *kMetricRpcServerRequestsPerRpc = "rpc.server.requests_per_rpc";
  204. static constexpr const char *descrMetricRpcServerRequestsPerRpc =
  205. "Measures the number of messages received per RPC.";
  206. static constexpr const char *unitMetricRpcServerRequestsPerRpc = "{count}";
  207. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  208. CreateSyncInt64MetricRpcServerRequestsPerRpc(metrics::Meter *meter)
  209. {
  210. return meter->CreateUInt64Histogram(kMetricRpcServerRequestsPerRpc,
  211. descrMetricRpcServerRequestsPerRpc,
  212. unitMetricRpcServerRequestsPerRpc);
  213. }
  214. static inline nostd::unique_ptr<metrics::Histogram<double>>
  215. CreateSyncDoubleMetricRpcServerRequestsPerRpc(metrics::Meter *meter)
  216. {
  217. return meter->CreateDoubleHistogram(kMetricRpcServerRequestsPerRpc,
  218. descrMetricRpcServerRequestsPerRpc,
  219. unitMetricRpcServerRequestsPerRpc);
  220. }
  221. /**
  222. * Measures the size of RPC response messages (uncompressed).
  223. * <p>
  224. * <strong>Streaming</strong>: Recorded per response in a streaming batch
  225. * <p>
  226. * histogram
  227. */
  228. static constexpr const char *kMetricRpcServerResponseSize = "rpc.server.response.size";
  229. static constexpr const char *descrMetricRpcServerResponseSize =
  230. "Measures the size of RPC response messages (uncompressed).";
  231. static constexpr const char *unitMetricRpcServerResponseSize = "By";
  232. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  233. CreateSyncInt64MetricRpcServerResponseSize(metrics::Meter *meter)
  234. {
  235. return meter->CreateUInt64Histogram(kMetricRpcServerResponseSize,
  236. descrMetricRpcServerResponseSize,
  237. unitMetricRpcServerResponseSize);
  238. }
  239. static inline nostd::unique_ptr<metrics::Histogram<double>>
  240. CreateSyncDoubleMetricRpcServerResponseSize(metrics::Meter *meter)
  241. {
  242. return meter->CreateDoubleHistogram(kMetricRpcServerResponseSize,
  243. descrMetricRpcServerResponseSize,
  244. unitMetricRpcServerResponseSize);
  245. }
  246. /**
  247. * Measures the number of messages sent per RPC.
  248. * <p>
  249. * Should be 1 for all non-streaming RPCs.
  250. * <p>
  251. * <strong>Streaming</strong>: This metric is required for server and client streaming RPCs
  252. * <p>
  253. * histogram
  254. */
  255. static constexpr const char *kMetricRpcServerResponsesPerRpc = "rpc.server.responses_per_rpc";
  256. static constexpr const char *descrMetricRpcServerResponsesPerRpc =
  257. "Measures the number of messages sent per RPC.";
  258. static constexpr const char *unitMetricRpcServerResponsesPerRpc = "{count}";
  259. static inline nostd::unique_ptr<metrics::Histogram<uint64_t>>
  260. CreateSyncInt64MetricRpcServerResponsesPerRpc(metrics::Meter *meter)
  261. {
  262. return meter->CreateUInt64Histogram(kMetricRpcServerResponsesPerRpc,
  263. descrMetricRpcServerResponsesPerRpc,
  264. unitMetricRpcServerResponsesPerRpc);
  265. }
  266. static inline nostd::unique_ptr<metrics::Histogram<double>>
  267. CreateSyncDoubleMetricRpcServerResponsesPerRpc(metrics::Meter *meter)
  268. {
  269. return meter->CreateDoubleHistogram(kMetricRpcServerResponsesPerRpc,
  270. descrMetricRpcServerResponsesPerRpc,
  271. unitMetricRpcServerResponsesPerRpc);
  272. }
  273. } // namespace rpc
  274. } // namespace semconv
  275. OPENTELEMETRY_END_NAMESPACE