blob: a3122bd87123dcb168f5d6c09d1b606ac543cf58 [file] [log] [blame]
Craig Tiller28086682017-07-18 14:22:19 -07001/*
2 * Copyright 2017 gRPC authors.
Craig Tiller640dfe42017-08-30 13:34:49 -07003 *
Craig Tiller28086682017-07-18 14:22:19 -07004 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
Craig Tiller640dfe42017-08-30 13:34:49 -07007 *
Craig Tiller28086682017-07-18 14:22:19 -07008 * http://www.apache.org/licenses/LICENSE-2.0
Craig Tiller640dfe42017-08-30 13:34:49 -07009 *
Craig Tiller28086682017-07-18 14:22:19 -070010 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17/*
18 * Automatically generated by tools/codegen/core/gen_stats_data.py
19 */
20
21#ifndef GRPC_CORE_LIB_DEBUG_STATS_DATA_H
22#define GRPC_CORE_LIB_DEBUG_STATS_DATA_H
23
Craig Tiller640dfe42017-08-30 13:34:49 -070024#include <inttypes.h>
25
Craig Tiller28086682017-07-18 14:22:19 -070026typedef enum {
27 GRPC_STATS_COUNTER_CLIENT_CALLS_CREATED,
28 GRPC_STATS_COUNTER_SERVER_CALLS_CREATED,
Craig Tillerb4bb1cd2017-07-20 14:18:17 -070029 GRPC_STATS_COUNTER_SYSCALL_POLL,
30 GRPC_STATS_COUNTER_SYSCALL_WAIT,
Craig Tiller640dfe42017-08-30 13:34:49 -070031 GRPC_STATS_COUNTER_HISTOGRAM_SLOW_LOOKUPS,
Craig Tiller57bb9a92017-08-31 16:44:15 -070032 GRPC_STATS_COUNTER_SYSCALL_WRITE,
33 GRPC_STATS_COUNTER_SYSCALL_READ,
34 GRPC_STATS_COUNTER_HTTP2_OP_BATCHES,
35 GRPC_STATS_COUNTER_HTTP2_OP_CANCEL,
36 GRPC_STATS_COUNTER_HTTP2_OP_SEND_INITIAL_METADATA,
37 GRPC_STATS_COUNTER_HTTP2_OP_SEND_MESSAGE,
38 GRPC_STATS_COUNTER_HTTP2_OP_SEND_TRAILING_METADATA,
39 GRPC_STATS_COUNTER_HTTP2_OP_RECV_INITIAL_METADATA,
40 GRPC_STATS_COUNTER_HTTP2_OP_RECV_MESSAGE,
41 GRPC_STATS_COUNTER_HTTP2_OP_RECV_TRAILING_METADATA,
42 GRPC_STATS_COUNTER_HTTP2_PINGS_SENT,
43 GRPC_STATS_COUNTER_HTTP2_WRITES_BEGUN,
44 GRPC_STATS_COUNTER_COMBINER_LOCKS_INITIATED,
45 GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_ITEMS,
46 GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS,
47 GRPC_STATS_COUNTER_COMBINER_LOCKS_OFFLOADED,
48 GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_ITEMS,
49 GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_TO_SELF,
50 GRPC_STATS_COUNTER_EXECUTOR_WAKEUP_INITIATED,
51 GRPC_STATS_COUNTER_EXECUTOR_QUEUE_DRAINED,
Craig Tiller28086682017-07-18 14:22:19 -070052 GRPC_STATS_COUNTER_COUNT
53} grpc_stats_counters;
Craig Tiller640dfe42017-08-30 13:34:49 -070054extern const char *grpc_stats_counter_name[GRPC_STATS_COUNTER_COUNT];
Craig Tiller33aeaba2017-07-20 16:02:24 -070055typedef enum {
56 GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE,
Craig Tiller640dfe42017-08-30 13:34:49 -070057 GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE,
Craig Tiller33aeaba2017-07-20 16:02:24 -070058 GRPC_STATS_HISTOGRAM_TCP_READ_SIZE,
Craig Tiller57bb9a92017-08-31 16:44:15 -070059 GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE,
60 GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE,
Craig Tiller33aeaba2017-07-20 16:02:24 -070061 GRPC_STATS_HISTOGRAM_COUNT
62} grpc_stats_histograms;
Craig Tiller640dfe42017-08-30 13:34:49 -070063extern const char *grpc_stats_histogram_name[GRPC_STATS_HISTOGRAM_COUNT];
64typedef enum {
65 GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE_FIRST_SLOT = 0,
66 GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE_BUCKETS = 64,
67 GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE_FIRST_SLOT = 64,
68 GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE_BUCKETS = 64,
69 GRPC_STATS_HISTOGRAM_TCP_READ_SIZE_FIRST_SLOT = 128,
70 GRPC_STATS_HISTOGRAM_TCP_READ_SIZE_BUCKETS = 64,
Craig Tiller57bb9a92017-08-31 16:44:15 -070071 GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE_FIRST_SLOT = 192,
72 GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE_BUCKETS = 64,
73 GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE_FIRST_SLOT = 256,
74 GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE_BUCKETS = 64,
75 GRPC_STATS_HISTOGRAM_BUCKETS = 320
Craig Tiller640dfe42017-08-30 13:34:49 -070076} grpc_stats_histogram_constants;
77#define GRPC_STATS_INC_CLIENT_CALLS_CREATED(exec_ctx) \
78 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_CLIENT_CALLS_CREATED)
79#define GRPC_STATS_INC_SERVER_CALLS_CREATED(exec_ctx) \
80 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SERVER_CALLS_CREATED)
Craig Tiller640dfe42017-08-30 13:34:49 -070081#define GRPC_STATS_INC_SYSCALL_POLL(exec_ctx) \
82 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_POLL)
83#define GRPC_STATS_INC_SYSCALL_WAIT(exec_ctx) \
84 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_WAIT)
85#define GRPC_STATS_INC_HISTOGRAM_SLOW_LOOKUPS(exec_ctx) \
86 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HISTOGRAM_SLOW_LOOKUPS)
Craig Tiller57bb9a92017-08-31 16:44:15 -070087#define GRPC_STATS_INC_SYSCALL_WRITE(exec_ctx) \
88 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_WRITE)
89#define GRPC_STATS_INC_SYSCALL_READ(exec_ctx) \
90 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_READ)
91#define GRPC_STATS_INC_HTTP2_OP_BATCHES(exec_ctx) \
92 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_BATCHES)
93#define GRPC_STATS_INC_HTTP2_OP_CANCEL(exec_ctx) \
94 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_CANCEL)
95#define GRPC_STATS_INC_HTTP2_OP_SEND_INITIAL_METADATA(exec_ctx) \
96 GRPC_STATS_INC_COUNTER((exec_ctx), \
97 GRPC_STATS_COUNTER_HTTP2_OP_SEND_INITIAL_METADATA)
98#define GRPC_STATS_INC_HTTP2_OP_SEND_MESSAGE(exec_ctx) \
99 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_SEND_MESSAGE)
100#define GRPC_STATS_INC_HTTP2_OP_SEND_TRAILING_METADATA(exec_ctx) \
101 GRPC_STATS_INC_COUNTER((exec_ctx), \
102 GRPC_STATS_COUNTER_HTTP2_OP_SEND_TRAILING_METADATA)
103#define GRPC_STATS_INC_HTTP2_OP_RECV_INITIAL_METADATA(exec_ctx) \
104 GRPC_STATS_INC_COUNTER((exec_ctx), \
105 GRPC_STATS_COUNTER_HTTP2_OP_RECV_INITIAL_METADATA)
106#define GRPC_STATS_INC_HTTP2_OP_RECV_MESSAGE(exec_ctx) \
107 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_RECV_MESSAGE)
108#define GRPC_STATS_INC_HTTP2_OP_RECV_TRAILING_METADATA(exec_ctx) \
109 GRPC_STATS_INC_COUNTER((exec_ctx), \
110 GRPC_STATS_COUNTER_HTTP2_OP_RECV_TRAILING_METADATA)
111#define GRPC_STATS_INC_HTTP2_PINGS_SENT(exec_ctx) \
112 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_PINGS_SENT)
113#define GRPC_STATS_INC_HTTP2_WRITES_BEGUN(exec_ctx) \
114 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_WRITES_BEGUN)
115#define GRPC_STATS_INC_COMBINER_LOCKS_INITIATED(exec_ctx) \
116 GRPC_STATS_INC_COUNTER((exec_ctx), \
117 GRPC_STATS_COUNTER_COMBINER_LOCKS_INITIATED)
118#define GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_ITEMS(exec_ctx) \
119 GRPC_STATS_INC_COUNTER((exec_ctx), \
120 GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_ITEMS)
121#define GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS(exec_ctx) \
122 GRPC_STATS_INC_COUNTER( \
123 (exec_ctx), GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS)
124#define GRPC_STATS_INC_COMBINER_LOCKS_OFFLOADED(exec_ctx) \
125 GRPC_STATS_INC_COUNTER((exec_ctx), \
126 GRPC_STATS_COUNTER_COMBINER_LOCKS_OFFLOADED)
127#define GRPC_STATS_INC_EXECUTOR_SCHEDULED_ITEMS(exec_ctx) \
128 GRPC_STATS_INC_COUNTER((exec_ctx), \
129 GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_ITEMS)
130#define GRPC_STATS_INC_EXECUTOR_SCHEDULED_TO_SELF(exec_ctx) \
131 GRPC_STATS_INC_COUNTER((exec_ctx), \
132 GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_TO_SELF)
133#define GRPC_STATS_INC_EXECUTOR_WAKEUP_INITIATED(exec_ctx) \
134 GRPC_STATS_INC_COUNTER((exec_ctx), \
135 GRPC_STATS_COUNTER_EXECUTOR_WAKEUP_INITIATED)
136#define GRPC_STATS_INC_EXECUTOR_QUEUE_DRAINED(exec_ctx) \
137 GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_EXECUTOR_QUEUE_DRAINED)
Craig Tiller640dfe42017-08-30 13:34:49 -0700138#define GRPC_STATS_INC_TCP_WRITE_SIZE(exec_ctx, value) \
139 do { \
Craig Tiller5489d412017-08-31 12:20:04 -0700140 union { \
141 double dbl; \
142 uint64_t uint; \
143 } _val; \
144 _val.dbl = (double)(value); \
145 if (_val.dbl < 0) _val.dbl = 0; \
146 if (_val.dbl < 5.000000) { \
Craig Tiller640dfe42017-08-30 13:34:49 -0700147 GRPC_STATS_INC_HISTOGRAM( \
Craig Tiller5489d412017-08-31 12:20:04 -0700148 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, (int)_val.dbl); \
Craig Tiller640dfe42017-08-30 13:34:49 -0700149 } else { \
Craig Tiller5489d412017-08-31 12:20:04 -0700150 if (_val.uint < 4715268809856909312ull) { \
Craig Tiller640dfe42017-08-30 13:34:49 -0700151 GRPC_STATS_INC_HISTOGRAM( \
152 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, \
Craig Tiller5489d412017-08-31 12:20:04 -0700153 grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)]); \
Craig Tiller640dfe42017-08-30 13:34:49 -0700154 } else { \
155 GRPC_STATS_INC_HISTOGRAM( \
156 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, \
Craig Tiller5489d412017-08-31 12:20:04 -0700157 grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
Craig Tiller640dfe42017-08-30 13:34:49 -0700158 grpc_stats_table_0, 64)); \
159 } \
160 } \
161 } while (false)
162#define GRPC_STATS_INC_TCP_WRITE_IOV_SIZE(exec_ctx, value) \
163 do { \
Craig Tiller5489d412017-08-31 12:20:04 -0700164 union { \
165 double dbl; \
166 uint64_t uint; \
167 } _val; \
168 _val.dbl = (double)(value); \
169 if (_val.dbl < 0) _val.dbl = 0; \
170 if (_val.dbl < 12.000000) { \
171 GRPC_STATS_INC_HISTOGRAM( \
172 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, (int)_val.dbl); \
Craig Tiller640dfe42017-08-30 13:34:49 -0700173 } else { \
Craig Tiller5489d412017-08-31 12:20:04 -0700174 if (_val.uint < 4652218415073722368ull) { \
Craig Tiller640dfe42017-08-30 13:34:49 -0700175 GRPC_STATS_INC_HISTOGRAM( \
176 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, \
Craig Tiller5489d412017-08-31 12:20:04 -0700177 grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 49)]); \
Craig Tiller640dfe42017-08-30 13:34:49 -0700178 } else { \
179 GRPC_STATS_INC_HISTOGRAM( \
180 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, \
Craig Tiller5489d412017-08-31 12:20:04 -0700181 grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
Craig Tiller640dfe42017-08-30 13:34:49 -0700182 grpc_stats_table_2, 64)); \
183 } \
184 } \
185 } while (false)
186#define GRPC_STATS_INC_TCP_READ_SIZE(exec_ctx, value) \
187 do { \
Craig Tiller5489d412017-08-31 12:20:04 -0700188 union { \
189 double dbl; \
190 uint64_t uint; \
191 } _val; \
192 _val.dbl = (double)(value); \
193 if (_val.dbl < 0) _val.dbl = 0; \
194 if (_val.dbl < 5.000000) { \
Craig Tiller640dfe42017-08-30 13:34:49 -0700195 GRPC_STATS_INC_HISTOGRAM((exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, \
Craig Tiller5489d412017-08-31 12:20:04 -0700196 (int)_val.dbl); \
Craig Tiller640dfe42017-08-30 13:34:49 -0700197 } else { \
Craig Tiller5489d412017-08-31 12:20:04 -0700198 if (_val.uint < 4715268809856909312ull) { \
Craig Tiller640dfe42017-08-30 13:34:49 -0700199 GRPC_STATS_INC_HISTOGRAM( \
200 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, \
Craig Tiller5489d412017-08-31 12:20:04 -0700201 grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)]); \
Craig Tiller640dfe42017-08-30 13:34:49 -0700202 } else { \
203 GRPC_STATS_INC_HISTOGRAM( \
204 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, \
Craig Tiller5489d412017-08-31 12:20:04 -0700205 grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
Craig Tiller640dfe42017-08-30 13:34:49 -0700206 grpc_stats_table_0, 64)); \
207 } \
208 } \
209 } while (false)
Craig Tiller57bb9a92017-08-31 16:44:15 -0700210#define GRPC_STATS_INC_TCP_READ_IOV_SIZE(exec_ctx, value) \
211 do { \
212 union { \
213 double dbl; \
214 uint64_t uint; \
215 } _val; \
216 _val.dbl = (double)(value); \
217 if (_val.dbl < 0) _val.dbl = 0; \
218 if (_val.dbl < 12.000000) { \
219 GRPC_STATS_INC_HISTOGRAM( \
220 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, (int)_val.dbl); \
221 } else { \
222 if (_val.uint < 4652218415073722368ull) { \
223 GRPC_STATS_INC_HISTOGRAM( \
224 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, \
225 grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 49)]); \
226 } else { \
227 GRPC_STATS_INC_HISTOGRAM( \
228 (exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, \
229 grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
230 grpc_stats_table_2, 64)); \
231 } \
232 } \
233 } while (false)
234#define GRPC_STATS_INC_HTTP2_SEND_MESSAGE_SIZE(exec_ctx, value) \
235 do { \
236 union { \
237 double dbl; \
238 uint64_t uint; \
239 } _val; \
240 _val.dbl = (double)(value); \
241 if (_val.dbl < 0) _val.dbl = 0; \
242 if (_val.dbl < 5.000000) { \
243 GRPC_STATS_INC_HISTOGRAM((exec_ctx), \
244 GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, \
245 (int)_val.dbl); \
246 } else { \
247 if (_val.uint < 4715268809856909312ull) { \
248 GRPC_STATS_INC_HISTOGRAM( \
249 (exec_ctx), GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, \
250 grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)]); \
251 } else { \
252 GRPC_STATS_INC_HISTOGRAM( \
253 (exec_ctx), GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, \
254 grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
255 grpc_stats_table_0, 64)); \
256 } \
257 } \
258 } while (false)
Craig Tiller640dfe42017-08-30 13:34:49 -0700259extern const double grpc_stats_table_0[64];
260extern const uint8_t grpc_stats_table_1[87];
261extern const double grpc_stats_table_2[64];
262extern const uint8_t grpc_stats_table_3[52];
Craig Tiller57bb9a92017-08-31 16:44:15 -0700263extern const int grpc_stats_histo_buckets[5];
264extern const int grpc_stats_histo_start[5];
265extern const double *const grpc_stats_histo_bucket_boundaries[5];
Craig Tiller28086682017-07-18 14:22:19 -0700266
267#endif /* GRPC_CORE_LIB_DEBUG_STATS_DATA_H */