summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author刘畅 <[email protected]>2023-06-06 08:17:35 +0000
committer刘畅 <[email protected]>2023-06-06 08:17:35 +0000
commit5d64344e2830620cbf9b95d3aa4f535642f1f26e (patch)
tree2d2d9ef67cfabaa5e74f52ab9a318cae4a25d272
parentce2cd7c94ca0e5e7c173fd72cf4c732c66673ee9 (diff)
parent8490d0596b7627095a6739c1b539eebc6c986a3e (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.h3
-rw-r--r--shaping/src/shaper_global_stat.cpp11
-rw-r--r--shaping/src/shaper_session.cpp2
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);