aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/debug/stats_data.yaml
blob: 775b09df7402e689cff127b1bfba67c2080542bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
# 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
- counter: cqs_created
  doc: Number of completion queues created
- counter: client_channels_created
  doc: Number of client channels created
- counter: client_subchannels_created
  doc: Number of client subchannels created
- counter: server_channels_created
  doc: Number of server channels created
# 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
       (only valid for epoll1 right now)
- counter: pollset_kicked_without_poller
  doc: How many times was a polling wakeup requested without an active poller
       (only valid for epoll1 right now)
- counter: pollset_kicked_again
  doc: How many times was the same polling worker awoken repeatedly before
       waking up
       (only valid for epoll1 right now)
- counter: pollset_kick_wakeup_fd
  doc: How many times was an eventfd used as the wakeup vector for a polling
       wakeup
       (only valid for epoll1 right now)
- counter: pollset_kick_wakeup_cv
  doc: How many times was a condition variable used as the wakeup vector for a
       polling wakeup
       (only valid for epoll1 right now)
- counter: pollset_kick_own_thread
  doc: How many times could a polling wakeup be satisfied by keeping the waking
       thread awake?
       (only valid for epoll1 right now)
# polling
- counter: syscall_epoll_ctl
  doc: Number of epoll_ctl calls made (only valid for epollex right now)
- counter: pollset_fd_cache_hits
  doc: Number of epoll_ctl calls skipped because the fd was cached as
       already being added.  (only valid for epollex right now)
# 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)
- counter: http2_initiate_write_due_to_initial_write
  doc: Number of HTTP2 writes initiated due to 'initial_write'
- counter: http2_initiate_write_due_to_start_new_stream
  doc: Number of HTTP2 writes initiated due to 'start_new_stream'
- counter: http2_initiate_write_due_to_send_message
  doc: Number of HTTP2 writes initiated due to 'send_message'
- counter: http2_initiate_write_due_to_send_initial_metadata
  doc: Number of HTTP2 writes initiated due to 'send_initial_metadata'
- counter: http2_initiate_write_due_to_send_trailing_metadata
  doc: Number of HTTP2 writes initiated due to 'send_trailing_metadata'
- counter: http2_initiate_write_due_to_retry_send_ping
  doc: Number of HTTP2 writes initiated due to 'retry_send_ping'
- counter: http2_initiate_write_due_to_continue_pings
  doc: Number of HTTP2 writes initiated due to 'continue_pings'
- counter: http2_initiate_write_due_to_goaway_sent
  doc: Number of HTTP2 writes initiated due to 'goaway_sent'
- counter: http2_initiate_write_due_to_rst_stream
  doc: Number of HTTP2 writes initiated due to 'rst_stream'
- counter: http2_initiate_write_due_to_close_from_api
  doc: Number of HTTP2 writes initiated due to 'close_from_api'
- counter: http2_initiate_write_due_to_stream_flow_control
  doc: Number of HTTP2 writes initiated due to 'stream_flow_control'
- counter: http2_initiate_write_due_to_transport_flow_control
  doc: Number of HTTP2 writes initiated due to 'transport_flow_control'
- counter: http2_initiate_write_due_to_send_settings
  doc: Number of HTTP2 writes initiated due to 'send_settings'
- counter: http2_initiate_write_due_to_bdp_estimator_ping
  doc: Number of HTTP2 writes initiated due to 'bdp_estimator_ping'
- counter: http2_initiate_write_due_to_flow_control_unstalled_by_setting
  doc: Number of HTTP2 writes initiated due to 'flow_control_unstalled_by_setting'
- counter: http2_initiate_write_due_to_flow_control_unstalled_by_update
  doc: Number of HTTP2 writes initiated due to 'flow_control_unstalled_by_update'
- counter: http2_initiate_write_due_to_application_ping
  doc: Number of HTTP2 writes initiated due to 'application_ping'
