summaryrefslogtreecommitdiff
path: root/shaping/include/shaper_global_stat.h
blob: 78ef41fb3a6a27fc35b7066e6f66a388bca11f64 (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
#include <fieldstat.h>

enum shaping_global_stat_dir {
    SHAPING_GLOBAL_STAT_RX = 0,
    SHAPING_GLOBAL_STAT_TX
};

enum shaping_global_stat_column_index {
    CURR_SESSION_NUM_IDX = 0,
    QUEUEING_PKTS_IDX,
    QUEUEING_BYTES_IDX,

    CTRL_ERR_IDX,
    CTRL_OPENING_IDX,
    CTRL_ACTIVE_IDX,
    CTRL_CLOSE_IDX,
    CTRL_ACTIVE_CLOSE_IDX,
    CTRL_RESETALL_IDX,
    SESSION_LOG_SEND_IDX,

    ASYNC_INVOKE_IDX,
    ASYNC_CALLBACK_IDX,
    ASYNC_TCONSUME_INVOKE_IDX,
    ASYNC_TCONSUME_CALLBACK_IDX,
    ASYNC_HINCRBY_INVOKE_IDX,
    ASYNC_HINCRBY_CALLBACK_IDX,
    ASYNC_HMGET_INVOKE_IDX,
    ASYNC_HMGET_CALLBACK_IDX,
    ASYNC_TCONSUME_FAILED,
    ASYNC_HINCRBY_FAILED,
    ASYNC_HMGET_FAILED,

    RX_PKTS_IDX,
    RX_BYTES_IDX,
    TX_PKTS_IDX,
    TX_BYTES_IDX,
    DROP_PKTS_IDX,
    DROP_BYTES_IDX,

    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_active_close;
    long long ctrl_resetall;
    long long session_log_send;
    long long async_invoke;
    long long async_callback;
    long long async_tconsume_invoke;
    long long async_tconsume_callback;
    long long async_hincrby_invoke;
    long long async_hincrby_callback;
    long long async_hmget_invoke;
    long long async_hmget_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 column_ids[GLOBAL_STAT_COLUNM_IDX_MAX];
    int swarmkv_latency_summary_id;
    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_swarmkv_latency_update(struct shaping_global_stat *stat, long long latency_us);

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);
long long shaper_global_stat_queueing_pkts_get(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_active_close_inc(struct shaping_global_stat *stat);
void shaper_global_stat_ctrlpkt_resetall_inc(struct shaping_global_stat *stat);
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 sheper_global_stat_tconsume_invoke_inc(struct shaping_global_stat *stat);
void shaper_global_stat_tconsume_callback_inc(struct shaping_global_stat *stat);
void shaper_global_stat_hincrby_invoke_inc(struct shaping_global_stat *stat);
void shaper_global_stat_hincrby_callback_inc(struct shaping_global_stat *stat);
void shaper_global_stat_hmget_invoke_inc(struct shaping_global_stat *stat);
void shaper_global_stat_hmget_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);