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# Stats data declaration 16# use tools / codegen / core / gen_stats_data.py to turn this into stats_data.h 17 18# overall 19- counter: client_calls_created 20 doc: Number of client side calls created by this process 21- counter: server_calls_created 22 doc: Number of server side calls created by this process 23- histogram: call_initial_size 24 max: 262144 25 buckets: 64 26 doc: Initial size of the grpc_call arena created at call start 27- counter: cqs_created 28 doc: Number of completion queues created 29- counter: client_channels_created 30 doc: Number of client channels created 31- counter: client_subchannels_created 32 doc: Number of client subchannels created 33- counter: server_channels_created 34 doc: Number of server channels created 35# polling 36- counter: syscall_poll 37 doc: Number of polling syscalls (epoll_wait, poll, etc) made by this process 38- counter: syscall_wait 39 doc: Number of sleeping syscalls made by this process 40- histogram: poll_events_returned 41 max: 1024 42 buckets: 128 43 doc: How many events are called for each syscall_poll 44- counter: pollset_kick 45 doc: How many polling wakeups were performed by the process 46 (only valid for epoll1 right now) 47- counter: pollset_kicked_without_poller 48 doc: How many times was a polling wakeup requested without an active poller 49 (only valid for epoll1 right now) 50- counter: pollset_kicked_again 51 doc: How many times was the same polling worker awoken repeatedly before 52 waking up 53 (only valid for epoll1 right now) 54- counter: pollset_kick_wakeup_fd 55 doc: How many times was an eventfd used as the wakeup vector for a polling 56 wakeup 57 (only valid for epoll1 right now) 58- counter: pollset_kick_wakeup_cv 59 doc: How many times was a condition variable used as the wakeup vector for a 60 polling wakeup 61 (only valid for epoll1 right now) 62- counter: pollset_kick_own_thread 63 doc: How many times could a polling wakeup be satisfied by keeping the waking 64 thread awake? 65 (only valid for epoll1 right now) 66# polling 67- counter: syscall_epoll_ctl 68 doc: Number of epoll_ctl calls made (only valid for epollex right now) 69- counter: pollset_fd_cache_hits 70 doc: Number of epoll_ctl calls skipped because the fd was cached as 71 already being added. (only valid for epollex right now) 72# stats system 73- counter: histogram_slow_lookups 74 doc: Number of times histogram increments went through the slow 75 (binary search) path 76# tcp 77- counter: syscall_write 78 doc: Number of write syscalls (or equivalent - eg sendmsg) made by this process 79- counter: syscall_read 80 doc: Number of read syscalls (or equivalent - eg recvmsg) made by this process 81- histogram: tcp_write_size 82 max: 16777216 # 16 meg max write tracked 83 buckets: 64 84 doc: Number of bytes offered to each syscall_write 85- histogram: tcp_write_iov_size 86 max: 1024 87 buckets: 64 88 doc: Number of byte segments offered to each syscall_write 89- histogram: tcp_read_size 90 max: 16777216 91 buckets: 64 92 doc: Number of bytes received by each syscall_read 93- histogram: tcp_read_offer 94 max: 16777216 95 buckets: 64 96 doc: Number of bytes offered to each syscall_read 97- histogram: tcp_read_offer_iov_size 98 max: 1024 99 buckets: 64 100 doc: Number of byte segments offered to each syscall_read 101- counter: tcp_backup_pollers_created 102 doc: Number of times a backup poller has been created (this can be expensive) 103- counter: tcp_backup_poller_polls 104 doc: Number of polls performed on the backup poller 105# chttp2 106- counter: http2_op_batches 107 doc: Number of batches received by HTTP2 transport 108- counter: http2_op_cancel 109 doc: Number of cancelations received by HTTP2 transport 110- counter: http2_op_send_initial_metadata 111 doc: Number of batches containing send initial metadata 112- counter: http2_op_send_message 113 doc: Number of batches containing send message 114- counter: http2_op_send_trailing_metadata 115 doc: Number of batches containing send trailing metadata 116- counter: http2_op_recv_initial_metadata 117 doc: Number of batches containing receive initial metadata 118- counter: http2_op_recv_message 119 doc: Number of batches containing receive message 120- counter: http2_op_recv_trailing_metadata 121 doc: Number of batches containing receive trailing metadata 122- histogram: http2_send_message_size 123 max: 16777216 124 buckets: 64 125 doc: Size of messages received by HTTP2 transport 126- histogram: http2_send_initial_metadata_per_write 127 max: 1024 128 buckets: 64 129 doc: Number of streams initiated written per TCP write 130- histogram: http2_send_message_per_write 131 max: 1024 132 buckets: 64 133 doc: Number of streams whose payload was written per TCP write 134- histogram: http2_send_trailing_metadata_per_write 135 max: 1024 136 buckets: 64 137 doc: Number of streams terminated per TCP write 138- histogram: http2_send_flowctl_per_write 139 max: 1024 140 buckets: 64 141 doc: Number of flow control updates written per TCP write 142- counter: http2_settings_writes 143 doc: Number of settings frames sent 144- counter: http2_pings_sent 145 doc: Number of HTTP2 pings sent by process 146- counter: http2_writes_begun 147 doc: Number of HTTP2 writes initiated 148- counter: http2_writes_offloaded 149 doc: Number of HTTP2 writes offloaded to the executor from application threads 150- counter: http2_writes_continued 151 doc: Number of HTTP2 writes that finished seeing more data needed to be 152 written 153- counter: http2_partial_writes 154 doc: Number of HTTP2 writes that were made knowing there was still more data 155 to be written (we cap maximum write size to syscall_write) 156- counter: http2_initiate_write_due_to_initial_write 157 doc: Number of HTTP2 writes initiated due to 'initial_write' 158- counter: http2_initiate_write_due_to_start_new_stream 159 doc: Number of HTTP2 writes initiated due to 'start_new_stream' 160- counter: http2_initiate_write_due_to_send_message 161 doc: Number of HTTP2 writes initiated due to 'send_message' 162- counter: http2_initiate_write_due_to_send_initial_metadata 163 doc: Number of HTTP2 writes initiated due to 'send_initial_metadata' 164- counter: http2_initiate_write_due_to_send_trailing_metadata 165 doc: Number of HTTP2 writes initiated due to 'send_trailing_metadata' 166- counter: http2_initiate_write_due_to_retry_send_ping 167 doc: Number of HTTP2 writes initiated due to 'retry_send_ping' 168- counter: http2_initiate_write_due_to_continue_pings 169 doc: Number of HTTP2 writes initiated due to 'continue_pings' 170- counter: http2_initiate_write_due_to_goaway_sent 171 doc: Number of HTTP2 writes initiated due to 'goaway_sent' 172- counter: http2_initiate_write_due_to_rst_stream 173 doc: Number of HTTP2 writes initiated due to 'rst_stream' 174- counter: http2_initiate_write_due_to_close_from_api 175 doc: Number of HTTP2 writes initiated due to 'close_from_api' 176- counter: http2_initiate_write_due_to_stream_flow_control 177 doc: Number of HTTP2 writes initiated due to 'stream_flow_control' 178- counter: http2_initiate_write_due_to_transport_flow_control 179 doc: Number of HTTP2 writes initiated due to 'transport_flow_control' 180- counter: http2_initiate_write_due_to_send_settings 181 doc: Number of HTTP2 writes initiated due to 'send_settings' 182- counter: http2_initiate_write_due_to_bdp_estimator_ping 183 doc: Number of HTTP2 writes initiated due to 'bdp_estimator_ping' 184- counter: http2_initiate_write_due_to_flow_control_unstalled_by_setting 185 doc: Number of HTTP2 writes initiated due to 'flow_control_unstalled_by_setting' 186- counter: http2_initiate_write_due_to_flow_control_unstalled_by_update 187 doc: Number of HTTP2 writes initiated due to 'flow_control_unstalled_by_update' 188- counter: http2_initiate_write_due_to_application_ping 189 doc: Number of HTTP2 writes initiated due to 'application_ping' 190- counter: http2_initiate_write_due_to_keepalive_ping 191 doc: Number of HTTP2 writes initiated due to 'keepalive_ping' 192- counter: http2_initiate_write_due_to_transport_flow_control_unstalled 193 doc: Number of HTTP2 writes initiated due to 'transport_flow_control_unstalled' 194- counter: http2_initiate_write_due_to_ping_response 195 doc: Number of HTTP2 writes initiated due to 'ping_response' 196- counter: http2_initiate_write_due_to_force_rst_stream 197 doc: Number of HTTP2 writes initiated due to 'force_rst_stream' 198- counter: http2_spurious_writes_begun 199 doc: Number of HTTP2 writes initiated with nothing to write 200- counter: hpack_recv_indexed 201 doc: Number of HPACK indexed fields received 202- counter: hpack_recv_lithdr_incidx 203 doc: Number of HPACK literal headers received with incremental indexing 204- counter: hpack_recv_lithdr_incidx_v 205 doc: Number of HPACK literal headers received with incremental indexing and literal keys 206- counter: hpack_recv_lithdr_notidx 207 doc: Number of HPACK literal headers received with no indexing 208- counter: hpack_recv_lithdr_notidx_v 209 doc: Number of HPACK literal headers received with no indexing and literal keys 210- counter: hpack_recv_lithdr_nvridx 211 doc: Number of HPACK literal headers received with never-indexing 212- counter: hpack_recv_lithdr_nvridx_v 213 doc: Number of HPACK literal headers received with never-indexing and literal keys 214- counter: hpack_recv_uncompressed 215 doc: Number of uncompressed strings received in metadata 216- counter: hpack_recv_huffman 217 doc: Number of huffman encoded strings received in metadata 218- counter: hpack_recv_binary 219 doc: Number of binary strings received in metadata 220- counter: hpack_recv_binary_base64 221 doc: Number of binary strings received encoded in base64 in metadata 222- counter: hpack_send_indexed 223 doc: Number of HPACK indexed fields sent 224- counter: hpack_send_lithdr_incidx 225 doc: Number of HPACK literal headers sent with incremental indexing 226- counter: hpack_send_lithdr_incidx_v 227 doc: Number of HPACK literal headers sent with incremental indexing and literal keys 228- counter: hpack_send_lithdr_notidx 229 doc: Number of HPACK literal headers sent with no indexing 230- counter: hpack_send_lithdr_notidx_v 231 doc: Number of HPACK literal headers sent with no indexing and literal keys 232- counter: hpack_send_lithdr_nvridx 233 doc: Number of HPACK literal headers sent with never-indexing 234- counter: hpack_send_lithdr_nvridx_v 235 doc: Number of HPACK literal headers sent with never-indexing and literal keys 236- counter: hpack_send_uncompressed 237 doc: Number of uncompressed strings sent in metadata 238- counter: hpack_send_huffman 239 doc: Number of huffman encoded strings sent in metadata 240- counter: hpack_send_binary 241 doc: Number of binary strings received in metadata 242- counter: hpack_send_binary_base64 243 doc: Number of binary strings received encoded in base64 in metadata 244# combiner locks 245- counter: combiner_locks_initiated 246 doc: Number of combiner lock entries by process 247 (first items queued to a combiner) 248- counter: combiner_locks_scheduled_items 249 doc: Number of items scheduled against combiner locks 250- counter: combiner_locks_scheduled_final_items 251 doc: Number of final items scheduled against combiner locks 252- counter: combiner_locks_offloaded 253 doc: Number of combiner locks offloaded to different threads 254# call combiner locks 255- counter: call_combiner_locks_initiated 256 doc: Number of call combiner lock entries by process 257 (first items queued to a call combiner) 258- counter: call_combiner_locks_scheduled_items 259 doc: Number of items scheduled against call combiner locks 260- counter: call_combiner_set_notify_on_cancel 261 doc: Number of times a cancellation callback was set on a call combiner 262- counter: call_combiner_cancelled 263 doc: Number of times a call combiner was cancelled 264# executor 265- counter: executor_scheduled_short_items 266 doc: Number of finite runtime closures scheduled against the executor 267 (gRPC thread pool) 268- counter: executor_scheduled_long_items 269 doc: Number of potentially infinite runtime closures scheduled against the 270 executor (gRPC thread pool) 271- counter: executor_scheduled_to_self 272 doc: Number of closures scheduled by the executor to the executor 273- counter: executor_wakeup_initiated 274 doc: Number of thread wakeups initiated within the executor 275- counter: executor_queue_drained 276 doc: Number of times an executor queue was drained 277- counter: executor_push_retries 278 doc: Number of times we raced and were forced to retry pushing a closure to 279 the executor 280# server 281- counter: server_requested_calls 282 doc: How many calls were requested (not necessarily received) by the server 283- histogram: server_cqs_checked 284 buckets: 8 285 max: 64 286 doc: How many completion queues were checked looking for a CQ that had 287 requested the incoming call 288- counter: server_slowpath_requests_queued 289 doc: How many times was the server slow path taken (indicates too few 290 outstanding requests) 291# cq 292- counter: cq_ev_queue_trylock_failures 293 doc: Number of lock (trylock) acquisition failures on completion queue event 294 queue. High value here indicates high contention on completion queues 295- counter: cq_ev_queue_trylock_successes 296 doc: Number of lock (trylock) acquisition successes on completion queue event 297 queue. 298- counter: cq_ev_queue_transient_pop_failures 299 doc: Number of times NULL was popped out of completion queue's event queue 300 even though the event queue was not empty 301