diff options
| author | liuchang <[email protected]> | 2023-05-29 10:16:32 +0000 |
|---|---|---|
| committer | liuchang <[email protected]> | 2023-05-29 10:16:32 +0000 |
| commit | 66ea2254660e40f055668cfe1f8df3dc24e60475 (patch) | |
| tree | e64a953738cc44836c46166c280c4d08971d9a28 /shaping/include/shaper_global_stat.h | |
| parent | 57efeb63d5769c9f1b92b1266780968ad1c30d78 (diff) | |
add async statistics for global metric
Diffstat (limited to 'shaping/include/shaper_global_stat.h')
| -rw-r--r-- | shaping/include/shaper_global_stat.h | 97 |
1 files changed, 76 insertions, 21 deletions
diff --git a/shaping/include/shaper_global_stat.h b/shaping/include/shaper_global_stat.h index 60e7e8c..4ab6a2b 100644 --- a/shaping/include/shaper_global_stat.h +++ b/shaping/include/shaper_global_stat.h @@ -1,50 +1,105 @@ #include <fieldstat.h> enum shaping_global_stat_dir { - SHAPING_GLOBAL_STAT_RX, + SHAPING_GLOBAL_STAT_RX = 0, SHAPING_GLOBAL_STAT_TX }; enum shaping_global_stat_column_index { - RX_PKTS_IDX = 0, + CURR_SESSION_NUM_IDX = 0, + QUEUEING_PKTS_IDX, + QUEUEING_BYTES_IDX, + + CTRL_ERR_IDX, + CTRL_OPENING_IDX, + CTRL_ACTIVE_IDX, + CTRL_CLOSE_IDX, + CTRL_RESETALL_IDX, + SESSION_LOG_SEND_IDX, + + ASYNC_INVOKE_IDX, + ASYNC_CALLBACK_IDX, + ASYNC_TCONSUME_FAILED, + ASYNC_HINCRBY_FAILED, + ASYNC_HMGET_FAILED, + + RX_PKTS_IDX, RX_BYTES_IDX, TX_PKTS_IDX, TX_BYTES_IDX, - QUEUEING_PKTS_IDX, - QUEUEING_BYTES_IDX, DROP_PKTS_IDX, DROP_BYTES_IDX, - HIT_POLICY_PKTS, - HIT_POLICY_BYTES, - CTRL_PKTS_IDX, - CTRL_OPENING_PKTS_IDX, - CTRL_ACTIVE_PKTS_IDX, - CTRL_CLOSE_PKTS_IDX, - CTRL_RESETALL_PKTS_IDX, - CURR_SESSION_NUM_IDX, - SESSION_LOG_SEND_NUM, + + HIT_POLICY_RX_PKTS_IDX, + HIT_POLICY_RX_BYTES_IDX, + HIT_POLICY_TX_PKTS_IDX, + HIT_POLICY_TX_BYTES_IDX, + HIT_POLICY_DROP_PKTS_IDX, + HIT_POLICY_DROP_BYTES_IDX, + GLOBAL_STAT_COLUNM_IDX_MAX }; +struct shaping_global_stat_traffic_data { + long long rx_pkts; + long long rx_bytes; + long long tx_pkts; + long long tx_bytes; + long long drop_pkts; + long long drop_bytes; +}; + +struct shaping_global_stat_data { + long long curr_session_num; + long long queueing_pkts; + long long queueing_bytes; + long long ctrl_error; + long long ctrl_opening; + long long ctrl_active; + long long ctrl_close; + long long ctrl_resetall; + long long session_log_send; + long long async_invoke; + long long async_callback; + long long async_tconsume_failed; + long long async_hincrby_failed; + long long async_hmget_failed; + struct shaping_global_stat_traffic_data all_traffic; + struct shaping_global_stat_traffic_data hit_policy_traffic; +}; + struct shaping_global_stat { struct fieldstat_instance *instance; - int table_id; int column_ids[GLOBAL_STAT_COLUNM_IDX_MAX]; + struct shaping_global_stat_data local_stat_data; + int output_interval_s; }; struct shaping_global_stat* shaper_global_stat_init(); void shaper_global_stat_destroy(struct shaping_global_stat *stat); -void shaper_global_stat_throughput_inc(struct shaping_global_stat *stat, enum shaping_global_stat_dir dir, int pkt_len); -void shaper_global_stat_drop_inc(struct shaping_global_stat *stat, int pkt_len); +void shaper_global_stat_curr_session_inc(struct shaping_global_stat *stat); +void shaper_global_stat_curr_session_dec(struct shaping_global_stat *stat); void shaper_global_stat_queueing_inc(struct shaping_global_stat *stat, int pkt_len); void shaper_global_stat_queueing_dec(struct shaping_global_stat *stat, int pkt_len); -void shaper_global_stat_hit_policy_inc(struct shaping_global_stat *stat, int pkt_len); -void shaper_global_stat_ctrlpkt_inc(struct shaping_global_stat *stat); + +void shaper_global_stat_ctrlpkt_err_inc(struct shaping_global_stat *stat); void shaper_global_stat_ctrlpkt_opening_inc(struct shaping_global_stat *stat); void shaper_global_stat_ctrlpkt_active_inc(struct shaping_global_stat *stat); void shaper_global_stat_ctrlpkt_close_inc(struct shaping_global_stat *stat); void shaper_global_stat_ctrlpkt_resetall_inc(struct shaping_global_stat *stat); -void shaper_global_stat_curr_session_inc(struct shaping_global_stat *stat); -void shaper_global_stat_curr_session_dec(struct shaping_global_stat *stat); -void shaper_global_stat_session_log_send_num_inc(struct shaping_global_stat *stat);
\ No newline at end of file +void shaper_global_stat_session_log_send_num_inc(struct shaping_global_stat *stat); + +void shaper_global_stat_async_invoke_inc(struct shaping_global_stat *stat); +void shaper_global_stat_async_callback_inc(struct shaping_global_stat *stat); +void shaper_global_stat_async_tconsume_failed_inc(struct shaping_global_stat *stat); +void shaper_global_stat_async_hincrby_failed_inc(struct shaping_global_stat *stat); +void shaper_global_stat_async_hmget_failed_inc(struct shaping_global_stat *stat); + +void shaper_global_stat_throughput_inc(struct shaping_global_stat *stat, enum shaping_global_stat_dir dir, int pkt_len); +void shaper_global_stat_drop_inc(struct shaping_global_stat *stat, int pkt_len); + +void shaper_global_stat_hit_policy_throughput_inc(struct shaping_global_stat *stat, enum shaping_global_stat_dir dir, int pkt_len); +void shaper_global_stat_hit_policy_drop_inc(struct shaping_global_stat *stat, int pkt_len); + +void shaper_global_stat_refresh(struct shaping_global_stat *stat);
\ No newline at end of file |
