measures.cc
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2018 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
20 
22 
23 #include "opencensus/stats/stats.h"
24 
26 
27 namespace grpc {
28 
29 using ::opencensus::stats::MeasureDouble;
30 using ::opencensus::stats::MeasureInt64;
31 
32 // These measure definitions should be kept in sync across opencensus
33 // implementations--see
34 // https://github.com/census-instrumentation/opencensus-java/blob/master/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcMeasureConstants.java.
35 
36 namespace {
37 
38 // Unit constants
39 constexpr char kUnitBytes[] = "By";
40 constexpr char kUnitMilliseconds[] = "ms";
41 constexpr char kCount[] = "1";
42 
43 } // namespace
44 
45 // Client
46 MeasureDouble RpcClientSentBytesPerRpc() {
47  static const auto measure = MeasureDouble::Register(
49  "Total bytes sent across all request messages per RPC", kUnitBytes);
50  return measure;
51 }
52 
54  static const auto measure = MeasureDouble::Register(
56  "Total bytes received across all response messages per RPC", kUnitBytes);
57  return measure;
58 }
59 
60 MeasureDouble RpcClientRoundtripLatency() {
61  static const auto measure = MeasureDouble::Register(
63  "Time between first byte of request sent to last byte of response "
64  "received, or terminal error",
65  kUnitMilliseconds);
66  return measure;
67 }
68 
69 MeasureDouble RpcClientServerLatency() {
70  static const auto measure = MeasureDouble::Register(
72  "Time between first byte of request received to last byte of response "
73  "sent, or terminal error (propagated from the server)",
74  kUnitMilliseconds);
75  return measure;
76 }
77 
79  static const auto measure =
80  MeasureInt64::Register(kRpcClientSentMessagesPerRpcMeasureName,
81  "Number of messages sent per RPC", kCount);
82  return measure;
83 }
84 
86  static const auto measure =
87  MeasureInt64::Register(kRpcClientReceivedMessagesPerRpcMeasureName,
88  "Number of messages received per RPC", kCount);
89  return measure;
90 }
91 
92 // Client per-overall-client-call measures
93 MeasureInt64 RpcClientRetriesPerCall() {
94  static const auto measure =
95  MeasureInt64::Register(kRpcClientRetriesPerCallMeasureName,
96  "Number of retry or hedging attempts excluding "
97  "transparent retries made during the client call",
98  kCount);
99  return measure;
100 }
101 
103  static const auto measure = MeasureInt64::Register(
105  "Number of transparent retries made during the client call", kCount);
106  return measure;
107 }
108 
109 MeasureDouble RpcClientRetryDelayPerCall() {
110  static const auto measure =
111  MeasureDouble::Register(kRpcClientRetryDelayPerCallMeasureName,
112  "Total time of delay while there is no active "
113  "attempt during the client call",
114  kUnitMilliseconds);
115  return measure;
116 }
117 
118 // Server
119 MeasureDouble RpcServerSentBytesPerRpc() {
120  static const auto measure = MeasureDouble::Register(
122  "Total bytes sent across all messages per RPC", kUnitBytes);
123  return measure;
124 }
125 
127  static const auto measure = MeasureDouble::Register(
129  "Total bytes received across all messages per RPC", kUnitBytes);
130  return measure;
131 }
132 
133 MeasureDouble RpcServerServerLatency() {
134  static const auto measure = MeasureDouble::Register(
136  "Time between first byte of request received to last byte of response "
137  "sent, or terminal error",
138  kUnitMilliseconds);
139  return measure;
140 }
141 
143  static const auto measure =
144  MeasureInt64::Register(kRpcServerSentMessagesPerRpcMeasureName,
145  "Number of messages sent per RPC", kCount);
146  return measure;
147 }
148 
150  static const auto measure =
151  MeasureInt64::Register(kRpcServerReceivedMessagesPerRpcMeasureName,
152  "Number of messages received per RPC", kCount);
153  return measure;
154 }
155 
156 } // namespace grpc
grpc::RpcServerServerLatency
MeasureDouble RpcServerServerLatency()
Definition: measures.cc:133
grpc::kRpcServerSentMessagesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcServerSentMessagesPerRpcMeasureName
Definition: grpc_plugin.cc:138
grpc::kRpcServerSentBytesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcServerSentBytesPerRpcMeasureName
Definition: grpc_plugin.cc:141
grpc::kRpcClientServerLatencyMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientServerLatencyMeasureName
Definition: grpc_plugin.cc:123
grpc::RpcClientRetriesPerCall
MeasureInt64 RpcClientRetriesPerCall()
Definition: measures.cc:93
grpc
Definition: grpcpp/alarm.h:33
grpc::RpcClientReceivedBytesPerRpc
MeasureDouble RpcClientReceivedBytesPerRpc()
Definition: measures.cc:53
grpc::kRpcClientTransparentRetriesPerCallMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientTransparentRetriesPerCallMeasureName
Definition: grpc_plugin.cc:130
grpc::kRpcClientSentMessagesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientSentMessagesPerRpcMeasureName
Definition: grpc_plugin.cc:106
grpc::RpcClientRetryDelayPerCall
MeasureDouble RpcClientRetryDelayPerCall()
Definition: measures.cc:109
grpc::RpcClientReceivedMessagesPerRpc
MeasureInt64 RpcClientReceivedMessagesPerRpc()
Definition: measures.cc:85
grpc::RpcServerSentMessagesPerRpc
MeasureInt64 RpcServerSentMessagesPerRpc()
Definition: measures.cc:142
grpc::RpcClientRoundtripLatency
MeasureDouble RpcClientRoundtripLatency()
Definition: measures.cc:60
grpc::RpcClientServerLatency
MeasureDouble RpcClientServerLatency()
Definition: measures.cc:69
grpc::kRpcClientRetriesPerCallMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientRetriesPerCallMeasureName
Definition: grpc_plugin.cc:126
grpc::kRpcClientReceivedBytesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientReceivedBytesPerRpcMeasureName
Definition: grpc_plugin.cc:117
grpc::RpcClientSentBytesPerRpc
MeasureDouble RpcClientSentBytesPerRpc()
Definition: measures.cc:46
measures.h
grpc_plugin.h
grpc::kRpcClientRetryDelayPerCallMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientRetryDelayPerCallMeasureName
Definition: grpc_plugin.cc:133
grpc::kRpcServerServerLatencyMeasureName
const ABSL_CONST_INIT absl::string_view kRpcServerServerLatencyMeasureName
Definition: grpc_plugin.cc:152
grpc::RpcClientSentMessagesPerRpc
MeasureInt64 RpcClientSentMessagesPerRpc()
Definition: measures.cc:78
grpc::kRpcClientRoundtripLatencyMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientRoundtripLatencyMeasureName
Definition: grpc_plugin.cc:120
grpc::RpcServerReceivedBytesPerRpc
MeasureDouble RpcServerReceivedBytesPerRpc()
Definition: measures.cc:126
grpc::RpcClientTransparentRetriesPerCall
MeasureInt64 RpcClientTransparentRetriesPerCall()
Definition: measures.cc:102
grpc::kRpcClientSentBytesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientSentBytesPerRpcMeasureName
Definition: grpc_plugin.cc:109
grpc::RpcServerSentBytesPerRpc
MeasureDouble RpcServerSentBytesPerRpc()
Definition: measures.cc:119
grpc::RpcServerReceivedMessagesPerRpc
MeasureInt64 RpcServerReceivedMessagesPerRpc()
Definition: measures.cc:149
grpc::kRpcServerReceivedBytesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcServerReceivedBytesPerRpcMeasureName
Definition: grpc_plugin.cc:149
grpc::kRpcClientReceivedMessagesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcClientReceivedMessagesPerRpcMeasureName
Definition: grpc_plugin.cc:113
grpc::kRpcServerReceivedMessagesPerRpcMeasureName
const ABSL_CONST_INIT absl::string_view kRpcServerReceivedMessagesPerRpcMeasureName
Definition: grpc_plugin.cc:145
port_platform.h


grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:23