| # 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. |
| |
| # Stats data declaration |
| # use tools / codegen / core / gen_stats_data.py to turn this into stats_data.h |
| |
| # overall |
| - counter: client_calls_created |
| doc: Number of client side calls created by this process |
| - counter: server_calls_created |
| doc: Number of server side calls created by this process |
| - histogram: call_initial_size |
| max: 262144 |
| buckets: 64 |
| doc: Initial size of the grpc_call arena created at call start |
| # polling |
| - counter: syscall_poll |
| doc: Number of polling syscalls (epoll_wait, poll, etc) made by this process |
| - counter: syscall_wait |
| doc: Number of sleeping syscalls made by this process |
| - histogram: poll_events_returned |
| max: 1024 |
| buckets: 128 |
| doc: How many events are called for each syscall_poll |
| - counter: pollset_kick |
| doc: How many polling wakeups were performed by the process |
| - counter: pollset_kicked_without_poller |
| doc: How many times was a polling wakeup requested without an active poller |
| - counter: pollset_kicked_again |
| doc: How many times was the same polling worker awoken repeatedly before |
| waking up |
| - counter: pollset_kick_wakeup_fd |
| doc: How many times was an eventfd used as the wakeup vector for a polling |
| wakeup |
| - counter: pollset_kick_wakeup_cv |
| doc: How many times was a condition variable used as the wakeup vector for a |
| polling wakeup |
| - counter: pollset_kick_own_thread |
| doc: How many times could a polling wakeup be satisfied by keeping the waking |
| thread awake? |
| # stats system |
| - counter: histogram_slow_lookups |
| doc: Number of times histogram increments went through the slow |
| (binary search) path |
| # tcp |
| - counter: syscall_write |
| doc: Number of write syscalls (or equivalent - eg sendmsg) made by this process |
| - counter: syscall_read |
| doc: Number of read syscalls (or equivalent - eg recvmsg) made by this process |
| - histogram: tcp_write_size |
| max: 16777216 # 16 meg max write tracked |
| buckets: 64 |
| doc: Number of bytes offered to each syscall_write |
| - histogram: tcp_write_iov_size |
| max: 1024 |
| buckets: 64 |
| doc: Number of byte segments offered to each syscall_write |
| - histogram: tcp_read_size |
| max: 16777216 |
| buckets: 64 |
| doc: Number of bytes received by each syscall_read |
| - histogram: tcp_read_offer |
| max: 16777216 |
| buckets: 64 |
| doc: Number of bytes offered to each syscall_read |
| - histogram: tcp_read_offer_iov_size |
| max: 1024 |
| buckets: 64 |
| doc: Number of byte segments offered to each syscall_read |
| - counter: tcp_backup_pollers_created |
| doc: Number of times a backup poller has been created (this can be expensive) |
| - counter: tcp_backup_poller_polls |
| doc: Number of polls performed on the backup poller |
| # chttp2 |
| - counter: http2_op_batches |
| doc: Number of batches received by HTTP2 transport |
| - counter: http2_op_cancel |
| doc: Number of cancelations received by HTTP2 transport |
| - counter: http2_op_send_initial_metadata |
| doc: Number of batches containing send initial metadata |
| - counter: http2_op_send_message |
| doc: Number of batches containing send message |
| - counter: http2_op_send_trailing_metadata |
| doc: Number of batches containing send trailing metadata |
| - counter: http2_op_recv_initial_metadata |
| doc: Number of batches containing receive initial metadata |
| - counter: http2_op_recv_message |
| doc: Number of batches containing receive message |
| - counter: http2_op_recv_trailing_metadata |
| doc: Number of batches containing receive trailing metadata |
| - histogram: http2_send_message_size |
| max: 16777216 |
| buckets: 64 |
| doc: Size of messages received by HTTP2 transport |
| - histogram: http2_send_initial_metadata_per_write |
| max: 1024 |
| buckets: 64 |
| doc: Number of streams initiated written per TCP write |
| - histogram: http2_send_message_per_write |
| max: 1024 |
| buckets: 64 |
| doc: Number of streams whose payload was written per TCP write |
| - histogram: http2_send_trailing_metadata_per_write |
| max: 1024 |
| buckets: 64 |
| doc: Number of streams terminated per TCP write |
| - histogram: http2_send_flowctl_per_write |
| max: 1024 |
| buckets: 64 |
| doc: Number of flow control updates written per TCP write |
| - counter: http2_settings_writes |
| doc: Number of settings frames sent |
| - counter: http2_pings_sent |
| doc: Number of HTTP2 pings sent by process |
| - counter: http2_writes_begun |
| doc: Number of HTTP2 writes initiated |
| - counter: http2_writes_offloaded |
| doc: Number of HTTP2 writes offloaded to the executor from application threads |
| - counter: http2_writes_continued |
| doc: Number of HTTP2 writes that finished seeing more data needed to be |
| written |
| - counter: http2_partial_writes |
| doc: Number of HTTP2 writes that were made knowing there was still more data |
| to be written (we cap maximum write size to syscall_write) |
| # combiner locks |
| - counter: combiner_locks_initiated |
| doc: Number of combiner lock entries by process |
| (first items queued to a combiner) |
| - counter: combiner_locks_scheduled_items |
| doc: Number of items scheduled against combiner locks |
| - counter: combiner_locks_scheduled_final_items |
| doc: Number of final items scheduled against combiner locks |
| - counter: combiner_locks_offloaded |
| doc: Number of combiner locks offloaded to different threads |
| # executor |
| - counter: executor_scheduled_short_items |
| doc: Number of finite runtime closures scheduled against the executor |
| (gRPC thread pool) |
| - counter: executor_scheduled_long_items |
| doc: Number of potentially infinite runtime closures scheduled against the |
| executor (gRPC thread pool) |
| - counter: executor_scheduled_to_self |
| doc: Number of closures scheduled by the executor to the executor |
| - counter: executor_wakeup_initiated |
| doc: Number of thread wakeups initiated within the executor |
| - counter: executor_queue_drained |
| doc: Number of times an executor queue was drained |
| - counter: executor_push_retries |
| doc: Number of times we raced and were forced to retry pushing a closure to |
| the executor |
| # server |
| - counter: server_requested_calls |
| doc: How many calls were requested (not necessarily received) by the server |
| - histogram: server_cqs_checked |
| buckets: 8 |
| max: 64 |
| doc: How many completion queues were checked looking for a CQ that had |
| requested the incoming call |
| - counter: server_slowpath_requests_queued |
| doc: How many times was the server slow path taken (indicates too few |
| outstanding requests) |