diff options
| author | 刘畅 <[email protected]> | 2023-06-06 08:17:35 +0000 |
|---|---|---|
| committer | 刘畅 <[email protected]> | 2023-06-06 08:17:35 +0000 |
| commit | 5d64344e2830620cbf9b95d3aa4f535642f1f26e (patch) | |
| tree | 2d2d9ef67cfabaa5e74f52ab9a318cae4a25d272 | |
| parent | ce2cd7c94ca0e5e7c173fd72cf4c732c66673ee9 (diff) | |
| parent | 8490d0596b7627095a6739c1b539eebc6c986a3e (diff) | |
Merge branch 'add_global_metric_active_close' into 'rel'v1.2.2
add active_close metric
See merge request tango/shaping-engine!27
| -rw-r--r-- | shaping/include/shaper_global_stat.h | 3 | ||||
| -rw-r--r-- | shaping/src/shaper_global_stat.cpp | 11 | ||||
| -rw-r--r-- | shaping/src/shaper_session.cpp | 2 |
3 files changed, 16 insertions, 0 deletions
diff --git a/shaping/include/shaper_global_stat.h b/shaping/include/shaper_global_stat.h index 4ab6a2b..47f89c5 100644 --- a/shaping/include/shaper_global_stat.h +++ b/shaping/include/shaper_global_stat.h @@ -14,6 +14,7 @@ enum shaping_global_stat_column_index { CTRL_OPENING_IDX, CTRL_ACTIVE_IDX, CTRL_CLOSE_IDX, + CTRL_ACTIVE_CLOSE_IDX, CTRL_RESETALL_IDX, SESSION_LOG_SEND_IDX, @@ -57,6 +58,7 @@ struct shaping_global_stat_data { 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; @@ -87,6 +89,7 @@ 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); diff --git a/shaping/src/shaper_global_stat.cpp b/shaping/src/shaper_global_stat.cpp index 11f44e1..71cbc56 100644 --- a/shaping/src/shaper_global_stat.cpp +++ b/shaping/src/shaper_global_stat.cpp @@ -30,6 +30,7 @@ static void shaper_global_stat_fieldstat_reg(struct shaping_global_stat *stat) stat->column_ids[CTRL_OPENING_IDX] = fieldstat_register(stat->instance, FIELD_TYPE_COUNTER, "ctrl_opening", NULL, 0); stat->column_ids[CTRL_ACTIVE_IDX] = fieldstat_register(stat->instance, FIELD_TYPE_COUNTER, "ctrl_active", NULL, 0); stat->column_ids[CTRL_CLOSE_IDX] = fieldstat_register(stat->instance, FIELD_TYPE_COUNTER, "ctrl_close", NULL, 0); + stat->column_ids[CTRL_ACTIVE_CLOSE_IDX] = fieldstat_register(stat->instance, FIELD_TYPE_COUNTER, "ctrl_active_close", NULL, 0); stat->column_ids[CTRL_RESETALL_IDX] = fieldstat_register(stat->instance, FIELD_TYPE_COUNTER, "ctrl_resetall", NULL, 0); stat->column_ids[SESSION_LOG_SEND_IDX] = fieldstat_register(stat->instance, FIELD_TYPE_COUNTER, "session_log_send", NULL, 0); @@ -195,6 +196,15 @@ void shaper_global_stat_ctrlpkt_close_inc(struct shaping_global_stat *stat) return; } +void shaper_global_stat_ctrlpkt_active_close_inc(struct shaping_global_stat *stat) +{ + struct shaping_global_stat_data *local_stat_data = &stat->local_stat_data; + + __atomic_add_fetch(&local_stat_data->ctrl_active_close, 1, __ATOMIC_RELAXED); + + return; +} + void shaper_global_stat_ctrlpkt_resetall_inc(struct shaping_global_stat *stat) { struct shaping_global_stat_data *local_stat_data = &stat->local_stat_data; @@ -321,6 +331,7 @@ void shaper_global_stat_refresh(struct shaping_global_stat *stat) fieldstat_value_set(stat->instance, stat->column_ids[CTRL_OPENING_IDX], local_stat_data->ctrl_opening); fieldstat_value_set(stat->instance, stat->column_ids[CTRL_ACTIVE_IDX], local_stat_data->ctrl_active); fieldstat_value_set(stat->instance, stat->column_ids[CTRL_CLOSE_IDX], local_stat_data->ctrl_close); + fieldstat_value_set(stat->instance, stat->column_ids[CTRL_ACTIVE_CLOSE_IDX], local_stat_data->ctrl_active_close); fieldstat_value_set(stat->instance, stat->column_ids[CTRL_RESETALL_IDX], local_stat_data->ctrl_resetall); fieldstat_value_set(stat->instance, stat->column_ids[SESSION_LOG_SEND_IDX], local_stat_data->session_log_send); diff --git a/shaping/src/shaper_session.cpp b/shaping/src/shaper_session.cpp index 3c5c2db..685b41a 100644 --- a/shaping/src/shaper_session.cpp +++ b/shaping/src/shaper_session.cpp @@ -179,6 +179,8 @@ struct shaping_flow* shaper_session_close(struct shaping_thread_ctx *ctx, struct sf = (struct shaping_flow *)session_node->val_data; sf->flag |= SESSION_CLOSE; + shaper_global_stat_ctrlpkt_active_close_inc(ctx->global_stat); + session_table_delete_by_id(ctx->session_table, meta->session_id); shaper_global_stat_curr_session_dec(ctx->global_stat); |
