|
|
|
@ -26,11 +26,29 @@ |
|
|
|
|
typedef enum { |
|
|
|
|
GRPC_STATS_COUNTER_CLIENT_CALLS_CREATED, |
|
|
|
|
GRPC_STATS_COUNTER_SERVER_CALLS_CREATED, |
|
|
|
|
GRPC_STATS_COUNTER_SYSCALL_WRITE, |
|
|
|
|
GRPC_STATS_COUNTER_SYSCALL_READ, |
|
|
|
|
GRPC_STATS_COUNTER_SYSCALL_POLL, |
|
|
|
|
GRPC_STATS_COUNTER_SYSCALL_WAIT, |
|
|
|
|
GRPC_STATS_COUNTER_HISTOGRAM_SLOW_LOOKUPS, |
|
|
|
|
GRPC_STATS_COUNTER_SYSCALL_WRITE, |
|
|
|
|
GRPC_STATS_COUNTER_SYSCALL_READ, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_BATCHES, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_CANCEL, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_SEND_INITIAL_METADATA, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_SEND_MESSAGE, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_SEND_TRAILING_METADATA, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_RECV_INITIAL_METADATA, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_RECV_MESSAGE, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_RECV_TRAILING_METADATA, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_PINGS_SENT, |
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_WRITES_BEGUN, |
|
|
|
|
GRPC_STATS_COUNTER_COMBINER_LOCKS_INITIATED, |
|
|
|
|
GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_ITEMS, |
|
|
|
|
GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS, |
|
|
|
|
GRPC_STATS_COUNTER_COMBINER_LOCKS_OFFLOADED, |
|
|
|
|
GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_ITEMS, |
|
|
|
|
GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_TO_SELF, |
|
|
|
|
GRPC_STATS_COUNTER_EXECUTOR_WAKEUP_INITIATED, |
|
|
|
|
GRPC_STATS_COUNTER_EXECUTOR_QUEUE_DRAINED, |
|
|
|
|
GRPC_STATS_COUNTER_COUNT |
|
|
|
|
} grpc_stats_counters; |
|
|
|
|
extern const char *grpc_stats_counter_name[GRPC_STATS_COUNTER_COUNT]; |
|
|
|
@ -38,6 +56,8 @@ typedef enum { |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_WRITE_SIZE, |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE, |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_READ_SIZE, |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, |
|
|
|
|
GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, |
|
|
|
|
GRPC_STATS_HISTOGRAM_COUNT |
|
|
|
|
} grpc_stats_histograms; |
|
|
|
|
extern const char *grpc_stats_histogram_name[GRPC_STATS_HISTOGRAM_COUNT]; |
|
|
|
@ -48,22 +68,73 @@ typedef enum { |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_WRITE_IOV_SIZE_BUCKETS = 64, |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_READ_SIZE_FIRST_SLOT = 128, |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_READ_SIZE_BUCKETS = 64, |
|
|
|
|
GRPC_STATS_HISTOGRAM_BUCKETS = 192 |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE_FIRST_SLOT = 192, |
|
|
|
|
GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE_BUCKETS = 64, |
|
|
|
|
GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE_FIRST_SLOT = 256, |
|
|
|
|
GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE_BUCKETS = 64, |
|
|
|
|
GRPC_STATS_HISTOGRAM_BUCKETS = 320 |
|
|
|
|
} grpc_stats_histogram_constants; |
|
|
|
|
#define GRPC_STATS_INC_CLIENT_CALLS_CREATED(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_CLIENT_CALLS_CREATED) |
|
|
|
|
#define GRPC_STATS_INC_SERVER_CALLS_CREATED(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SERVER_CALLS_CREATED) |
|
|
|
|
#define GRPC_STATS_INC_SYSCALL_WRITE(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_WRITE) |
|
|
|
|
#define GRPC_STATS_INC_SYSCALL_READ(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_READ) |
|
|
|
|
#define GRPC_STATS_INC_SYSCALL_POLL(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_POLL) |
|
|
|
|
#define GRPC_STATS_INC_SYSCALL_WAIT(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_WAIT) |
|
|
|
|
#define GRPC_STATS_INC_HISTOGRAM_SLOW_LOOKUPS(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HISTOGRAM_SLOW_LOOKUPS) |
|
|
|
|
#define GRPC_STATS_INC_SYSCALL_WRITE(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_WRITE) |
|
|
|
|
#define GRPC_STATS_INC_SYSCALL_READ(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_SYSCALL_READ) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_BATCHES(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_BATCHES) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_CANCEL(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_CANCEL) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_SEND_INITIAL_METADATA(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_SEND_INITIAL_METADATA) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_SEND_MESSAGE(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_SEND_MESSAGE) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_SEND_TRAILING_METADATA(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_SEND_TRAILING_METADATA) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_RECV_INITIAL_METADATA(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_RECV_INITIAL_METADATA) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_RECV_MESSAGE(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_OP_RECV_MESSAGE) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_OP_RECV_TRAILING_METADATA(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_HTTP2_OP_RECV_TRAILING_METADATA) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_PINGS_SENT(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_PINGS_SENT) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_WRITES_BEGUN(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_HTTP2_WRITES_BEGUN) |
|
|
|
|
#define GRPC_STATS_INC_COMBINER_LOCKS_INITIATED(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_COMBINER_LOCKS_INITIATED) |
|
|
|
|
#define GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_ITEMS(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_ITEMS) |
|
|
|
|
#define GRPC_STATS_INC_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_COUNTER_COMBINER_LOCKS_SCHEDULED_FINAL_ITEMS) |
|
|
|
|
#define GRPC_STATS_INC_COMBINER_LOCKS_OFFLOADED(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_COMBINER_LOCKS_OFFLOADED) |
|
|
|
|
#define GRPC_STATS_INC_EXECUTOR_SCHEDULED_ITEMS(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_ITEMS) |
|
|
|
|
#define GRPC_STATS_INC_EXECUTOR_SCHEDULED_TO_SELF(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_EXECUTOR_SCHEDULED_TO_SELF) |
|
|
|
|
#define GRPC_STATS_INC_EXECUTOR_WAKEUP_INITIATED(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), \
|
|
|
|
|
GRPC_STATS_COUNTER_EXECUTOR_WAKEUP_INITIATED) |
|
|
|
|
#define GRPC_STATS_INC_EXECUTOR_QUEUE_DRAINED(exec_ctx) \ |
|
|
|
|
GRPC_STATS_INC_COUNTER((exec_ctx), GRPC_STATS_COUNTER_EXECUTOR_QUEUE_DRAINED) |
|
|
|
|
#define GRPC_STATS_INC_TCP_WRITE_SIZE(exec_ctx, value) \ |
|
|
|
|
do { \
|
|
|
|
|
union { \
|
|
|
|
@ -136,12 +207,61 @@ typedef enum { |
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
} while (false) |
|
|
|
|
#define GRPC_STATS_INC_TCP_READ_IOV_SIZE(exec_ctx, value) \ |
|
|
|
|
do { \
|
|
|
|
|
union { \
|
|
|
|
|
double dbl; \
|
|
|
|
|
uint64_t uint; \
|
|
|
|
|
} _val; \
|
|
|
|
|
_val.dbl = (double)(value); \
|
|
|
|
|
if (_val.dbl < 0) _val.dbl = 0; \
|
|
|
|
|
if (_val.dbl < 12.000000) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, (int)_val.dbl); \
|
|
|
|
|
} else { \
|
|
|
|
|
if (_val.uint < 4652218415073722368ull) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, \
|
|
|
|
|
grpc_stats_table_3[((_val.uint - 4622945017495814144ull) >> 49)]); \
|
|
|
|
|
} else { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_TCP_READ_IOV_SIZE, \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
|
|
|
|
|
grpc_stats_table_2, 64)); \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
} while (false) |
|
|
|
|
#define GRPC_STATS_INC_HTTP2_SEND_MESSAGE_SIZE(exec_ctx, value) \ |
|
|
|
|
do { \
|
|
|
|
|
union { \
|
|
|
|
|
double dbl; \
|
|
|
|
|
uint64_t uint; \
|
|
|
|
|
} _val; \
|
|
|
|
|
_val.dbl = (double)(value); \
|
|
|
|
|
if (_val.dbl < 0) _val.dbl = 0; \
|
|
|
|
|
if (_val.dbl < 5.000000) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM((exec_ctx), \
|
|
|
|
|
GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, \
|
|
|
|
|
(int)_val.dbl); \
|
|
|
|
|
} else { \
|
|
|
|
|
if (_val.uint < 4715268809856909312ull) { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, \
|
|
|
|
|
grpc_stats_table_1[((_val.uint - 4617315517961601024ull) >> 50)]); \
|
|
|
|
|
} else { \
|
|
|
|
|
GRPC_STATS_INC_HISTOGRAM( \
|
|
|
|
|
(exec_ctx), GRPC_STATS_HISTOGRAM_HTTP2_SEND_MESSAGE_SIZE, \
|
|
|
|
|
grpc_stats_histo_find_bucket_slow((exec_ctx), _val.dbl, \
|
|
|
|
|
grpc_stats_table_0, 64)); \
|
|
|
|
|
} \
|
|
|
|
|
} \
|
|
|
|
|
} while (false) |
|
|
|
|
extern const double grpc_stats_table_0[64]; |
|
|
|
|
extern const uint8_t grpc_stats_table_1[87]; |
|
|
|
|
extern const double grpc_stats_table_2[64]; |
|
|
|
|
extern const uint8_t grpc_stats_table_3[52]; |
|
|
|
|
extern const int grpc_stats_histo_buckets[3]; |
|
|
|
|
extern const int grpc_stats_histo_start[3]; |
|
|
|
|
extern const double *const grpc_stats_histo_bucket_boundaries[3]; |
|
|
|
|
extern const int grpc_stats_histo_buckets[5]; |
|
|
|
|
extern const int grpc_stats_histo_start[5]; |
|
|
|
|
extern const double *const grpc_stats_histo_bucket_boundaries[5]; |
|
|
|
|
|
|
|
|
|
#endif /* GRPC_CORE_LIB_DEBUG_STATS_DATA_H */ |
|
|
|
|