massage_qps_stats.py
Go to the documentation of this file.
1 # Copyright 2017 gRPC authors.
2 #
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8 #
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 
15 # Autogenerated by tools/codegen/core/gen_stats_data.py
16 
17 import massage_qps_stats_helpers
18 
19 
20 def massage_qps_stats(scenario_result):
21  for stats in scenario_result["serverStats"] + scenario_result["clientStats"]:
22  if "coreStats" in stats:
23  # Get rid of the "coreStats" element and replace it by statistics
24  # that correspond to columns in the bigquery schema.
25  core_stats = stats["coreStats"]
26  del stats["coreStats"]
27  stats[
28  "core_client_calls_created"] = massage_qps_stats_helpers.counter(
29  core_stats, "client_calls_created")
30  stats[
31  "core_server_calls_created"] = massage_qps_stats_helpers.counter(
32  core_stats, "server_calls_created")
33  stats["core_cqs_created"] = massage_qps_stats_helpers.counter(
34  core_stats, "cqs_created")
35  stats[
36  "core_client_channels_created"] = massage_qps_stats_helpers.counter(
37  core_stats, "client_channels_created")
38  stats[
39  "core_client_subchannels_created"] = massage_qps_stats_helpers.counter(
40  core_stats, "client_subchannels_created")
41  stats[
42  "core_server_channels_created"] = massage_qps_stats_helpers.counter(
43  core_stats, "server_channels_created")
44  stats["core_syscall_poll"] = massage_qps_stats_helpers.counter(
45  core_stats, "syscall_poll")
46  stats["core_syscall_wait"] = massage_qps_stats_helpers.counter(
47  core_stats, "syscall_wait")
48  stats["core_pollset_kick"] = massage_qps_stats_helpers.counter(
49  core_stats, "pollset_kick")
50  stats[
51  "core_pollset_kicked_without_poller"] = massage_qps_stats_helpers.counter(
52  core_stats, "pollset_kicked_without_poller")
53  stats[
54  "core_pollset_kicked_again"] = massage_qps_stats_helpers.counter(
55  core_stats, "pollset_kicked_again")
56  stats[
57  "core_pollset_kick_wakeup_fd"] = massage_qps_stats_helpers.counter(
58  core_stats, "pollset_kick_wakeup_fd")
59  stats[
60  "core_pollset_kick_wakeup_cv"] = massage_qps_stats_helpers.counter(
61  core_stats, "pollset_kick_wakeup_cv")
62  stats[
63  "core_pollset_kick_own_thread"] = massage_qps_stats_helpers.counter(
64  core_stats, "pollset_kick_own_thread")
65  stats[
66  "core_histogram_slow_lookups"] = massage_qps_stats_helpers.counter(
67  core_stats, "histogram_slow_lookups")
68  stats["core_syscall_write"] = massage_qps_stats_helpers.counter(
69  core_stats, "syscall_write")
70  stats["core_syscall_read"] = massage_qps_stats_helpers.counter(
71  core_stats, "syscall_read")
72  stats[
73  "core_tcp_backup_pollers_created"] = massage_qps_stats_helpers.counter(
74  core_stats, "tcp_backup_pollers_created")
75  stats[
76  "core_tcp_backup_poller_polls"] = massage_qps_stats_helpers.counter(
77  core_stats, "tcp_backup_poller_polls")
78  stats["core_http2_op_batches"] = massage_qps_stats_helpers.counter(
79  core_stats, "http2_op_batches")
80  stats["core_http2_op_cancel"] = massage_qps_stats_helpers.counter(
81  core_stats, "http2_op_cancel")
82  stats[
83  "core_http2_op_send_initial_metadata"] = massage_qps_stats_helpers.counter(
84  core_stats, "http2_op_send_initial_metadata")
85  stats[
86  "core_http2_op_send_message"] = massage_qps_stats_helpers.counter(
87  core_stats, "http2_op_send_message")
88  stats[
89  "core_http2_op_send_trailing_metadata"] = massage_qps_stats_helpers.counter(
90  core_stats, "http2_op_send_trailing_metadata")
91  stats[
92  "core_http2_op_recv_initial_metadata"] = massage_qps_stats_helpers.counter(
93  core_stats, "http2_op_recv_initial_metadata")
94  stats[
95  "core_http2_op_recv_message"] = massage_qps_stats_helpers.counter(
96  core_stats, "http2_op_recv_message")
97  stats[
98  "core_http2_op_recv_trailing_metadata"] = massage_qps_stats_helpers.counter(
99  core_stats, "http2_op_recv_trailing_metadata")
100  stats[
101  "core_http2_settings_writes"] = massage_qps_stats_helpers.counter(
102  core_stats, "http2_settings_writes")
103  stats["core_http2_pings_sent"] = massage_qps_stats_helpers.counter(
104  core_stats, "http2_pings_sent")
105  stats[
106  "core_http2_writes_begun"] = massage_qps_stats_helpers.counter(
107  core_stats, "http2_writes_begun")
108  stats[
109  "core_http2_writes_offloaded"] = massage_qps_stats_helpers.counter(
110  core_stats, "http2_writes_offloaded")
111  stats[
112  "core_http2_writes_continued"] = massage_qps_stats_helpers.counter(
113  core_stats, "http2_writes_continued")
114  stats[
115  "core_http2_partial_writes"] = massage_qps_stats_helpers.counter(
116  core_stats, "http2_partial_writes")
117  stats[
118  "core_http2_initiate_write_due_to_initial_write"] = massage_qps_stats_helpers.counter(
119  core_stats, "http2_initiate_write_due_to_initial_write")
120  stats[
121  "core_http2_initiate_write_due_to_start_new_stream"] = massage_qps_stats_helpers.counter(
122  core_stats, "http2_initiate_write_due_to_start_new_stream")
123  stats[
124  "core_http2_initiate_write_due_to_send_message"] = massage_qps_stats_helpers.counter(
125  core_stats, "http2_initiate_write_due_to_send_message")
126  stats[
127  "core_http2_initiate_write_due_to_send_initial_metadata"] = massage_qps_stats_helpers.counter(
128  core_stats,
129  "http2_initiate_write_due_to_send_initial_metadata")
130  stats[
131  "core_http2_initiate_write_due_to_send_trailing_metadata"] = massage_qps_stats_helpers.counter(
132  core_stats,
133  "http2_initiate_write_due_to_send_trailing_metadata")
134  stats[
135  "core_http2_initiate_write_due_to_retry_send_ping"] = massage_qps_stats_helpers.counter(
136  core_stats, "http2_initiate_write_due_to_retry_send_ping")
137  stats[
138  "core_http2_initiate_write_due_to_continue_pings"] = massage_qps_stats_helpers.counter(
139  core_stats, "http2_initiate_write_due_to_continue_pings")
140  stats[
141  "core_http2_initiate_write_due_to_goaway_sent"] = massage_qps_stats_helpers.counter(
142  core_stats, "http2_initiate_write_due_to_goaway_sent")
143  stats[
144  "core_http2_initiate_write_due_to_rst_stream"] = massage_qps_stats_helpers.counter(
145  core_stats, "http2_initiate_write_due_to_rst_stream")
146  stats[
147  "core_http2_initiate_write_due_to_close_from_api"] = massage_qps_stats_helpers.counter(
148  core_stats, "http2_initiate_write_due_to_close_from_api")
149  stats[
150  "core_http2_initiate_write_due_to_stream_flow_control"] = massage_qps_stats_helpers.counter(
151  core_stats,
152  "http2_initiate_write_due_to_stream_flow_control")
153  stats[
154  "core_http2_initiate_write_due_to_transport_flow_control"] = massage_qps_stats_helpers.counter(
155  core_stats,
156  "http2_initiate_write_due_to_transport_flow_control")
157  stats[
158  "core_http2_initiate_write_due_to_send_settings"] = massage_qps_stats_helpers.counter(
159  core_stats, "http2_initiate_write_due_to_send_settings")
160  stats[
161  "core_http2_initiate_write_due_to_settings_ack"] = massage_qps_stats_helpers.counter(
162  core_stats, "http2_initiate_write_due_to_settings_ack")
163  stats[
164  "core_http2_initiate_write_due_to_bdp_estimator_ping"] = massage_qps_stats_helpers.counter(
165  core_stats,
166  "http2_initiate_write_due_to_bdp_estimator_ping")
167  stats[
168  "core_http2_initiate_write_due_to_flow_control_unstalled_by_setting"] = massage_qps_stats_helpers.counter(
169  core_stats,
170  "http2_initiate_write_due_to_flow_control_unstalled_by_setting"
171  )
172  stats[
173  "core_http2_initiate_write_due_to_flow_control_unstalled_by_update"] = massage_qps_stats_helpers.counter(
174  core_stats,
175  "http2_initiate_write_due_to_flow_control_unstalled_by_update"
176  )
177  stats[
178  "core_http2_initiate_write_due_to_application_ping"] = massage_qps_stats_helpers.counter(
179  core_stats, "http2_initiate_write_due_to_application_ping")
180  stats[
181  "core_http2_initiate_write_due_to_keepalive_ping"] = massage_qps_stats_helpers.counter(
182  core_stats, "http2_initiate_write_due_to_keepalive_ping")
183  stats[
184  "core_http2_initiate_write_due_to_transport_flow_control_unstalled"] = massage_qps_stats_helpers.counter(
185  core_stats,
186  "http2_initiate_write_due_to_transport_flow_control_unstalled"
187  )
188  stats[
189  "core_http2_initiate_write_due_to_ping_response"] = massage_qps_stats_helpers.counter(
190  core_stats, "http2_initiate_write_due_to_ping_response")
191  stats[
192  "core_http2_initiate_write_due_to_force_rst_stream"] = massage_qps_stats_helpers.counter(
193  core_stats, "http2_initiate_write_due_to_force_rst_stream")
194  stats[
195  "core_http2_spurious_writes_begun"] = massage_qps_stats_helpers.counter(
196  core_stats, "http2_spurious_writes_begun")
197  stats[
198  "core_hpack_recv_indexed"] = massage_qps_stats_helpers.counter(
199  core_stats, "hpack_recv_indexed")
200  stats[
201  "core_hpack_recv_lithdr_incidx"] = massage_qps_stats_helpers.counter(
202  core_stats, "hpack_recv_lithdr_incidx")
203  stats[
204  "core_hpack_recv_lithdr_incidx_v"] = massage_qps_stats_helpers.counter(
205  core_stats, "hpack_recv_lithdr_incidx_v")
206  stats[
207  "core_hpack_recv_lithdr_notidx"] = massage_qps_stats_helpers.counter(
208  core_stats, "hpack_recv_lithdr_notidx")
209  stats[
210  "core_hpack_recv_lithdr_notidx_v"] = massage_qps_stats_helpers.counter(
211  core_stats, "hpack_recv_lithdr_notidx_v")
212  stats[
213  "core_hpack_recv_lithdr_nvridx"] = massage_qps_stats_helpers.counter(
214  core_stats, "hpack_recv_lithdr_nvridx")
215  stats[
216  "core_hpack_recv_lithdr_nvridx_v"] = massage_qps_stats_helpers.counter(
217  core_stats, "hpack_recv_lithdr_nvridx_v")
218  stats[
219  "core_hpack_recv_uncompressed"] = massage_qps_stats_helpers.counter(
220  core_stats, "hpack_recv_uncompressed")
221  stats[
222  "core_hpack_recv_huffman"] = massage_qps_stats_helpers.counter(
223  core_stats, "hpack_recv_huffman")
224  stats["core_hpack_recv_binary"] = massage_qps_stats_helpers.counter(
225  core_stats, "hpack_recv_binary")
226  stats[
227  "core_hpack_recv_binary_base64"] = massage_qps_stats_helpers.counter(
228  core_stats, "hpack_recv_binary_base64")
229  stats[
230  "core_hpack_send_indexed"] = massage_qps_stats_helpers.counter(
231  core_stats, "hpack_send_indexed")
232  stats[
233  "core_hpack_send_lithdr_incidx"] = massage_qps_stats_helpers.counter(
234  core_stats, "hpack_send_lithdr_incidx")
235  stats[
236  "core_hpack_send_lithdr_incidx_v"] = massage_qps_stats_helpers.counter(
237  core_stats, "hpack_send_lithdr_incidx_v")
238  stats[
239  "core_hpack_send_lithdr_notidx"] = massage_qps_stats_helpers.counter(
240  core_stats, "hpack_send_lithdr_notidx")
241  stats[
242  "core_hpack_send_lithdr_notidx_v"] = massage_qps_stats_helpers.counter(
243  core_stats, "hpack_send_lithdr_notidx_v")
244  stats[
245  "core_hpack_send_lithdr_nvridx"] = massage_qps_stats_helpers.counter(
246  core_stats, "hpack_send_lithdr_nvridx")
247  stats[
248  "core_hpack_send_lithdr_nvridx_v"] = massage_qps_stats_helpers.counter(
249  core_stats, "hpack_send_lithdr_nvridx_v")
250  stats[
251  "core_hpack_send_uncompressed"] = massage_qps_stats_helpers.counter(
252  core_stats, "hpack_send_uncompressed")
253  stats[
254  "core_hpack_send_huffman"] = massage_qps_stats_helpers.counter(
255  core_stats, "hpack_send_huffman")
256  stats["core_hpack_send_binary"] = massage_qps_stats_helpers.counter(
257  core_stats, "hpack_send_binary")
258  stats[
259  "core_hpack_send_binary_base64"] = massage_qps_stats_helpers.counter(
260  core_stats, "hpack_send_binary_base64")
261  stats[
262  "core_combiner_locks_initiated"] = massage_qps_stats_helpers.counter(
263  core_stats, "combiner_locks_initiated")
264  stats[
265  "core_combiner_locks_scheduled_items"] = massage_qps_stats_helpers.counter(
266  core_stats, "combiner_locks_scheduled_items")
267  stats[
268  "core_combiner_locks_scheduled_final_items"] = massage_qps_stats_helpers.counter(
269  core_stats, "combiner_locks_scheduled_final_items")
270  stats[
271  "core_combiner_locks_offloaded"] = massage_qps_stats_helpers.counter(
272  core_stats, "combiner_locks_offloaded")
273  stats[
274  "core_call_combiner_locks_initiated"] = massage_qps_stats_helpers.counter(
275  core_stats, "call_combiner_locks_initiated")
276  stats[
277  "core_call_combiner_locks_scheduled_items"] = massage_qps_stats_helpers.counter(
278  core_stats, "call_combiner_locks_scheduled_items")
279  stats[
280  "core_call_combiner_set_notify_on_cancel"] = massage_qps_stats_helpers.counter(
281  core_stats, "call_combiner_set_notify_on_cancel")
282  stats[
283  "core_call_combiner_cancelled"] = massage_qps_stats_helpers.counter(
284  core_stats, "call_combiner_cancelled")
285  stats[
286  "core_executor_scheduled_short_items"] = massage_qps_stats_helpers.counter(
287  core_stats, "executor_scheduled_short_items")
288  stats[
289  "core_executor_scheduled_long_items"] = massage_qps_stats_helpers.counter(
290  core_stats, "executor_scheduled_long_items")
291  stats[
292  "core_executor_scheduled_to_self"] = massage_qps_stats_helpers.counter(
293  core_stats, "executor_scheduled_to_self")
294  stats[
295  "core_executor_wakeup_initiated"] = massage_qps_stats_helpers.counter(
296  core_stats, "executor_wakeup_initiated")
297  stats[
298  "core_executor_queue_drained"] = massage_qps_stats_helpers.counter(
299  core_stats, "executor_queue_drained")
300  stats[
301  "core_executor_push_retries"] = massage_qps_stats_helpers.counter(
302  core_stats, "executor_push_retries")
303  stats[
304  "core_server_requested_calls"] = massage_qps_stats_helpers.counter(
305  core_stats, "server_requested_calls")
306  stats[
307  "core_server_slowpath_requests_queued"] = massage_qps_stats_helpers.counter(
308  core_stats, "server_slowpath_requests_queued")
309  stats[
310  "core_cq_ev_queue_trylock_failures"] = massage_qps_stats_helpers.counter(
311  core_stats, "cq_ev_queue_trylock_failures")
312  stats[
313  "core_cq_ev_queue_trylock_successes"] = massage_qps_stats_helpers.counter(
314  core_stats, "cq_ev_queue_trylock_successes")
315  stats[
316  "core_cq_ev_queue_transient_pop_failures"] = massage_qps_stats_helpers.counter(
317  core_stats, "cq_ev_queue_transient_pop_failures")
318  h = massage_qps_stats_helpers.histogram(core_stats,
319  "call_initial_size")
320  stats["core_call_initial_size"] = ",".join(
321  "%f" % x for x in h.buckets)
322  stats["core_call_initial_size_bkts"] = ",".join(
323  "%f" % x for x in h.boundaries)
324  stats[
325  "core_call_initial_size_50p"] = massage_qps_stats_helpers.percentile(
326  h.buckets, 50, h.boundaries)
327  stats[
328  "core_call_initial_size_95p"] = massage_qps_stats_helpers.percentile(
329  h.buckets, 95, h.boundaries)
330  stats[
331  "core_call_initial_size_99p"] = massage_qps_stats_helpers.percentile(
332  h.buckets, 99, h.boundaries)
333  h = massage_qps_stats_helpers.histogram(core_stats,
334  "poll_events_returned")
335  stats["core_poll_events_returned"] = ",".join(
336  "%f" % x for x in h.buckets)
337  stats["core_poll_events_returned_bkts"] = ",".join(
338  "%f" % x for x in h.boundaries)
339  stats[
340  "core_poll_events_returned_50p"] = massage_qps_stats_helpers.percentile(
341  h.buckets, 50, h.boundaries)
342  stats[
343  "core_poll_events_returned_95p"] = massage_qps_stats_helpers.percentile(
344  h.buckets, 95, h.boundaries)
345  stats[
346  "core_poll_events_returned_99p"] = massage_qps_stats_helpers.percentile(
347  h.buckets, 99, h.boundaries)
348  h = massage_qps_stats_helpers.histogram(core_stats,
349  "tcp_write_size")
350  stats["core_tcp_write_size"] = ",".join("%f" % x for x in h.buckets)
351  stats["core_tcp_write_size_bkts"] = ",".join(
352  "%f" % x for x in h.boundaries)
353  stats[
354  "core_tcp_write_size_50p"] = massage_qps_stats_helpers.percentile(
355  h.buckets, 50, h.boundaries)
356  stats[
357  "core_tcp_write_size_95p"] = massage_qps_stats_helpers.percentile(
358  h.buckets, 95, h.boundaries)
359  stats[
360  "core_tcp_write_size_99p"] = massage_qps_stats_helpers.percentile(
361  h.buckets, 99, h.boundaries)
362  h = massage_qps_stats_helpers.histogram(core_stats,
363  "tcp_write_iov_size")
364  stats["core_tcp_write_iov_size"] = ",".join(
365  "%f" % x for x in h.buckets)
366  stats["core_tcp_write_iov_size_bkts"] = ",".join(
367  "%f" % x for x in h.boundaries)
368  stats[
369  "core_tcp_write_iov_size_50p"] = massage_qps_stats_helpers.percentile(
370  h.buckets, 50, h.boundaries)
371  stats[
372  "core_tcp_write_iov_size_95p"] = massage_qps_stats_helpers.percentile(
373  h.buckets, 95, h.boundaries)
374  stats[
375  "core_tcp_write_iov_size_99p"] = massage_qps_stats_helpers.percentile(
376  h.buckets, 99, h.boundaries)
377  h = massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size")
378  stats["core_tcp_read_size"] = ",".join("%f" % x for x in h.buckets)
379  stats["core_tcp_read_size_bkts"] = ",".join(
380  "%f" % x for x in h.boundaries)
381  stats[
382  "core_tcp_read_size_50p"] = massage_qps_stats_helpers.percentile(
383  h.buckets, 50, h.boundaries)
384  stats[
385  "core_tcp_read_size_95p"] = massage_qps_stats_helpers.percentile(
386  h.buckets, 95, h.boundaries)
387  stats[
388  "core_tcp_read_size_99p"] = massage_qps_stats_helpers.percentile(
389  h.buckets, 99, h.boundaries)
390  h = massage_qps_stats_helpers.histogram(core_stats,
391  "tcp_read_offer")
392  stats["core_tcp_read_offer"] = ",".join("%f" % x for x in h.buckets)
393  stats["core_tcp_read_offer_bkts"] = ",".join(
394  "%f" % x for x in h.boundaries)
395  stats[
396  "core_tcp_read_offer_50p"] = massage_qps_stats_helpers.percentile(
397  h.buckets, 50, h.boundaries)
398  stats[
399  "core_tcp_read_offer_95p"] = massage_qps_stats_helpers.percentile(
400  h.buckets, 95, h.boundaries)
401  stats[
402  "core_tcp_read_offer_99p"] = massage_qps_stats_helpers.percentile(
403  h.buckets, 99, h.boundaries)
404  h = massage_qps_stats_helpers.histogram(core_stats,
405  "tcp_read_offer_iov_size")
406  stats["core_tcp_read_offer_iov_size"] = ",".join(
407  "%f" % x for x in h.buckets)
408  stats["core_tcp_read_offer_iov_size_bkts"] = ",".join(
409  "%f" % x for x in h.boundaries)
410  stats[
411  "core_tcp_read_offer_iov_size_50p"] = massage_qps_stats_helpers.percentile(
412  h.buckets, 50, h.boundaries)
413  stats[
414  "core_tcp_read_offer_iov_size_95p"] = massage_qps_stats_helpers.percentile(
415  h.buckets, 95, h.boundaries)
416  stats[
417  "core_tcp_read_offer_iov_size_99p"] = massage_qps_stats_helpers.percentile(
418  h.buckets, 99, h.boundaries)
419  h = massage_qps_stats_helpers.histogram(core_stats,
420  "http2_send_message_size")
421  stats["core_http2_send_message_size"] = ",".join(
422  "%f" % x for x in h.buckets)
423  stats["core_http2_send_message_size_bkts"] = ",".join(
424  "%f" % x for x in h.boundaries)
425  stats[
426  "core_http2_send_message_size_50p"] = massage_qps_stats_helpers.percentile(
427  h.buckets, 50, h.boundaries)
428  stats[
429  "core_http2_send_message_size_95p"] = massage_qps_stats_helpers.percentile(
430  h.buckets, 95, h.boundaries)
431  stats[
432  "core_http2_send_message_size_99p"] = massage_qps_stats_helpers.percentile(
433  h.buckets, 99, h.boundaries)
434  h = massage_qps_stats_helpers.histogram(
435  core_stats, "http2_send_initial_metadata_per_write")
436  stats["core_http2_send_initial_metadata_per_write"] = ",".join(
437  "%f" % x for x in h.buckets)
438  stats["core_http2_send_initial_metadata_per_write_bkts"] = ",".join(
439  "%f" % x for x in h.boundaries)
440  stats[
441  "core_http2_send_initial_metadata_per_write_50p"] = massage_qps_stats_helpers.percentile(
442  h.buckets, 50, h.boundaries)
443  stats[
444  "core_http2_send_initial_metadata_per_write_95p"] = massage_qps_stats_helpers.percentile(
445  h.buckets, 95, h.boundaries)
446  stats[
447  "core_http2_send_initial_metadata_per_write_99p"] = massage_qps_stats_helpers.percentile(
448  h.buckets, 99, h.boundaries)
449  h = massage_qps_stats_helpers.histogram(
450  core_stats, "http2_send_message_per_write")
451  stats["core_http2_send_message_per_write"] = ",".join(
452  "%f" % x for x in h.buckets)
453  stats["core_http2_send_message_per_write_bkts"] = ",".join(
454  "%f" % x for x in h.boundaries)
455  stats[
456  "core_http2_send_message_per_write_50p"] = massage_qps_stats_helpers.percentile(
457  h.buckets, 50, h.boundaries)
458  stats[
459  "core_http2_send_message_per_write_95p"] = massage_qps_stats_helpers.percentile(
460  h.buckets, 95, h.boundaries)
461  stats[
462  "core_http2_send_message_per_write_99p"] = massage_qps_stats_helpers.percentile(
463  h.buckets, 99, h.boundaries)
464  h = massage_qps_stats_helpers.histogram(
465  core_stats, "http2_send_trailing_metadata_per_write")
466  stats["core_http2_send_trailing_metadata_per_write"] = ",".join(
467  "%f" % x for x in h.buckets)
468  stats[
469  "core_http2_send_trailing_metadata_per_write_bkts"] = ",".join(
470  "%f" % x for x in h.boundaries)
471  stats[
472  "core_http2_send_trailing_metadata_per_write_50p"] = massage_qps_stats_helpers.percentile(
473  h.buckets, 50, h.boundaries)
474  stats[
475  "core_http2_send_trailing_metadata_per_write_95p"] = massage_qps_stats_helpers.percentile(
476  h.buckets, 95, h.boundaries)
477  stats[
478  "core_http2_send_trailing_metadata_per_write_99p"] = massage_qps_stats_helpers.percentile(
479  h.buckets, 99, h.boundaries)
480  h = massage_qps_stats_helpers.histogram(
481  core_stats, "http2_send_flowctl_per_write")
482  stats["core_http2_send_flowctl_per_write"] = ",".join(
483  "%f" % x for x in h.buckets)
484  stats["core_http2_send_flowctl_per_write_bkts"] = ",".join(
485  "%f" % x for x in h.boundaries)
486  stats[
487  "core_http2_send_flowctl_per_write_50p"] = massage_qps_stats_helpers.percentile(
488  h.buckets, 50, h.boundaries)
489  stats[
490  "core_http2_send_flowctl_per_write_95p"] = massage_qps_stats_helpers.percentile(
491  h.buckets, 95, h.boundaries)
492  stats[
493  "core_http2_send_flowctl_per_write_99p"] = massage_qps_stats_helpers.percentile(
494  h.buckets, 99, h.boundaries)
495  h = massage_qps_stats_helpers.histogram(core_stats,
496  "server_cqs_checked")
497  stats["core_server_cqs_checked"] = ",".join(
498  "%f" % x for x in h.buckets)
499  stats["core_server_cqs_checked_bkts"] = ",".join(
500  "%f" % x for x in h.boundaries)
501  stats[
502  "core_server_cqs_checked_50p"] = massage_qps_stats_helpers.percentile(
503  h.buckets, 50, h.boundaries)
504  stats[
505  "core_server_cqs_checked_95p"] = massage_qps_stats_helpers.percentile(
506  h.buckets, 95, h.boundaries)
507  stats[
508  "core_server_cqs_checked_99p"] = massage_qps_stats_helpers.percentile(
509  h.buckets, 99, h.boundaries)
performance.massage_qps_stats.massage_qps_stats
def massage_qps_stats(scenario_result)
Definition: massage_qps_stats.py:20


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