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
19 #include <grpc/support/port_platform.h>
20
21 #include <vector>
22
23 #include "absl/time/time.h"
24 #include "opencensus/stats/stats.h"
25
26 #include <grpcpp/opencensus.h>
27
28 #include "src/cpp/ext/filters/census/grpc_plugin.h"
29
30 namespace grpc {
31
32 using ::opencensus::stats::Aggregation;
33 using ::opencensus::stats::AggregationWindow;
34 using ::opencensus::stats::BucketBoundaries;
35 using ::opencensus::stats::ViewDescriptor;
36
37 // These measure definitions should be kept in sync across opencensus
38 // implementations.
39
40 namespace {
41
BytesDistributionAggregation()42 Aggregation BytesDistributionAggregation() {
43 return Aggregation::Distribution(BucketBoundaries::Explicit(
44 {0, 1024, 2048, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216,
45 67108864, 268435456, 1073741824, 4294967296}));
46 }
47
MillisDistributionAggregation()48 Aggregation MillisDistributionAggregation() {
49 return Aggregation::Distribution(BucketBoundaries::Explicit(
50 {0, 0.01, 0.05, 0.1, 0.3, 0.6, 0.8, 1, 2, 3, 4,
51 5, 6, 8, 10, 13, 16, 20, 25, 30, 40, 50,
52 65, 80, 100, 130, 160, 200, 250, 300, 400, 500, 650,
53 800, 1000, 2000, 5000, 10000, 20000, 50000, 100000}));
54 }
55
SetConstantLabels(ViewDescriptor * descriptor)56 void SetConstantLabels(ViewDescriptor* descriptor) {
57 for (const auto& label :
58 grpc::internal::OpenCensusRegistry::Get().ConstantLabels()) {
59 descriptor->add_column(label.tag_key);
60 }
61 }
62
CountDistributionAggregation()63 Aggregation CountDistributionAggregation() {
64 return Aggregation::Distribution(BucketBoundaries::Exponential(17, 1.0, 2.0));
65 }
66
DefaultViewDescriptor()67 ViewDescriptor DefaultViewDescriptor() {
68 auto descriptor = ViewDescriptor();
69 SetConstantLabels(&descriptor);
70 return descriptor;
71 }
72
MinuteDescriptor()73 ViewDescriptor MinuteDescriptor() {
74 auto descriptor = DefaultViewDescriptor();
75 SetAggregationWindow(AggregationWindow::Interval(absl::Minutes(1)),
76 &descriptor);
77 return descriptor;
78 }
79
HourDescriptor()80 ViewDescriptor HourDescriptor() {
81 auto descriptor = DefaultViewDescriptor();
82 SetAggregationWindow(AggregationWindow::Interval(absl::Hours(1)),
83 &descriptor);
84 return descriptor;
85 }
86
87 } // namespace
88
RegisterOpenCensusViewsForExport()89 void RegisterOpenCensusViewsForExport() {
90 experimental::ClientSentMessagesPerRpcCumulative().RegisterForExport();
91 experimental::ClientSentBytesPerRpcCumulative().RegisterForExport();
92 experimental::ClientReceivedMessagesPerRpcCumulative().RegisterForExport();
93 experimental::ClientReceivedBytesPerRpcCumulative().RegisterForExport();
94 experimental::ClientRoundtripLatencyCumulative().RegisterForExport();
95 experimental::ClientServerLatencyCumulative().RegisterForExport();
96
97 experimental::ServerSentMessagesPerRpcCumulative().RegisterForExport();
98 experimental::ServerSentBytesPerRpcCumulative().RegisterForExport();
99 experimental::ServerReceivedMessagesPerRpcCumulative().RegisterForExport();
100 experimental::ServerReceivedBytesPerRpcCumulative().RegisterForExport();
101 experimental::ServerServerLatencyCumulative().RegisterForExport();
102 }
103
104 namespace experimental {
105
106 // client
ClientStartedRpcs()107 const ViewDescriptor& ClientStartedRpcs() {
108 const static ViewDescriptor descriptor =
109 DefaultViewDescriptor()
110 .set_name("grpc.io/client/started_rpcs")
111 .set_measure(kRpcClientStartedRpcsMeasureName)
112 .set_aggregation(Aggregation::Count())
113 .add_column(ClientMethodTagKey());
114 return descriptor;
115 }
116
ClientCompletedRpcs()117 const ViewDescriptor& ClientCompletedRpcs() {
118 const static ViewDescriptor descriptor =
119 DefaultViewDescriptor()
120 .set_name("grpc.io/client/completed_rpcs")
121 .set_measure(kRpcClientRoundtripLatencyMeasureName)
122 .set_aggregation(Aggregation::Count())
123 .add_column(ClientMethodTagKey())
124 .add_column(ClientStatusTagKey());
125 return descriptor;
126 }
127
ClientRoundtripLatency()128 const ViewDescriptor& ClientRoundtripLatency() {
129 const static ViewDescriptor descriptor =
130 DefaultViewDescriptor()
131 .set_name("grpc.io/client/roundtrip_latency")
132 .set_measure(kRpcClientRoundtripLatencyMeasureName)
133 .set_aggregation(MillisDistributionAggregation())
134 .add_column(ClientMethodTagKey());
135 return descriptor;
136 }
137
ClientTransportLatency()138 const ViewDescriptor& ClientTransportLatency() {
139 const static ViewDescriptor descriptor =
140 DefaultViewDescriptor()
141 .set_name("grpc.io/client/transport_latency")
142 .set_measure(kRpcClientTransportLatencyMeasureName)
143 .set_aggregation(MillisDistributionAggregation())
144 .add_column(ClientMethodTagKey());
145 return descriptor;
146 }
147
ClientSentCompressedMessageBytesPerRpc()148 const ViewDescriptor& ClientSentCompressedMessageBytesPerRpc() {
149 const static ViewDescriptor descriptor =
150 DefaultViewDescriptor()
151 .set_name("grpc.io/client/sent_compressed_message_bytes_per_rpc")
152 .set_measure(kRpcClientSentBytesPerRpcMeasureName)
153 .set_aggregation(BytesDistributionAggregation())
154 .add_column(ClientMethodTagKey())
155 .add_column(ClientStatusTagKey());
156 return descriptor;
157 }
158
ClientReceivedCompressedMessageBytesPerRpc()159 const ViewDescriptor& ClientReceivedCompressedMessageBytesPerRpc() {
160 const static ViewDescriptor descriptor =
161 DefaultViewDescriptor()
162 .set_name("grpc.io/client/received_compressed_message_bytes_per_rpc")
163 .set_measure(kRpcClientReceivedBytesPerRpcMeasureName)
164 .set_aggregation(BytesDistributionAggregation())
165 .add_column(ClientMethodTagKey())
166 .add_column(ClientStatusTagKey());
167 return descriptor;
168 }
169
170 // server
ServerStartedRpcs()171 const ViewDescriptor& ServerStartedRpcs() {
172 const static ViewDescriptor descriptor =
173 DefaultViewDescriptor()
174 .set_name("grpc.io/server/started_rpcs")
175 .set_measure(kRpcServerStartedRpcsMeasureName)
176 .set_aggregation(Aggregation::Count())
177 .add_column(ServerMethodTagKey());
178 return descriptor;
179 }
180
ServerCompletedRpcs()181 const ViewDescriptor& ServerCompletedRpcs() {
182 const static ViewDescriptor descriptor =
183 DefaultViewDescriptor()
184 .set_name("grpc.io/server/completed_rpcs")
185 .set_measure(kRpcServerServerLatencyMeasureName)
186 .set_aggregation(Aggregation::Count())
187 .add_column(ServerMethodTagKey())
188 .add_column(ServerStatusTagKey());
189 return descriptor;
190 }
191
ServerSentCompressedMessageBytesPerRpc()192 const ViewDescriptor& ServerSentCompressedMessageBytesPerRpc() {
193 const static ViewDescriptor descriptor =
194 DefaultViewDescriptor()
195 .set_name("grpc.io/server/sent_compressed_message_bytes_per_rpc")
196 .set_measure(kRpcServerSentBytesPerRpcMeasureName)
197 .set_aggregation(BytesDistributionAggregation())
198 .add_column(ServerMethodTagKey())
199 .add_column(ServerStatusTagKey());
200 return descriptor;
201 }
202
ServerReceivedCompressedMessageBytesPerRpc()203 const ViewDescriptor& ServerReceivedCompressedMessageBytesPerRpc() {
204 const static ViewDescriptor descriptor =
205 DefaultViewDescriptor()
206 .set_name("grpc.io/server/received_compressed_message_bytes_per_rpc")
207 .set_measure(kRpcServerReceivedBytesPerRpcMeasureName)
208 .set_aggregation(BytesDistributionAggregation())
209 .add_column(ServerMethodTagKey())
210 .add_column(ServerStatusTagKey());
211 return descriptor;
212 }
213
ServerServerLatency()214 const ViewDescriptor& ServerServerLatency() {
215 const static ViewDescriptor descriptor =
216 DefaultViewDescriptor()
217 .set_name("grpc.io/server/server_latency")
218 .set_measure(kRpcServerServerLatencyMeasureName)
219 .set_aggregation(MillisDistributionAggregation())
220 .add_column(ServerMethodTagKey())
221 .add_column(ServerStatusTagKey());
222 return descriptor;
223 }
224
225 // client cumulative
ClientSentBytesPerRpcCumulative()226 const ViewDescriptor& ClientSentBytesPerRpcCumulative() {
227 const static ViewDescriptor descriptor =
228 DefaultViewDescriptor()
229 .set_name("grpc.io/client/sent_bytes_per_rpc/cumulative")
230 .set_measure(kRpcClientSentBytesPerRpcMeasureName)
231 .set_aggregation(BytesDistributionAggregation())
232 .add_column(ClientMethodTagKey());
233 return descriptor;
234 }
235
ClientReceivedBytesPerRpcCumulative()236 const ViewDescriptor& ClientReceivedBytesPerRpcCumulative() {
237 const static ViewDescriptor descriptor =
238 DefaultViewDescriptor()
239 .set_name("grpc.io/client/received_bytes_per_rpc/cumulative")
240 .set_measure(kRpcClientReceivedBytesPerRpcMeasureName)
241 .set_aggregation(BytesDistributionAggregation())
242 .add_column(ClientMethodTagKey());
243 return descriptor;
244 }
245
ClientRoundtripLatencyCumulative()246 const ViewDescriptor& ClientRoundtripLatencyCumulative() {
247 const static ViewDescriptor descriptor =
248 DefaultViewDescriptor()
249 .set_name("grpc.io/client/roundtrip_latency/cumulative")
250 .set_measure(kRpcClientRoundtripLatencyMeasureName)
251 .set_aggregation(MillisDistributionAggregation())
252 .add_column(ClientMethodTagKey());
253 return descriptor;
254 }
255
ClientServerLatencyCumulative()256 const ViewDescriptor& ClientServerLatencyCumulative() {
257 const static ViewDescriptor descriptor =
258 DefaultViewDescriptor()
259 .set_name("grpc.io/client/server_latency/cumulative")
260 .set_measure(kRpcClientServerLatencyMeasureName)
261 .set_aggregation(MillisDistributionAggregation())
262 .add_column(ClientMethodTagKey());
263 return descriptor;
264 }
265
ClientStartedRpcsCumulative()266 const ViewDescriptor& ClientStartedRpcsCumulative() {
267 const static ViewDescriptor descriptor =
268 DefaultViewDescriptor()
269 .set_name("grpc.io/client/started_rpcs/cumulative")
270 .set_measure(kRpcClientStartedRpcsMeasureName)
271 .set_aggregation(Aggregation::Count())
272 .add_column(ClientMethodTagKey());
273 return descriptor;
274 }
275
ClientCompletedRpcsCumulative()276 const ViewDescriptor& ClientCompletedRpcsCumulative() {
277 const static ViewDescriptor descriptor =
278 DefaultViewDescriptor()
279 .set_name("grpc.io/client/completed_rpcs/cumulative")
280 .set_measure(kRpcClientRoundtripLatencyMeasureName)
281 .set_aggregation(Aggregation::Count())
282 .add_column(ClientMethodTagKey())
283 .add_column(ClientStatusTagKey());
284 return descriptor;
285 }
286
ClientSentMessagesPerRpcCumulative()287 const ViewDescriptor& ClientSentMessagesPerRpcCumulative() {
288 const static ViewDescriptor descriptor =
289 DefaultViewDescriptor()
290 .set_name("grpc.io/client/received_messages_per_rpc/cumulative")
291 .set_measure(kRpcClientSentMessagesPerRpcMeasureName)
292 .set_aggregation(CountDistributionAggregation())
293 .add_column(ClientMethodTagKey());
294 return descriptor;
295 }
296
ClientReceivedMessagesPerRpcCumulative()297 const ViewDescriptor& ClientReceivedMessagesPerRpcCumulative() {
298 const static ViewDescriptor descriptor =
299 DefaultViewDescriptor()
300 .set_name("grpc.io/client/sent_messages_per_rpc/cumulative")
301 .set_measure(kRpcClientReceivedMessagesPerRpcMeasureName)
302 .set_aggregation(CountDistributionAggregation())
303 .add_column(ClientMethodTagKey());
304 return descriptor;
305 }
306
ClientRetriesPerCallCumulative()307 const ViewDescriptor& ClientRetriesPerCallCumulative() {
308 const static ViewDescriptor descriptor =
309 DefaultViewDescriptor()
310 .set_name("grpc.io/client/retries_per_call/cumulative")
311 .set_measure(kRpcClientRetriesPerCallMeasureName)
312 .set_aggregation(CountDistributionAggregation())
313 .add_column(ClientMethodTagKey());
314 return descriptor;
315 }
316
ClientRetriesCumulative()317 const ViewDescriptor& ClientRetriesCumulative() {
318 const static ViewDescriptor descriptor =
319 DefaultViewDescriptor()
320 .set_name("grpc.io/client/retries/cumulative")
321 .set_measure(kRpcClientRetriesPerCallMeasureName)
322 .set_aggregation(Aggregation::Sum())
323 .add_column(ClientMethodTagKey());
324 return descriptor;
325 }
326
ClientTransparentRetriesPerCallCumulative()327 const ViewDescriptor& ClientTransparentRetriesPerCallCumulative() {
328 const static ViewDescriptor descriptor =
329 DefaultViewDescriptor()
330 .set_name("grpc.io/client/transparent_retries_per_call/cumulative")
331 .set_measure(kRpcClientTransparentRetriesPerCallMeasureName)
332 .set_aggregation(CountDistributionAggregation())
333 .add_column(ClientMethodTagKey());
334 return descriptor;
335 }
336
ClientTransparentRetriesCumulative()337 const ViewDescriptor& ClientTransparentRetriesCumulative() {
338 const static ViewDescriptor descriptor =
339 DefaultViewDescriptor()
340 .set_name("grpc.io/client/transparent_retries/cumulative")
341 .set_measure(kRpcClientTransparentRetriesPerCallMeasureName)
342 .set_aggregation(Aggregation::Sum())
343 .add_column(ClientMethodTagKey());
344 return descriptor;
345 }
346
ClientRetryDelayPerCallCumulative()347 const ViewDescriptor& ClientRetryDelayPerCallCumulative() {
348 const static ViewDescriptor descriptor =
349 DefaultViewDescriptor()
350 .set_name("grpc.io/client/retry_delay_per_call/cumulative")
351 .set_measure(kRpcClientRetryDelayPerCallMeasureName)
352 .set_aggregation(MillisDistributionAggregation())
353 .add_column(ClientMethodTagKey());
354 return descriptor;
355 }
356
357 // server cumulative
ServerSentBytesPerRpcCumulative()358 const ViewDescriptor& ServerSentBytesPerRpcCumulative() {
359 const static ViewDescriptor descriptor =
360 DefaultViewDescriptor()
361 .set_name("grpc.io/server/received_bytes_per_rpc/cumulative")
362 .set_measure(kRpcServerSentBytesPerRpcMeasureName)
363 .set_aggregation(BytesDistributionAggregation())
364 .add_column(ServerMethodTagKey());
365 return descriptor;
366 }
367
ServerReceivedBytesPerRpcCumulative()368 const ViewDescriptor& ServerReceivedBytesPerRpcCumulative() {
369 const static ViewDescriptor descriptor =
370 DefaultViewDescriptor()
371 .set_name("grpc.io/server/sent_bytes_per_rpc/cumulative")
372 .set_measure(kRpcServerReceivedBytesPerRpcMeasureName)
373 .set_aggregation(BytesDistributionAggregation())
374 .add_column(ServerMethodTagKey());
375 return descriptor;
376 }
377
ServerServerLatencyCumulative()378 const ViewDescriptor& ServerServerLatencyCumulative() {
379 const static ViewDescriptor descriptor =
380 DefaultViewDescriptor()
381 .set_name("grpc.io/server/elapsed_time/cumulative")
382 .set_measure(kRpcServerServerLatencyMeasureName)
383 .set_aggregation(MillisDistributionAggregation())
384 .add_column(ServerMethodTagKey());
385 return descriptor;
386 }
387
ServerStartedRpcsCumulative()388 const ViewDescriptor& ServerStartedRpcsCumulative() {
389 const static ViewDescriptor descriptor =
390 DefaultViewDescriptor()
391 .set_name("grpc.io/server/started_rpcs/cumulative")
392 .set_measure(kRpcServerStartedRpcsMeasureName)
393 .set_aggregation(Aggregation::Count())
394 .add_column(ServerMethodTagKey());
395 return descriptor;
396 }
397
ServerCompletedRpcsCumulative()398 const ViewDescriptor& ServerCompletedRpcsCumulative() {
399 const static ViewDescriptor descriptor =
400 DefaultViewDescriptor()
401 .set_name("grpc.io/server/completed_rpcs/cumulative")
402 .set_measure(kRpcServerServerLatencyMeasureName)
403 .set_aggregation(Aggregation::Count())
404 .add_column(ServerMethodTagKey())
405 .add_column(ServerStatusTagKey());
406 return descriptor;
407 }
408
ServerSentMessagesPerRpcCumulative()409 const ViewDescriptor& ServerSentMessagesPerRpcCumulative() {
410 const static ViewDescriptor descriptor =
411 DefaultViewDescriptor()
412 .set_name("grpc.io/server/received_messages_per_rpc/cumulative")
413 .set_measure(kRpcServerSentMessagesPerRpcMeasureName)
414 .set_aggregation(CountDistributionAggregation())
415 .add_column(ServerMethodTagKey());
416 return descriptor;
417 }
418
ServerReceivedMessagesPerRpcCumulative()419 const ViewDescriptor& ServerReceivedMessagesPerRpcCumulative() {
420 const static ViewDescriptor descriptor =
421 DefaultViewDescriptor()
422 .set_name("grpc.io/server/sent_messages_per_rpc/cumulative")
423 .set_measure(kRpcServerReceivedMessagesPerRpcMeasureName)
424 .set_aggregation(CountDistributionAggregation())
425 .add_column(ServerMethodTagKey());
426 return descriptor;
427 }
428
429 // client minute
ClientSentBytesPerRpcMinute()430 const ViewDescriptor& ClientSentBytesPerRpcMinute() {
431 const static ViewDescriptor descriptor =
432 MinuteDescriptor()
433 .set_name("grpc.io/client/sent_bytes_per_rpc/minute")
434 .set_measure(kRpcClientSentBytesPerRpcMeasureName)
435 .set_aggregation(BytesDistributionAggregation())
436 .add_column(ClientMethodTagKey());
437 return descriptor;
438 }
439
ClientReceivedBytesPerRpcMinute()440 const ViewDescriptor& ClientReceivedBytesPerRpcMinute() {
441 const static ViewDescriptor descriptor =
442 MinuteDescriptor()
443 .set_name("grpc.io/client/received_bytes_per_rpc/minute")
444 .set_measure(kRpcClientReceivedBytesPerRpcMeasureName)
445 .set_aggregation(BytesDistributionAggregation())
446 .add_column(ClientMethodTagKey());
447 return descriptor;
448 }
449
ClientRoundtripLatencyMinute()450 const ViewDescriptor& ClientRoundtripLatencyMinute() {
451 const static ViewDescriptor descriptor =
452 MinuteDescriptor()
453 .set_name("grpc.io/client/roundtrip_latency/minute")
454 .set_measure(kRpcClientRoundtripLatencyMeasureName)
455 .set_aggregation(MillisDistributionAggregation())
456 .add_column(ClientMethodTagKey());
457 return descriptor;
458 }
459
ClientServerLatencyMinute()460 const ViewDescriptor& ClientServerLatencyMinute() {
461 const static ViewDescriptor descriptor =
462 MinuteDescriptor()
463 .set_name("grpc.io/client/server_latency/minute")
464 .set_measure(kRpcClientServerLatencyMeasureName)
465 .set_aggregation(MillisDistributionAggregation())
466 .add_column(ClientMethodTagKey());
467 return descriptor;
468 }
469
ClientStartedRpcsMinute()470 const ViewDescriptor& ClientStartedRpcsMinute() {
471 const static ViewDescriptor descriptor =
472 MinuteDescriptor()
473 .set_name("grpc.io/client/started_rpcs/minute")
474 .set_measure(kRpcClientStartedRpcsMeasureName)
475 .set_aggregation(Aggregation::Count())
476 .add_column(ClientMethodTagKey());
477 return descriptor;
478 }
479
ClientCompletedRpcsMinute()480 const ViewDescriptor& ClientCompletedRpcsMinute() {
481 const static ViewDescriptor descriptor =
482 MinuteDescriptor()
483 .set_name("grpc.io/client/completed_rpcs/minute")
484 .set_measure(kRpcClientRoundtripLatencyMeasureName)
485 .set_aggregation(Aggregation::Count())
486 .add_column(ClientMethodTagKey())
487 .add_column(ClientStatusTagKey());
488 return descriptor;
489 }
490
ClientSentMessagesPerRpcMinute()491 const ViewDescriptor& ClientSentMessagesPerRpcMinute() {
492 const static ViewDescriptor descriptor =
493 MinuteDescriptor()
494 .set_name("grpc.io/client/sent_messages_per_rpc/minute")
495 .set_measure(kRpcClientSentMessagesPerRpcMeasureName)
496 .set_aggregation(CountDistributionAggregation())
497 .add_column(ClientMethodTagKey());
498 return descriptor;
499 }
500
ClientReceivedMessagesPerRpcMinute()501 const ViewDescriptor& ClientReceivedMessagesPerRpcMinute() {
502 const static ViewDescriptor descriptor =
503 MinuteDescriptor()
504 .set_name("grpc.io/client/received_messages_per_rpc/minute")
505 .set_measure(kRpcClientReceivedMessagesPerRpcMeasureName)
506 .set_aggregation(CountDistributionAggregation())
507 .add_column(ClientMethodTagKey());
508 return descriptor;
509 }
510
ClientRetriesPerCallMinute()511 const ViewDescriptor& ClientRetriesPerCallMinute() {
512 const static ViewDescriptor descriptor =
513 MinuteDescriptor()
514 .set_name("grpc.io/client/retries_per_call/minute")
515 .set_measure(kRpcClientRetriesPerCallMeasureName)
516 .set_aggregation(CountDistributionAggregation())
517 .add_column(ClientMethodTagKey());
518 return descriptor;
519 }
520
ClientRetriesMinute()521 const ViewDescriptor& ClientRetriesMinute() {
522 const static ViewDescriptor descriptor =
523 MinuteDescriptor()
524 .set_name("grpc.io/client/retries/minute")
525 .set_measure(kRpcClientRetriesPerCallMeasureName)
526 .set_aggregation(Aggregation::Sum())
527 .add_column(ClientMethodTagKey());
528 return descriptor;
529 }
530
ClientTransparentRetriesPerCallMinute()531 const ViewDescriptor& ClientTransparentRetriesPerCallMinute() {
532 const static ViewDescriptor descriptor =
533 MinuteDescriptor()
534 .set_name("grpc.io/client/transparent_retries_per_call/minute")
535 .set_measure(kRpcClientTransparentRetriesPerCallMeasureName)
536 .set_aggregation(CountDistributionAggregation())
537 .add_column(ClientMethodTagKey());
538 return descriptor;
539 }
540
ClientTransparentRetriesMinute()541 const ViewDescriptor& ClientTransparentRetriesMinute() {
542 const static ViewDescriptor descriptor =
543 MinuteDescriptor()
544 .set_name("grpc.io/client/transparent_retries/minute")
545 .set_measure(kRpcClientTransparentRetriesPerCallMeasureName)
546 .set_aggregation(Aggregation::Sum())
547 .add_column(ClientMethodTagKey());
548 return descriptor;
549 }
550
ClientRetryDelayPerCallMinute()551 const ViewDescriptor& ClientRetryDelayPerCallMinute() {
552 const static ViewDescriptor descriptor =
553 MinuteDescriptor()
554 .set_name("grpc.io/client/retry_delay_per_call/minute")
555 .set_measure(kRpcClientRetryDelayPerCallMeasureName)
556 .set_aggregation(MillisDistributionAggregation())
557 .add_column(ClientMethodTagKey());
558 return descriptor;
559 }
560
561 // server minute
ServerSentBytesPerRpcMinute()562 const ViewDescriptor& ServerSentBytesPerRpcMinute() {
563 const static ViewDescriptor descriptor =
564 MinuteDescriptor()
565 .set_name("grpc.io/server/sent_bytes_per_rpc/minute")
566 .set_measure(kRpcServerSentBytesPerRpcMeasureName)
567 .set_aggregation(BytesDistributionAggregation())
568 .add_column(ServerMethodTagKey());
569 return descriptor;
570 }
571
ServerReceivedBytesPerRpcMinute()572 const ViewDescriptor& ServerReceivedBytesPerRpcMinute() {
573 const static ViewDescriptor descriptor =
574 MinuteDescriptor()
575 .set_name("grpc.io/server/received_bytes_per_rpc/minute")
576 .set_measure(kRpcServerReceivedBytesPerRpcMeasureName)
577 .set_aggregation(BytesDistributionAggregation())
578 .add_column(ServerMethodTagKey());
579 return descriptor;
580 }
581
ServerServerLatencyMinute()582 const ViewDescriptor& ServerServerLatencyMinute() {
583 const static ViewDescriptor descriptor =
584 MinuteDescriptor()
585 .set_name("grpc.io/server/server_latency/minute")
586 .set_measure(kRpcServerServerLatencyMeasureName)
587 .set_aggregation(MillisDistributionAggregation())
588 .add_column(ServerMethodTagKey());
589 return descriptor;
590 }
591
ServerStartedRpcsMinute()592 const ViewDescriptor& ServerStartedRpcsMinute() {
593 const static ViewDescriptor descriptor =
594 MinuteDescriptor()
595 .set_name("grpc.io/server/started_rpcs/minute")
596 .set_measure(kRpcServerStartedRpcsMeasureName)
597 .set_aggregation(Aggregation::Count())
598 .add_column(ServerMethodTagKey());
599 return descriptor;
600 }
601
ServerCompletedRpcsMinute()602 const ViewDescriptor& ServerCompletedRpcsMinute() {
603 const static ViewDescriptor descriptor =
604 MinuteDescriptor()
605 .set_name("grpc.io/server/completed_rpcs/minute")
606 .set_measure(kRpcServerServerLatencyMeasureName)
607 .set_aggregation(Aggregation::Count())
608 .add_column(ServerMethodTagKey())
609 .add_column(ServerStatusTagKey());
610 return descriptor;
611 }
612
ServerSentMessagesPerRpcMinute()613 const ViewDescriptor& ServerSentMessagesPerRpcMinute() {
614 const static ViewDescriptor descriptor =
615 MinuteDescriptor()
616 .set_name("grpc.io/server/sent_messages_per_rpc/minute")
617 .set_measure(kRpcServerSentMessagesPerRpcMeasureName)
618 .set_aggregation(CountDistributionAggregation())
619 .add_column(ServerMethodTagKey());
620 return descriptor;
621 }
622
ServerReceivedMessagesPerRpcMinute()623 const ViewDescriptor& ServerReceivedMessagesPerRpcMinute() {
624 const static ViewDescriptor descriptor =
625 MinuteDescriptor()
626 .set_name("grpc.io/server/received_messages_per_rpc/minute")
627 .set_measure(kRpcServerReceivedMessagesPerRpcMeasureName)
628 .set_aggregation(CountDistributionAggregation())
629 .add_column(ServerMethodTagKey());
630 return descriptor;
631 }
632
633 // client hour
ClientSentBytesPerRpcHour()634 const ViewDescriptor& ClientSentBytesPerRpcHour() {
635 const static ViewDescriptor descriptor =
636 HourDescriptor()
637 .set_name("grpc.io/client/sent_bytes_per_rpc/hour")
638 .set_measure(kRpcClientSentBytesPerRpcMeasureName)
639 .set_aggregation(BytesDistributionAggregation())
640 .add_column(ClientMethodTagKey());
641 return descriptor;
642 }
643
ClientReceivedBytesPerRpcHour()644 const ViewDescriptor& ClientReceivedBytesPerRpcHour() {
645 const static ViewDescriptor descriptor =
646 HourDescriptor()
647 .set_name("grpc.io/client/received_bytes_per_rpc/hour")
648 .set_measure(kRpcClientReceivedBytesPerRpcMeasureName)
649 .set_aggregation(BytesDistributionAggregation())
650 .add_column(ClientMethodTagKey());
651 return descriptor;
652 }
653
ClientRoundtripLatencyHour()654 const ViewDescriptor& ClientRoundtripLatencyHour() {
655 const static ViewDescriptor descriptor =
656 HourDescriptor()
657 .set_name("grpc.io/client/roundtrip_latency/hour")
658 .set_measure(kRpcClientRoundtripLatencyMeasureName)
659 .set_aggregation(MillisDistributionAggregation())
660 .add_column(ClientMethodTagKey());
661 return descriptor;
662 }
663
ClientServerLatencyHour()664 const ViewDescriptor& ClientServerLatencyHour() {
665 const static ViewDescriptor descriptor =
666 HourDescriptor()
667 .set_name("grpc.io/client/server_latency/hour")
668 .set_measure(kRpcClientServerLatencyMeasureName)
669 .set_aggregation(MillisDistributionAggregation())
670 .add_column(ClientMethodTagKey());
671 return descriptor;
672 }
673
ClientStartedRpcsHour()674 const ViewDescriptor& ClientStartedRpcsHour() {
675 const static ViewDescriptor descriptor =
676 HourDescriptor()
677 .set_name("grpc.io/client/started_rpcs/hour")
678 .set_measure(kRpcClientStartedRpcsMeasureName)
679 .set_aggregation(Aggregation::Count())
680 .add_column(ClientMethodTagKey());
681 return descriptor;
682 }
683
ClientCompletedRpcsHour()684 const ViewDescriptor& ClientCompletedRpcsHour() {
685 const static ViewDescriptor descriptor =
686 HourDescriptor()
687 .set_name("grpc.io/client/completed_rpcs/hour")
688 .set_measure(kRpcClientRoundtripLatencyMeasureName)
689 .set_aggregation(Aggregation::Count())
690 .add_column(ClientMethodTagKey())
691 .add_column(ClientStatusTagKey());
692 return descriptor;
693 }
694
ClientSentMessagesPerRpcHour()695 const ViewDescriptor& ClientSentMessagesPerRpcHour() {
696 const static ViewDescriptor descriptor =
697 HourDescriptor()
698 .set_name("grpc.io/client/sent_messages_per_rpc/hour")
699 .set_measure(kRpcClientSentMessagesPerRpcMeasureName)
700 .set_aggregation(CountDistributionAggregation())
701 .add_column(ClientMethodTagKey());
702 return descriptor;
703 }
704
ClientReceivedMessagesPerRpcHour()705 const ViewDescriptor& ClientReceivedMessagesPerRpcHour() {
706 const static ViewDescriptor descriptor =
707 HourDescriptor()
708 .set_name("grpc.io/client/received_messages_per_rpc/hour")
709 .set_measure(kRpcClientReceivedMessagesPerRpcMeasureName)
710 .set_aggregation(CountDistributionAggregation())
711 .add_column(ClientMethodTagKey());
712 return descriptor;
713 }
714
ClientRetriesPerCallHour()715 const ViewDescriptor& ClientRetriesPerCallHour() {
716 const static ViewDescriptor descriptor =
717 HourDescriptor()
718 .set_name("grpc.io/client/retries_per_call/hour")
719 .set_measure(kRpcClientRetriesPerCallMeasureName)
720 .set_aggregation(CountDistributionAggregation())
721 .add_column(ClientMethodTagKey());
722 return descriptor;
723 }
724
ClientRetriesHour()725 const ViewDescriptor& ClientRetriesHour() {
726 const static ViewDescriptor descriptor =
727 HourDescriptor()
728 .set_name("grpc.io/client/retries/hour")
729 .set_measure(kRpcClientRetriesPerCallMeasureName)
730 .set_aggregation(Aggregation::Sum())
731 .add_column(ClientMethodTagKey());
732 return descriptor;
733 }
734
ClientTransparentRetriesPerCallHour()735 const ViewDescriptor& ClientTransparentRetriesPerCallHour() {
736 const static ViewDescriptor descriptor =
737 HourDescriptor()
738 .set_name("grpc.io/client/transparent_retries_per_call/hour")
739 .set_measure(kRpcClientTransparentRetriesPerCallMeasureName)
740 .set_aggregation(CountDistributionAggregation())
741 .add_column(ClientMethodTagKey());
742 return descriptor;
743 }
744
ClientTransparentRetriesHour()745 const ViewDescriptor& ClientTransparentRetriesHour() {
746 const static ViewDescriptor descriptor =
747 HourDescriptor()
748 .set_name("grpc.io/client/transparent_retries/hour")
749 .set_measure(kRpcClientTransparentRetriesPerCallMeasureName)
750 .set_aggregation(Aggregation::Sum())
751 .add_column(ClientMethodTagKey());
752 return descriptor;
753 }
754
ClientRetryDelayPerCallHour()755 const ViewDescriptor& ClientRetryDelayPerCallHour() {
756 const static ViewDescriptor descriptor =
757 HourDescriptor()
758 .set_name("grpc.io/client/retry_delay_per_call/hour")
759 .set_measure(kRpcClientRetryDelayPerCallMeasureName)
760 .set_aggregation(MillisDistributionAggregation())
761 .add_column(ClientMethodTagKey());
762 return descriptor;
763 }
764
765 // server hour
ServerSentBytesPerRpcHour()766 const ViewDescriptor& ServerSentBytesPerRpcHour() {
767 const static ViewDescriptor descriptor =
768 HourDescriptor()
769 .set_name("grpc.io/server/sent_bytes_per_rpc/hour")
770 .set_measure(kRpcServerSentBytesPerRpcMeasureName)
771 .set_aggregation(BytesDistributionAggregation())
772 .add_column(ServerMethodTagKey());
773 return descriptor;
774 }
775
ServerReceivedBytesPerRpcHour()776 const ViewDescriptor& ServerReceivedBytesPerRpcHour() {
777 const static ViewDescriptor descriptor =
778 HourDescriptor()
779 .set_name("grpc.io/server/received_bytes_per_rpc/hour")
780 .set_measure(kRpcServerReceivedBytesPerRpcMeasureName)
781 .set_aggregation(BytesDistributionAggregation())
782 .add_column(ServerMethodTagKey());
783 return descriptor;
784 }
785
ServerServerLatencyHour()786 const ViewDescriptor& ServerServerLatencyHour() {
787 const static ViewDescriptor descriptor =
788 HourDescriptor()
789 .set_name("grpc.io/server/server_latency/hour")
790 .set_measure(kRpcServerServerLatencyMeasureName)
791 .set_aggregation(MillisDistributionAggregation())
792 .add_column(ServerMethodTagKey());
793 return descriptor;
794 }
795
ServerStartedRpcsHour()796 const ViewDescriptor& ServerStartedRpcsHour() {
797 const static ViewDescriptor descriptor =
798 HourDescriptor()
799 .set_name("grpc.io/server/started_rpcs/hour")
800 .set_measure(kRpcServerStartedRpcsMeasureName)
801 .set_aggregation(Aggregation::Count())
802 .add_column(ClientMethodTagKey());
803 return descriptor;
804 }
805
ServerCompletedRpcsHour()806 const ViewDescriptor& ServerCompletedRpcsHour() {
807 const static ViewDescriptor descriptor =
808 HourDescriptor()
809 .set_name("grpc.io/server/completed_rpcs/hour")
810 .set_measure(kRpcServerServerLatencyMeasureName)
811 .set_aggregation(Aggregation::Count())
812 .add_column(ServerMethodTagKey())
813 .add_column(ServerStatusTagKey());
814 return descriptor;
815 }
816
ServerSentMessagesPerRpcHour()817 const ViewDescriptor& ServerSentMessagesPerRpcHour() {
818 const static ViewDescriptor descriptor =
819 HourDescriptor()
820 .set_name("grpc.io/server/sent_messages_per_rpc/hour")
821 .set_measure(kRpcServerSentMessagesPerRpcMeasureName)
822 .set_aggregation(CountDistributionAggregation())
823 .add_column(ServerMethodTagKey());
824 return descriptor;
825 }
826
ServerReceivedMessagesPerRpcHour()827 const ViewDescriptor& ServerReceivedMessagesPerRpcHour() {
828 const static ViewDescriptor descriptor =
829 HourDescriptor()
830 .set_name("grpc.io/server/received_messages_per_rpc/hour")
831 .set_measure(kRpcServerReceivedMessagesPerRpcMeasureName)
832 .set_aggregation(CountDistributionAggregation())
833 .add_column(ServerMethodTagKey());
834 return descriptor;
835 }
836
837 } // namespace experimental
838
839 namespace internal {
840
ClientApiLatency()841 const ViewDescriptor& ClientApiLatency() {
842 const static ViewDescriptor descriptor =
843 DefaultViewDescriptor()
844 .set_name("grpc.io/client/api_latency")
845 .set_measure(kRpcClientApiLatencyMeasureName)
846 .set_aggregation(MillisDistributionAggregation())
847 .add_column(ClientMethodTagKey())
848 .add_column(ClientStatusTagKey());
849 return descriptor;
850 }
851
852 } // namespace internal
853
854 } // namespace grpc
855