diff --git a/platform/include/global_metrics.h b/platform/include/global_metrics.h index 2023e97..01a50b5 100644 --- a/platform/include/global_metrics.h +++ b/platform/include/global_metrics.h @@ -81,6 +81,9 @@ struct thread_metrics // sf session metrics uint64_t session_num; // 当前值 uint64_t session_log; // 累计值 + + uint64_t session_new; // 累计值 + uint64_t session_free; // 累计值 }; struct metrics_config diff --git a/platform/src/global_metrics.cpp b/platform/src/global_metrics.cpp index f4ed3d8..3a935e2 100644 --- a/platform/src/global_metrics.cpp +++ b/platform/src/global_metrics.cpp @@ -116,6 +116,9 @@ enum SCE_STAT_FIELD STAT_SF_SESSION_NUM, STAT_SF_SESSION_LOG, + STAT_SESSION_NEW, + STAT_SESSION_FREE, + // max STAT_MAX, }; @@ -230,6 +233,9 @@ static const char *stat_map[] = [STAT_SF_SESSION_NUM] = "curr_sessions", [STAT_SF_SESSION_LOG] = "session_logs", + [STAT_SESSION_NEW] = "session_new", + [STAT_SESSION_FREE] = "session_free", + [STAT_MAX] = NULL}; static void global_metrics_parse_config(const char *profile, struct metrics_config *config) @@ -426,6 +432,8 @@ void global_metrics_dump(struct global_metrics *global_metrics) sum->sf_inactive += thread->sf_inactive; sum->session_num += thread->session_num; sum->session_log += thread->session_log; + sum->session_new += thread->session_new; + sum->session_free += thread->session_free; memset(thread, 0, sizeof(struct thread_metrics)); ATOMIC_SET(&(global_metrics->thread_metrics_flag[i]), THREAD_METRICS_CACHE_IS_FREE); @@ -537,5 +545,8 @@ void global_metrics_dump(struct global_metrics *global_metrics) FS_operate(global_metrics->fs_handle, global_metrics->fs_id[STAT_SF_SESSION_NUM], 0, FS_OP_SET, sum->session_num); FS_operate(global_metrics->fs_handle, global_metrics->fs_id[STAT_SF_SESSION_LOG], 0, FS_OP_SET, sum->session_log); + FS_operate(global_metrics->fs_handle, global_metrics->fs_id[STAT_SESSION_NEW], 0, FS_OP_SET, sum->session_new); + FS_operate(global_metrics->fs_handle, global_metrics->fs_id[STAT_SESSION_FREE], 0, FS_OP_SET, sum->session_free); + FS_passive_output(global_metrics->fs_handle); } diff --git a/platform/src/main.cpp b/platform/src/main.cpp index ae532b2..f963ebf 100644 --- a/platform/src/main.cpp +++ b/platform/src/main.cpp @@ -108,8 +108,10 @@ static void *worker_thread_cycle(void *arg) if (ATOMIC_READ(&thread_ctx->session_table_need_reset) > 0) { + int n_session = session_table_count(session_table); session_table_reset(session_table); ATOMIC_ZERO(&thread_ctx->session_table_need_reset); + ATOMIC_ADD(&(thread_metrics->session_free), n_session); } if (timestamp_get_msec(ts) - sf_metrics_last_send_ts >= sf_metrics_send_interval) diff --git a/platform/src/packet_io.cpp b/platform/src/packet_io.cpp index cd40cc9..88f19b1 100644 --- a/platform/src/packet_io.cpp +++ b/platform/src/packet_io.cpp @@ -979,6 +979,7 @@ static void handle_session_closing(struct metadata *meta, struct control_packet session_table_delete_by_id(session_table, meta->session_id); ATOMIC_DEC(&(thread_metrics->session_num)); + ATOMIC_INC(&(thread_metrics->session_free)); } } @@ -1037,6 +1038,7 @@ static void handle_session_active(struct metadata *meta, struct control_packet * LOG_INFO("%s: session %lu %s active first", LOG_TAG_PKTIO, session_ctx->session_id, session_ctx->session_addr); session_table_insert(session_table, session_ctx->session_id, &session_ctx->inner_tuple4, session_ctx, session_value_free_cb); ATOMIC_INC(&(thread_metrics->session_num)); + ATOMIC_INC(&(thread_metrics->session_new)); } handle_policy_mutil_hits(session_ctx, ctrl_pkt, &data_pkt, meta->direction, thread_ctx); diff --git a/test/test_data/log/test_ctr_pkt_active_ok.fs2 b/test/test_data/log/test_ctr_pkt_active_ok.fs2 index 9dc9e8b..294c7d7 100644 --- a/test/test_data/log/test_ctr_pkt_active_ok.fs2 +++ b/test/test_data/log/test_ctr_pkt_active_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:19:18 2024============================================================ +============================================================Sat Mar 2 17:30:56 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 1 147 1 147 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_ctr_pkt_opening_ok.fs2 b/test/test_data/log/test_ctr_pkt_opening_ok.fs2 index ff4d260..d370534 100644 --- a/test/test_data/log/test_ctr_pkt_opening_ok.fs2 +++ b/test/test_data/log/test_ctr_pkt_opening_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:17:04 2024============================================================ +============================================================Sat Mar 2 17:29:46 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 1 99 1 99 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 99 1 99 1 0 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 0 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 0 0 0 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_error_bypass_ok.fs2 b/test/test_data/log/test_data_pkt_error_bypass_ok.fs2 index 50607e2..5a20c7b 100644 --- a/test/test_data/log/test_data_pkt_error_bypass_ok.fs2 +++ b/test/test_data/log/test_data_pkt_error_bypass_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:43:15 2024============================================================ +============================================================Sat Mar 2 17:36:37 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 1 145 1 145 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 0 0 0 0 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 0 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 0 0 0 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_mirr_block_ok.fs2 b/test/test_data/log/test_data_pkt_mirr_block_ok.fs2 index 3426306..96decd7 100644 --- a/test/test_data/log/test_data_pkt_mirr_block_ok.fs2 +++ b/test/test_data/log/test_data_pkt_mirr_block_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:24:49 2024============================================================ +============================================================Sat Mar 2 17:34:59 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 2 292 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_mirr_bypass_ok.fs2 b/test/test_data/log/test_data_pkt_mirr_bypass_ok.fs2 index 651e4e6..7ccc191 100644 --- a/test/test_data/log/test_data_pkt_mirr_bypass_ok.fs2 +++ b/test/test_data/log/test_data_pkt_mirr_bypass_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:24:32 2024============================================================ +============================================================Sat Mar 2 17:34:24 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 2 292 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_mirr_forward_ok.fs2 b/test/test_data/log/test_data_pkt_mirr_forward_ok.fs2 index 7c42fd8..6ab9f03 100644 --- a/test/test_data/log/test_data_pkt_mirr_forward_ok.fs2 +++ b/test/test_data/log/test_data_pkt_mirr_forward_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:25:01 2024============================================================ +============================================================Sat Mar 2 17:35:26 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 2 292 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_mirr_rx_drop_ok.fs2 b/test/test_data/log/test_data_pkt_mirr_rx_drop_ok.fs2 index 03ca5c1..859ed7f 100644 --- a/test/test_data/log/test_data_pkt_mirr_rx_drop_ok.fs2 +++ b/test/test_data/log/test_data_pkt_mirr_rx_drop_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:25:13 2024============================================================ +============================================================Sat Mar 2 17:36:09 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 2 292 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_stee_block_ok.fs2 b/test/test_data/log/test_data_pkt_stee_block_ok.fs2 index 14af27d..40ac09b 100644 --- a/test/test_data/log/test_data_pkt_stee_block_ok.fs2 +++ b/test/test_data/log/test_data_pkt_stee_block_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:22:03 2024============================================================ +============================================================Sat Mar 2 17:32:36 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 1 147 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_stee_bypass_ok.fs2 b/test/test_data/log/test_data_pkt_stee_bypass_ok.fs2 index 06c389b..4fd8f0c 100644 --- a/test/test_data/log/test_data_pkt_stee_bypass_ok.fs2 +++ b/test/test_data/log/test_data_pkt_stee_bypass_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:20:58 2024============================================================ +============================================================Sat Mar 2 17:32:04 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 2 292 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_stee_forward_ok.fs2 b/test/test_data/log/test_data_pkt_stee_forward_ok.fs2 index 93762e9..d9e3a8a 100644 --- a/test/test_data/log/test_data_pkt_stee_forward_ok.fs2 +++ b/test/test_data/log/test_data_pkt_stee_forward_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:22:45 2024============================================================ +============================================================Sat Mar 2 17:33:12 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 1 147 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_data_pkt_stee_rx_egress_ok.fs2 b/test/test_data/log/test_data_pkt_stee_rx_egress_ok.fs2 index d6b0a20..609f7df 100644 --- a/test/test_data/log/test_data_pkt_stee_rx_egress_ok.fs2 +++ b/test/test_data/log/test_data_pkt_stee_rx_egress_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:23:40 2024============================================================ +============================================================Sat Mar 2 17:33:53 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 2 292 2 292 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 1 147 1 147 0 1 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________ diff --git a/test/test_data/log/test_mix_pkt_stee_forward_ok.fs2 b/test/test_data/log/test_mix_pkt_stee_forward_ok.fs2 index e837429..b1fd9c0 100644 --- a/test/test_data/log/test_mix_pkt_stee_forward_ok.fs2 +++ b/test/test_data/log/test_mix_pkt_stee_forward_ok.fs2 @@ -1,4 +1,4 @@ -============================================================Fri Mar 1 18:25:43 2024============================================================ +============================================================Sat Mar 2 17:38:11 2024============================================================ dev_nf_rx_P dev_nf_rx_B dev_nf_tx_P dev_nf_tx_B kee_d_rx_P kee_d_rx_B kee_d_tx_P kee_d_tx_B sum 4 584 2 294 0 0 0 0 speed/s 0 0 0 0 0 0 0 0 @@ -23,7 +23,7 @@ speed/s 0 0 0 0 0 0 ctrl_rx_P ctrl_rx_B ctrl_tx_P ctrl_tx_B ctrl_opening ctrl_active ctrl_closing ctrl_resetall sum 2 294 2 294 0 2 0 0 speed/s 0 0 0 0 0 0 0 0 - ctrl_error curr_sessions session_logs -sum 0 1 0 -speed/s 0 0 0 + ctrl_error curr_sessions session_logs session_new session_free +sum 0 1 0 1 0 +speed/s 0 0 0 0 0 ________________________________________________________________________________________________________________________________________________