aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/run_tests/performance
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-09-13 09:37:44 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-09-13 09:37:44 -0700
commitb98f0455bcbe29d6f3fdfc74f3fb264575f615f6 (patch)
treeb172939dfb611c8239717d51b68a441c0ce7bf22 /tools/run_tests/performance
parent480f5d861264f00ee2226b2aa000bbeb268f0a29 (diff)
parentd1fefe89dacf198a721053f2b1a3e173f1f24948 (diff)
Merge github.com:grpc/grpc into pollset_kick_stats
Diffstat (limited to 'tools/run_tests/performance')
-rwxr-xr-xtools/run_tests/performance/bq_upload_result.py2
-rw-r--r--tools/run_tests/performance/massage_qps_stats.py141
-rw-r--r--tools/run_tests/performance/massage_qps_stats_helpers.py57
-rw-r--r--tools/run_tests/performance/scenario_config.py2
-rw-r--r--tools/run_tests/performance/scenario_result_schema.json1526
5 files changed, 1495 insertions, 233 deletions
diff --git a/tools/run_tests/performance/bq_upload_result.py b/tools/run_tests/performance/bq_upload_result.py
index 630ac23196..31819d6159 100755
--- a/tools/run_tests/performance/bq_upload_result.py
+++ b/tools/run_tests/performance/bq_upload_result.py
@@ -24,6 +24,7 @@ import os
import sys
import time
import uuid
+import massage_qps_stats
gcp_utils_dir = os.path.abspath(os.path.join(
@@ -117,6 +118,7 @@ def _flatten_result_inplace(scenario_result):
scenario_result['serverCpuUsage'] = scenario_result['summary'].pop('serverCpuUsage', None)
scenario_result['summary'].pop('successfulRequestsPerSecond', None)
scenario_result['summary'].pop('failedRequestsPerSecond', None)
+ massage_qps_stats.massage_qps_stats(scenario_result)
def _populate_metadata_inplace(scenario_result):
diff --git a/tools/run_tests/performance/massage_qps_stats.py b/tools/run_tests/performance/massage_qps_stats.py
new file mode 100644
index 0000000000..606660f700
--- /dev/null
+++ b/tools/run_tests/performance/massage_qps_stats.py
@@ -0,0 +1,141 @@
+# Copyright 2017 gRPC authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Autogenerated by tools/codegen/core/gen_stats_data.py
+
+import massage_qps_stats_helpers
+def massage_qps_stats(scenario_result):
+ for stats in scenario_result["serverStats"] + scenario_result["clientStats"]:
+ if "coreStats" not in stats: return
+ core_stats = stats["coreStats"]
+ del stats["coreStats"]
+ stats["core_client_calls_created"] = massage_qps_stats_helpers.counter(core_stats, "client_calls_created")
+ stats["core_server_calls_created"] = massage_qps_stats_helpers.counter(core_stats, "server_calls_created")
+ stats["core_syscall_poll"] = massage_qps_stats_helpers.counter(core_stats, "syscall_poll")
+ stats["core_syscall_wait"] = massage_qps_stats_helpers.counter(core_stats, "syscall_wait")
+ stats["core_pollset_kick"] = massage_qps_stats_helpers.counter(core_stats, "pollset_kick")
+ stats["core_pollset_kicked_without_poller"] = massage_qps_stats_helpers.counter(core_stats, "pollset_kicked_without_poller")
+ stats["core_pollset_kicked_again"] = massage_qps_stats_helpers.counter(core_stats, "pollset_kicked_again")
+ stats["core_pollset_kick_wakeup_fd"] = massage_qps_stats_helpers.counter(core_stats, "pollset_kick_wakeup_fd")
+ stats["core_pollset_kick_wakeup_cv"] = massage_qps_stats_helpers.counter(core_stats, "pollset_kick_wakeup_cv")
+ stats["core_pollset_kick_own_thread"] = massage_qps_stats_helpers.counter(core_stats, "pollset_kick_own_thread")
+ stats["core_histogram_slow_lookups"] = massage_qps_stats_helpers.counter(core_stats, "histogram_slow_lookups")
+ stats["core_syscall_write"] = massage_qps_stats_helpers.counter(core_stats, "syscall_write")
+ stats["core_syscall_read"] = massage_qps_stats_helpers.counter(core_stats, "syscall_read")
+ stats["core_tcp_backup_pollers_created"] = massage_qps_stats_helpers.counter(core_stats, "tcp_backup_pollers_created")
+ stats["core_tcp_backup_poller_polls"] = massage_qps_stats_helpers.counter(core_stats, "tcp_backup_poller_polls")
+ stats["core_http2_op_batches"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_batches")
+ stats["core_http2_op_cancel"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_cancel")
+ stats["core_http2_op_send_initial_metadata"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_send_initial_metadata")
+ stats["core_http2_op_send_message"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_send_message")
+ stats["core_http2_op_send_trailing_metadata"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_send_trailing_metadata")
+ stats["core_http2_op_recv_initial_metadata"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_recv_initial_metadata")
+ stats["core_http2_op_recv_message"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_recv_message")
+ stats["core_http2_op_recv_trailing_metadata"] = massage_qps_stats_helpers.counter(core_stats, "http2_op_recv_trailing_metadata")
+ stats["core_http2_settings_writes"] = massage_qps_stats_helpers.counter(core_stats, "http2_settings_writes")
+ stats["core_http2_pings_sent"] = massage_qps_stats_helpers.counter(core_stats, "http2_pings_sent")
+ stats["core_http2_writes_begun"] = massage_qps_stats_helpers.counter(core_stats, "http2_writes_begun")
+ stats["core_http2_writes_offloaded"] = massage_qps_stats_helpers.counter(core_stats, "http2_writes_offloaded")
+ stats["core_http2_writes_continued"] = massage_qps_stats_helpers.counter(core_stats, "http2_writes_continued")
+ stats["core_http2_partial_writes"] = massage_qps_stats_helpers.counter(core_stats, "http2_partial_writes")
+ stats["core_combiner_locks_initiated"] = massage_qps_stats_helpers.counter(core_stats, "combiner_locks_initiated")
+ stats["core_combiner_locks_scheduled_items"] = massage_qps_stats_helpers.counter(core_stats, "combiner_locks_scheduled_items")
+ stats["core_combiner_locks_scheduled_final_items"] = massage_qps_stats_helpers.counter(core_stats, "combiner_locks_scheduled_final_items")
+ stats["core_combiner_locks_offloaded"] = massage_qps_stats_helpers.counter(core_stats, "combiner_locks_offloaded")
+ stats["core_executor_scheduled_short_items"] = massage_qps_stats_helpers.counter(core_stats, "executor_scheduled_short_items")
+ stats["core_executor_scheduled_long_items"] = massage_qps_stats_helpers.counter(core_stats, "executor_scheduled_long_items")
+ stats["core_executor_scheduled_to_self"] = massage_qps_stats_helpers.counter(core_stats, "executor_scheduled_to_self")
+ 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_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, "call_initial_size")
+ stats["core_call_initial_size"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_call_initial_size_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_call_initial_size_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_call_initial_size_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_call_initial_size_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ h = massage_qps_stats_helpers.histogram(core_stats, "poll_events_returned")
+ stats["core_poll_events_returned"] = ",".join("%f" % x for x in h.buckets)
+ stats["core_poll_events_returned_bkts"] = ",".join("%f" % x for x in h.boundaries)
+ stats["core_poll_events_returned_50p"] = massage_qps_stats_helpers.percentile(h.buckets, 50, h.boundaries)
+ stats["core_poll_events_returned_95p"] = massage_qps_stats_helpers.percentile(h.buckets, 95, h.boundaries)
+ stats["core_poll_events_returned_99p"] = massage_qps_stats_helpers.percentile(h.buckets, 99, h.boundaries)
+ 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
new file mode 100644
index 0000000000..400a0c82bf
--- /dev/null
+++ b/tools/run_tests/performance/massage_qps_stats_helpers.py
@@ -0,0 +1,57 @@
+# Copyright 2017 gRPC authors.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+import collections
+
+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]
+ if count_so_far >= count_below:
+ break
+ if count_so_far == count_below:
+ # this bucket hits the threshold exactly... we should be midway through
+ # any run of zero values following the bucket
+ for upper_idx in range(lower_idx + 1, num_buckets):
+ if buckets[upper_idx] != 0:
+ break
+ return (boundaries[lower_idx] + boundaries[upper_idx]) / 2.0
+ else:
+ # treat values as uniform throughout the bucket, and find where this value
+ # should lie
+ lower_bound = boundaries[lower_idx]
+ upper_bound = boundaries[lower_idx + 1]
+ return (upper_bound -
+ (upper_bound - lower_bound) * (count_so_far - count_below) /
+ float(buckets[lower_idx]))
+
+def percentile(buckets, pctl, boundaries):
+ return _threshold_for_count_below(
+ buckets, boundaries, sum(buckets) * pctl / 100.0)
+
+def counter(core_stats, name):
+ for stat in core_stats['metrics']:
+ if stat['name'] == name:
+ return int(stat.get('count', 0))
+
+Histogram = collections.namedtuple('Histogram', 'buckets boundaries')
+def histogram(core_stats, name):
+ for stat in core_stats['metrics']:
+ if stat['name'] == name:
+ buckets = []
+ boundaries = []
+ for b in stat['histogram']['buckets']:
+ buckets.append(int(b.get('count', 0)))
+ boundaries.append(int(b.get('start', 0)))
+ return Histogram(buckets=buckets, boundaries=boundaries)
diff --git a/tools/run_tests/performance/scenario_config.py b/tools/run_tests/performance/scenario_config.py
index cbcc4d0ecc..a7560400dd 100644
--- a/tools/run_tests/performance/scenario_config.py
+++ b/tools/run_tests/performance/scenario_config.py
@@ -453,6 +453,8 @@ class CXXLanguage:
unconstrained_client=synchronicity,
secure=secure,
minimal_stack=not secure,
+ server_threads_per_cq=3,
+ client_threads_per_cq=3,
categories=smoketest_categories+[SCALABLE])
# TODO(vjpai): Re-enable this test. It has a lot of timeouts
diff --git a/tools/run_tests/performance/scenario_result_schema.json b/tools/run_tests/performance/scenario_result_schema.json
index d7e2e292a7..11f41ab012 100644
--- a/tools/run_tests/performance/scenario_result_schema.json
+++ b/tools/run_tests/performance/scenario_result_schema.json
@@ -1,269 +1,1329 @@
[
{
- "name": "metadata",
- "type": "RECORD",
- "mode": "NULLABLE",
"fields": [
{
- "name": "buildNumber",
- "type": "INTEGER",
- "mode": "NULLABLE"
- },
- {
- "name": "buildUrl",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "jobName",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "gitCommit",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "gitActualCommit",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "created",
- "type": "TIMESTAMP",
- "mode": "NULLABLE"
+ "mode": "NULLABLE",
+ "name": "buildNumber",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "buildUrl",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "jobName",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "gitCommit",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "gitActualCommit",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "created",
+ "type": "TIMESTAMP"
}
- ]
- },
+ ],
+ "mode": "NULLABLE",
+ "name": "metadata",
+ "type": "RECORD"
+ },
{
- "name": "scenario",
- "type": "RECORD",
- "mode": "NULLABLE",
"fields": [
{
- "name": "name",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "clientConfig",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "numClients",
- "type": "INTEGER",
- "mode": "NULLABLE"
- },
- {
- "name": "serverConfig",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "numServers",
- "type": "INTEGER",
- "mode": "NULLABLE"
- },
- {
- "name": "warmupSeconds",
- "type": "INTEGER",
- "mode": "NULLABLE"
- },
- {
- "name": "benchmarkSeconds",
- "type": "INTEGER",
- "mode": "NULLABLE"
+ "mode": "NULLABLE",
+ "name": "name",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "clientConfig",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "numClients",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "serverConfig",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "numServers",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "warmupSeconds",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "benchmarkSeconds",
+ "type": "INTEGER"
}
- ]
- },
+ ],
+ "mode": "NULLABLE",
+ "name": "scenario",
+ "type": "RECORD"
+ },
{
- "name": "latencies",
- "type": "STRING",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "latencies",
+ "type": "STRING"
+ },
{
- "name": "clientStats",
- "type": "RECORD",
- "mode": "REPEATED",
"fields": [
{
- "name": "latencies",
- "type": "STRING",
- "mode": "NULLABLE"
- },
- {
- "name": "timeElapsed",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "timeUser",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "timeSystem",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "cqPollCount",
- "type": "INTEGER",
- "mode": "NULLABLE"
+ "mode": "NULLABLE",
+ "name": "latencies",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "timeElapsed",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "timeUser",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "timeSystem",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "cqPollCount",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_client_calls_created",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_calls_created",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_poll",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_wait",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kicked_without_poller",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kicked_again",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick_wakeup_fd",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick_wakeup_cv",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick_own_thread",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_histogram_slow_lookups",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_write",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_read",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_backup_pollers_created",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_backup_poller_polls",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_batches",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_cancel",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_send_initial_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_send_message",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_send_trailing_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_recv_initial_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_recv_message",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_recv_trailing_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_settings_writes",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_pings_sent",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_writes_begun",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_writes_offloaded",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_writes_continued",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_partial_writes",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_initiated",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_scheduled_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_scheduled_final_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_offloaded",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_scheduled_short_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_scheduled_long_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_scheduled_to_self",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_wakeup_initiated",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_queue_drained",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_push_retries",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_requested_calls",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_slowpath_requests_queued",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "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",
+ "name": "clientStats",
+ "type": "RECORD"
+ },
{
- "name": "serverStats",
- "type": "RECORD",
- "mode": "REPEATED",
"fields": [
{
- "name": "timeElapsed",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "timeElapsed",
+ "type": "FLOAT"
+ },
{
- "name": "timeUser",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "timeUser",
+ "type": "FLOAT"
+ },
{
- "name": "timeSystem",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "timeSystem",
+ "type": "FLOAT"
+ },
{
- "name": "cqPollCount",
- "type": "INTEGER",
- "mode": "NULLABLE"
+ "mode": "NULLABLE",
+ "name": "cqPollCount",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_client_calls_created",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_calls_created",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_poll",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_wait",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kicked_without_poller",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kicked_again",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick_wakeup_fd",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick_wakeup_cv",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_pollset_kick_own_thread",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_histogram_slow_lookups",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_write",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_syscall_read",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_backup_pollers_created",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_backup_poller_polls",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_batches",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_cancel",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_send_initial_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_send_message",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_send_trailing_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_recv_initial_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_recv_message",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_op_recv_trailing_metadata",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_settings_writes",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_pings_sent",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_writes_begun",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_writes_offloaded",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_writes_continued",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_partial_writes",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_initiated",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_scheduled_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_scheduled_final_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_combiner_locks_offloaded",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_scheduled_short_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_scheduled_long_items",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_scheduled_to_self",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_wakeup_initiated",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_queue_drained",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_executor_push_retries",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_requested_calls",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_server_slowpath_requests_queued",
+ "type": "INTEGER"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_call_initial_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_poll_events_returned_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_write_iov_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_tcp_read_offer_iov_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_size_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_initial_metadata_per_write_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_message_per_write_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_trailing_metadata_per_write_99p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write_bkts",
+ "type": "STRING"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write_50p",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "core_http2_send_flowctl_per_write_95p",
+ "type": "FLOAT"
+ },
+ {
+ "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",
+ "name": "serverStats",
+ "type": "RECORD"
+ },
{
- "name": "serverCores",
- "type": "STRING",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "serverCores",
+ "type": "STRING"
+ },
{
- "name": "summary",
- "type": "RECORD",
- "mode": "NULLABLE",
"fields": [
{
- "name": "qps",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "qpsPerServerCore",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "serverSystemTime",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "serverUserTime",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "clientSystemTime",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "clientUserTime",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "latency50",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "latency90",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "latency95",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "latency99",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "latency999",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "clientPollsPerRequest",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "serverPollsPerRequest",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "serverQueriesPerCpuSec",
- "type": "FLOAT",
- "mode": "NULLABLE"
- },
- {
- "name": "clientQueriesPerCpuSec",
- "type": "FLOAT",
- "mode": "NULLABLE"
+ "mode": "NULLABLE",
+ "name": "qps",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "qpsPerServerCore",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "serverSystemTime",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "serverUserTime",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "clientSystemTime",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "clientUserTime",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "latency50",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "latency90",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "latency95",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "latency99",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "latency999",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "clientPollsPerRequest",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "serverPollsPerRequest",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "serverQueriesPerCpuSec",
+ "type": "FLOAT"
+ },
+ {
+ "mode": "NULLABLE",
+ "name": "clientQueriesPerCpuSec",
+ "type": "FLOAT"
}
- ]
- },
+ ],
+ "mode": "NULLABLE",
+ "name": "summary",
+ "type": "RECORD"
+ },
{
- "name": "clientSuccess",
- "type": "STRING",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "clientSuccess",
+ "type": "STRING"
+ },
{
- "name": "serverSuccess",
- "type": "STRING",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "serverSuccess",
+ "type": "STRING"
+ },
{
- "name": "requestResults",
- "type": "STRING",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "requestResults",
+ "type": "STRING"
+ },
{
- "name": "serverCpuStats",
- "type": "RECORD",
- "mode": "REPEATED",
"fields": [
{
- "name": "totalCpuTime",
- "type": "INTEGER",
- "mode": "NULLABLE"
- },
+ "mode": "NULLABLE",
+ "name": "totalCpuTime",
+ "type": "INTEGER"
+ },
{
- "name": "idleCpuTime",
- "type": "INTEGER",
- "mode": "NULLABLE"
+ "mode": "NULLABLE",
+ "name": "idleCpuTime",
+ "type": "INTEGER"
}
- ]
- },
+ ],
+ "mode": "REPEATED",
+ "name": "serverCpuStats",
+ "type": "RECORD"
+ },
{
- "name": "serverCpuUsage",
- "type": "FLOAT",
- "mode": "NULLABLE"
+ "mode": "NULLABLE",
+ "name": "serverCpuUsage",
+ "type": "FLOAT"
}
-]
+] \ No newline at end of file