#ifndef _GLOBAL_METRICS_H #define _GLOBAL_METRICS_H #ifdef __cpluscplus extern "C" { #endif #include "utils.h" #include struct global_metrics_config { char output_file[256]; char statsd_server[32]; int statsd_port; int statsd_format; int statsd_cycle; int prometheus_listen_port; char prometheus_listen_url[256]; }; struct global_metrics { struct throughput_metrics dev_endpoint_rx; // 累计值 struct throughput_metrics dev_endpoint_tx; // 累计值 struct throughput_metrics dev_endpoint_err_drop; // 累计值 struct throughput_metrics raw_pkt_rx; // 累计值 struct throughput_metrics raw_pkt_tx; // 累计值 struct throughput_metrics raw_pkt_err_bypass; // 累计值 struct throughput_metrics hit_block_policy; // 累计值 struct throughput_metrics hit_bypass_policy; // 累计值 struct throughput_metrics steering_tx; // 累计值 struct throughput_metrics steering_rx; // 累计值 struct throughput_metrics mirroring_tx; // 累计值 struct throughput_metrics mirroring_rx_drop; // 累计值 struct throughput_metrics downlink_keepalive_pkt_rx; // 累计值 struct throughput_metrics uplink_keepalive_pkt_rx; // 累计值 struct throughput_metrics ctrl_pkt_rx; // 累计值 uint64_t ctrl_pkt_opening_num; // 累计值 uint64_t ctrl_pkt_active_num; // 累计值 uint64_t ctrl_pkt_closing_num; // 累计值 uint64_t ctrl_pkt_resetall_num; // 累计值 uint64_t ctrl_pkt_error_num; // 累计值 uint64_t sf_active_times; // 累计值 uint64_t sf_inactive_times; // 累计值 uint64_t sf_mac_exist_times; // 累计值 uint64_t sf_mac_noexist_times; // 累计值 uint64_t session_nums; // 瞬时值 struct global_metrics_config config; screen_stat_handle_t fs_handle; int fs_id[128]; }; struct global_metrics *global_metrics_create(const char *profile); void global_metrics_destory(struct global_metrics *metrics); void global_metrics_dump(struct global_metrics *metrics); #ifdef __cpluscplus } #endif #endif