TSG-13938 tsg-service-chaining-engine区分mirror和steering并更新fieldstat计数
This commit is contained in:
@@ -62,8 +62,10 @@ enum SCE_STAT_FIELD
|
||||
STAT_CURRENT_SESSION_NUMS,
|
||||
|
||||
// keepalive packet
|
||||
STAT_KEEPALIVE_RX_PKT,
|
||||
STAT_KEEPALIVE_RX_B,
|
||||
STAT_DOWNLINK_KEEPALIVE_RX_PKT,
|
||||
STAT_DOWNLINK_KEEPALIVE_RX_B,
|
||||
STAT_UPLINK_KEEPALIVE_RX_PKT,
|
||||
STAT_UPLINK_KEEPALIVE_RX_B,
|
||||
|
||||
// health check
|
||||
STAT_SF_ACTIVE_TIMES,
|
||||
@@ -114,8 +116,8 @@ static const char *stat_map[] =
|
||||
// mirroring
|
||||
[STAT_MIRRORING_TX_PKT] = "mirr_tx_pkt",
|
||||
[STAT_MIRRORING_TX_B] = "mirr_tx_B",
|
||||
[STAT_MIRRORING_RX_DROP_PKT] = "mirr_rx_drop_pkt",
|
||||
[STAT_MIRRORING_RX_DROP_B] = "mirro_rx_drop_B",
|
||||
[STAT_MIRRORING_RX_DROP_PKT] = "mirr_rx_dop_pkt",
|
||||
[STAT_MIRRORING_RX_DROP_B] = "mirr_rx_dop_B",
|
||||
|
||||
// control packet
|
||||
[STAT_CONTROL_RX_PKT] = "ctrl_rx_pkt",
|
||||
@@ -131,14 +133,16 @@ static const char *stat_map[] =
|
||||
[STAT_CURRENT_SESSION_NUMS] = "curr_sess_num",
|
||||
|
||||
// keepalive packet
|
||||
[STAT_KEEPALIVE_RX_PKT] = "kepalive_rx_pkt",
|
||||
[STAT_KEEPALIVE_RX_B] = "kepalive_rx_B",
|
||||
[STAT_DOWNLINK_KEEPALIVE_RX_PKT] = "dlnk_kep_rx_pkt",
|
||||
[STAT_DOWNLINK_KEEPALIVE_RX_B] = "dlnk_kep_rx_B",
|
||||
[STAT_UPLINK_KEEPALIVE_RX_PKT] = "ulnk_kep_rx_pkt",
|
||||
[STAT_UPLINK_KEEPALIVE_RX_B] = "ulnk_kep_rx_B",
|
||||
|
||||
// health check
|
||||
[STAT_SF_ACTIVE_TIMES] = "sf_active_num",
|
||||
[STAT_SF_INACTIVE_TIMES] = "sf_inactive_num",
|
||||
[STAT_SF_MAC_EXIST_TIMES] = "sf_mac_succ_num",
|
||||
[STAT_SF_MAC_NOEXIST_TIMES] = "sf_mac_err_num",
|
||||
[STAT_SF_ACTIVE_TIMES] = "sf_active",
|
||||
[STAT_SF_INACTIVE_TIMES] = "sf_inactive",
|
||||
[STAT_SF_MAC_EXIST_TIMES] = "sf_mac_succ",
|
||||
[STAT_SF_MAC_NOEXIST_TIMES] = "sf_mac_err",
|
||||
|
||||
[STAT_MAX] = NULL};
|
||||
|
||||
@@ -196,6 +200,13 @@ struct global_metrics *global_metrics_create(const char *profile)
|
||||
FS_set_para(metrics->fs_handle, STATS_FORMAT, &metrics->config.statsd_format, sizeof(metrics->config.statsd_format));
|
||||
}
|
||||
|
||||
if (STAT_MAX >= (sizeof(metrics->fs_id) / sizeof(metrics->fs_id[0])))
|
||||
{
|
||||
LOG_ERROR("%s: field stat has insufficient space to store fs_id, and supports a maximum of %lu fsids, but %d is needed ", LOG_TAG_METRICS, (sizeof(metrics->fs_id) / sizeof(metrics->fs_id[0])), STAT_MAX);
|
||||
global_metrics_destory(metrics);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
for (int i = 0; i < STAT_MAX; i++)
|
||||
{
|
||||
metrics->fs_id[i] = FS_register(metrics->fs_handle, FS_STYLE_FIELD, FS_CALC_CURRENT, stat_map[i]);
|
||||
@@ -261,8 +272,10 @@ void global_metrics_dump(struct global_metrics *metrics)
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_MIRRORING_RX_DROP_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->mirroring_rx_drop.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
|
||||
// keepalive packet
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEEPALIVE_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->keepalive_packet_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_KEEPALIVE_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->keepalive_packet_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DOWNLINK_KEEPALIVE_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->downlink_keepalive_packet_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_DOWNLINK_KEEPALIVE_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->downlink_keepalive_packet_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_UPLINK_KEEPALIVE_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->uplink_keepalive_packet_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_UPLINK_KEEPALIVE_RX_B], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->uplink_keepalive_packet_rx.n_bytes), 0, __ATOMIC_RELAXED));
|
||||
|
||||
// control packet
|
||||
FS_operate(metrics->fs_handle, metrics->fs_id[STAT_CONTROL_RX_PKT], 0, FS_OP_SET, __atomic_fetch_add(&(metrics->control_packet_rx.n_pkts), 0, __ATOMIC_RELAXED));
|
||||
|
||||
Reference in New Issue
Block a user