- counter: http2_initiate_write_due_to_keepalive_ping
  doc: Number of HTTP2 writes initiated due to 'keepalive_ping'
- counter: http2_initiate_write_due_to_transport_flow_control_unstalled
  doc: Number of HTTP2 writes initiated due to 'transport_flow_control_unstalled'
- counter: http2_initiate_write_due_to_ping_response
  doc: Number of HTTP2 writes initiated due to 'ping_response'
- counter: http2_initiate_write_due_to_force_rst_stream
  doc: Number of HTTP2 writes initiated due to 'force_rst_stream'
- counter: http2_spurious_writes_begun
  doc: Number of HTTP2 writes initiated with nothing to write
- counter: hpack_recv_indexed
  doc: Number of HPACK indexed fields received
- counter: hpack_recv_lithdr_incidx
  doc: Number of HPACK literal headers received with incremental indexing
- counter: hpack_recv_lithdr_incidx_v
  doc: Number of HPACK literal headers received with incremental indexing and literal keys
- counter: hpack_recv_lithdr_notidx
  doc: Number of HPACK literal headers received with no indexing
- counter: hpack_recv_lithdr_notidx_v
  doc: Number of HPACK literal headers received with no indexing and literal keys
- counter: hpack_recv_lithdr_nvridx
  doc: Number of HPACK literal headers received with never-indexing
- counter: hpack_recv_lithdr_nvridx_v
  doc: Number of HPACK literal headers received with never-indexing and literal keys
- counter: hpack_recv_uncompressed
  doc: Number of uncompressed strings received in metadata
- counter: hpack_recv_huffman
  doc: Number of huffman encoded strings received in metadata
- counter: hpack_recv_binary
  doc: Number of binary strings received in metadata
- counter: hpack_recv_binary_base64
  doc: Number of binary strings received encoded in base64 in metadata
- counter: hpack_send_indexed
  doc: Number of HPACK indexed fields sent
- counter: hpack_send_lithdr_incidx
  doc: Number of HPACK literal headers sent with incremental indexing
- counter: hpack_send_lithdr_incidx_v
  doc: Number of HPACK literal headers sent with incremental indexing and literal keys
- counter: hpack_send_lithdr_notidx
  doc: Number of HPACK literal headers sent with no indexing
- counter: hpack_send_lithdr_notidx_v
  doc: Number of HPACK literal headers sent with no indexing and literal keys
- counter: hpack_send_lithdr_nvridx
  doc: Number of HPACK literal headers sent with never-indexing
- counter: hpack_send_lithdr_nvridx_v
  doc: Number of HPACK literal headers sent with never-indexing and literal keys
- counter: hpack_send_uncompressed
  doc: Number of uncompressed strings sent in metadata
- counter: hpack_send_huffman
  doc: Number of huffman encoded strings sent in metadata
- counter: hpack_send_binary
  doc: Number of binary strings received in metadata
- counter: hpack_send_binary_base64
  doc: Number of binary strings received encoded in base64 in metadata
# 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
# call combiner locks
- counter: call_combiner_locks_initiated
  doc: Number of call combiner lock entries by process
       (first items queued to a call combiner)
- counter: call_combiner_locks_scheduled_items
  doc: Number of items scheduled against call combiner locks
- counter: call_combiner_set_notify_on_cancel
  doc: Number of times a cancellation callback was set on a call combiner
- counter: call_combiner_cancelled
  doc: Number of times a call combiner was cancelled
# 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)
# cq
- counter: cq_ev_queue_trylock_failures
  doc: Number of lock (trylock) acquisition failures on completion queue event
       queue. High value here indicates high contention on completion queues
- counter: cq_ev_queue_trylock_successes
  doc: Number of lock (trylock) acquisition successes on completion queue event
       queue.
- counter: cq_ev_queue_transient_pop_failures
  doc: Number of times NULL was popped out of completion queue's event queue
       even though the event queue was not empty