aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-09-12 13:15:58 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-09-12 14:56:04 -0700
commit27147b85f8eeede4f918705e42a91093d450757c (patch)
tree2b8b32af93c3d60699003490a9de08441433f652 /tools
parent73a61708965d35e3b96d7a4f8feeba85601d5aa2 (diff)
Review feedback
Diffstat (limited to 'tools')
-rwxr-xr-xtools/codegen/core/gen_stats_data.py9
-rw-r--r--tools/run_tests/performance/massage_qps_stats.py118
-rw-r--r--tools/run_tests/performance/massage_qps_stats_helpers.py4
-rw-r--r--tools/run_tests/performance/scenario_result_schema.json70
4 files changed, 145 insertions, 56 deletions
diff --git a/tools/codegen/core/gen_stats_data.py b/tools/codegen/core/gen_stats_data.py
index f665b5808e..985c1f51c9 100755
--- a/tools/codegen/core/gen_stats_data.py
+++ b/tools/codegen/core/gen_stats_data.py
@@ -395,8 +395,9 @@ with open('tools/run_tests/performance/massage_qps_stats.py', 'w') as P:
for counter in inst_map['Counter']:
print >>P, ' stats["core_%s"] = massage_qps_stats_helpers.counter(core_stats, "%s")' % (counter.name, counter.name)
for i, histogram in enumerate(inst_map['Histogram']):
- print >>P, ' stats["core_%s"] = ",".join("%%f" %% x for x in massage_qps_stats_helpers.histogram(core_stats, "%s").buckets)' % (histogram.name, histogram.name)
- print >>P, ' stats["core_%s_bkts"] = ",".join("%%f" %% x for x in massage_qps_stats_helpers.histogram(core_stats, "%s").boundaries)' % (histogram.name, histogram.name)
+ print >>P, ' h = massage_qps_stats_helpers.histogram(core_stats, "%s")' % histogram.name
+ print >>P, ' stats["core_%s"] = ",".join("%%f" %% x for x in h.buckets)' % histogram.name
+ print >>P, ' stats["core_%s_bkts"] = ",".join("%%f" %% x for x in h.boundaries)' % histogram.name
for pctl in RECORD_EXPLICIT_PERCENTILES:
- print >>P, ' stats["core_%s_%dp"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "%s").buckets, %d, massage_qps_stats_helpers.histogram(core_stats, "%s").boundaries)' % (
- histogram.name, pctl, histogram.name, pctl, histogram.name)
+ print >>P, ' stats["core_%s_%dp"] = massage_qps_stats_helpers.percentile(h.buckets, %d, h.boundaries)' % (
+ histogram.name, pctl, pctl)
diff --git a/tools/run_tests/performance/massage_qps_stats.py b/tools/run_tests/performance/massage_qps_stats.py
index 1ed5be731d..30a94ca7cd 100644
--- a/tools/run_tests/performance/massage_qps_stats.py
+++ b/tools/run_tests/performance/massage_qps_stats.py
@@ -53,53 +53,71 @@ def massage_qps_stats(scenario_result):
stats["core_executor_wakeup_initiated"] = massage_qps_stats_helpers.counter(core_stats, "executor_wakeup_initiated")
stats["core_executor_queue_drained"] = massage_qps_stats_helpers.counter(core_stats, "executor_queue_drained")
stats["core_executor_push_retries"] = massage_qps_stats_helpers.counter(core_stats, "executor_push_retries")
- stats["core_tcp_write_size"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").buckets)
- stats["core_tcp_write_size_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").boundaries)
- stats["core_tcp_write_size_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").boundaries)
- stats["core_tcp_write_size_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").boundaries)
- stats["core_tcp_write_size_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size").boundaries)
- stats["core_tcp_write_iov_size"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").buckets)
- stats["core_tcp_write_iov_size_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").boundaries)
- stats["core_tcp_write_iov_size_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").boundaries)
- stats["core_tcp_write_iov_size_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").boundaries)
- stats["core_tcp_write_iov_size_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size").boundaries)
- stats["core_tcp_read_size"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").buckets)
- stats["core_tcp_read_size_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").boundaries)
- stats["core_tcp_read_size_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").boundaries)
- stats["core_tcp_read_size_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").boundaries)
- stats["core_tcp_read_size_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size").boundaries)
- stats["core_tcp_read_offer"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").buckets)
- stats["core_tcp_read_offer_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").boundaries)
- stats["core_tcp_read_offer_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").boundaries)
- stats["core_tcp_read_offer_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").boundaries)
- stats["core_tcp_read_offer_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer").boundaries)
- stats["core_tcp_read_offer_iov_size"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").buckets)
- stats["core_tcp_read_offer_iov_size_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").boundaries)
- stats["core_tcp_read_offer_iov_size_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").boundaries)
- stats["core_tcp_read_offer_iov_size_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").boundaries)
- stats["core_tcp_read_offer_iov_size_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size").boundaries)
- stats["core_http2_send_message_size"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").buckets)
- stats["core_http2_send_message_size_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").boundaries)
- stats["core_http2_send_message_size_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").boundaries)
- stats["core_http2_send_message_size_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").boundaries)
- stats["core_http2_send_message_size_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size").boundaries)
- stats["core_http2_send_initial_metadata_per_write"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").buckets)
- stats["core_http2_send_initial_metadata_per_write_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").boundaries)
- stats["core_http2_send_initial_metadata_per_write_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").boundaries)
- stats["core_http2_send_initial_metadata_per_write_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").boundaries)
- stats["core_http2_send_initial_metadata_per_write_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write").boundaries)
- stats["core_http2_send_message_per_write"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").buckets)
- stats["core_http2_send_message_per_write_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").boundaries)
- stats["core_http2_send_message_per_write_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").boundaries)
- stats["core_http2_send_message_per_write_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").boundaries)
- stats["core_http2_send_message_per_write_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write").boundaries)
- stats["core_http2_send_trailing_metadata_per_write"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").buckets)
- stats["core_http2_send_trailing_metadata_per_write_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").boundaries)
- stats["core_http2_send_trailing_metadata_per_write_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").boundaries)
- stats["core_http2_send_trailing_metadata_per_write_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").boundaries)
- stats["core_http2_send_trailing_metadata_per_write_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write").boundaries)
- stats["core_http2_send_flowctl_per_write"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").buckets)
- stats["core_http2_send_flowctl_per_write_bkts"] = ",".join("%f" % x for x in massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").boundaries)
- stats["core_http2_send_flowctl_per_write_50p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").buckets, 50, massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").boundaries)
- stats["core_http2_send_flowctl_per_write_95p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").buckets, 95, massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").boundaries)
- stats["core_http2_send_flowctl_per_write_99p"] = massage_qps_stats_helpers.percentile(massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").buckets, 99, massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write").boundaries)
+ stats["core_server_requested_calls"] = massage_qps_stats_helpers.counter(core_stats, "server_requested_calls")
+ stats["core_server_slowpath_requests_queued"] = massage_qps_stats_helpers.counter(core_stats, "server_slowpath_requests_queued")
+ h = massage_qps_stats_helpers.histogram(core_stats, "tcp_write_size")
+ stats["core_tcp_write_size"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_tcp_write_size_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_tcp_write_size_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_tcp_write_size_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_tcp_write_size_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "tcp_write_iov_size")
+ stats["core_tcp_write_iov_size"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_tcp_write_iov_size_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_tcp_write_iov_size_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_tcp_write_iov_size_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_tcp_write_iov_size_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "tcp_read_size")
+ stats["core_tcp_read_size"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_tcp_read_size_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_tcp_read_size_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_tcp_read_size_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_tcp_read_size_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer")
+ stats["core_tcp_read_offer"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_tcp_read_offer_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_tcp_read_offer_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_tcp_read_offer_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_tcp_read_offer_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "tcp_read_offer_iov_size")
+ stats["core_tcp_read_offer_iov_size"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_tcp_read_offer_iov_size_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_tcp_read_offer_iov_size_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_tcp_read_offer_iov_size_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_tcp_read_offer_iov_size_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_size")
+ stats["core_http2_send_message_size"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_http2_send_message_size_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_http2_send_message_size_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_http2_send_message_size_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_http2_send_message_size_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "http2_send_initial_metadata_per_write")
+ stats["core_http2_send_initial_metadata_per_write"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_http2_send_initial_metadata_per_write_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_http2_send_initial_metadata_per_write_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_http2_send_initial_metadata_per_write_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_http2_send_initial_metadata_per_write_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "http2_send_message_per_write")
+ stats["core_http2_send_message_per_write"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_http2_send_message_per_write_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_http2_send_message_per_write_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_http2_send_message_per_write_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_http2_send_message_per_write_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "http2_send_trailing_metadata_per_write")
+ stats["core_http2_send_trailing_metadata_per_write"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_http2_send_trailing_metadata_per_write_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_http2_send_trailing_metadata_per_write_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_http2_send_trailing_metadata_per_write_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_http2_send_trailing_metadata_per_write_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "http2_send_flowctl_per_write")
+ stats["core_http2_send_flowctl_per_write"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_http2_send_flowctl_per_write_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_http2_send_flowctl_per_write_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_http2_send_flowctl_per_write_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_http2_send_flowctl_per_write_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "server_cqs_checked")
+ stats["core_server_cqs_checked"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_server_cqs_checked_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_server_cqs_checked_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_server_cqs_checked_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_server_cqs_checked_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
diff --git a/tools/run_tests/performance/massage_qps_stats_helpers.py b/tools/run_tests/performance/massage_qps_stats_helpers.py
index c5d884344f..400a0c82bf 100644
--- a/tools/run_tests/performance/massage_qps_stats_helpers.py
+++ b/tools/run_tests/performance/massage_qps_stats_helpers.py
@@ -14,7 +14,7 @@
import collections
-def threshold_for_count_below(buckets, boundaries, count_below):
+def _threshold_for_count_below(buckets, boundaries, count_below):
count_so_far = 0
for lower_idx in range(0, len(buckets)):
count_so_far += buckets[lower_idx]
@@ -37,7 +37,7 @@ def threshold_for_count_below(buckets, boundaries, count_below):
float(buckets[lower_idx]))
def percentile(buckets, pctl, boundaries):
- return threshold_for_count_below(
+ return _threshold_for_count_below(
buckets, boundaries, sum(buckets) * pctl / 100.0)
def counter(core_stats, name):
diff --git a/tools/run_tests/performance/scenario_result_schema.json b/tools/run_tests/performance/scenario_result_schema.json
index a28d27fece..84b3cb7c0a 100644
--- a/tools/run_tests/performance/scenario_result_schema.json
+++ b/tools/run_tests/performance/scenario_result_schema.json
@@ -277,6 +277,16 @@
},
{
"mode": "NULLABLE",
+ "name": "core_server_requested_calls",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_slowpath_requests_queued",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
"name": "core_tcp_write_size",
"type": "STRING"
},
@@ -524,6 +534,31 @@
"mode": "NULLABLE",
"name": "core_http2_send_flowctl_per_write_99p",
"type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_99p",
+ "type": "FLOAT"
}
],
"mode": "REPEATED",
@@ -719,6 +754,16 @@
},
{
"mode": "NULLABLE",
+ "name": "core_server_requested_calls",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_slowpath_requests_queued",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
"name": "core_tcp_write_size",
"type": "STRING"
},
@@ -966,6 +1011,31 @@
"mode": "NULLABLE",
"name": "core_http2_send_flowctl_per_write_99p",
"type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_cqs_checked_99p",
+ "type": "FLOAT"
}
],
"mode": "REPEATED",