summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2023-06-27 14:58:46 +0800
committerliuxueli <[email protected]>2023-06-27 14:58:46 +0800
commit2b9b49b24a80023a2139c7c8fe1981af2a1603fb (patch)
treeb4688e6bef3474a16adf8f78c365f7ca10adc845
parent9f17fec91781779dea45643726e91964554658ac (diff)
使用gauge类型输出统计
-rw-r--r--src/tsg_rule.cpp52
-rw-r--r--src/tsg_stat.cpp60
-rw-r--r--src/tsg_stat.h37
3 files changed, 80 insertions, 69 deletions
diff --git a/src/tsg_rule.cpp b/src/tsg_rule.cpp
index f451c25..7593070 100644
--- a/src/tsg_rule.cpp
+++ b/src/tsg_rule.cpp
@@ -445,7 +445,7 @@ void ex_data_gtp_c_new(const char *table_name, int table_id, const char* key, co
atomic_inc(&user_info->ref_cnt);
*ad=(void *)user_info;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_GTPC, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_GTPC, 1);
return;
}
@@ -464,7 +464,7 @@ void ex_data_gtp_c_free(int table_id, void **ad, long argl, void* argp)
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_GTPC, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_GTPC, 1);
}
}
@@ -511,7 +511,7 @@ void ex_data_asn_number_new(const char *table_name, int table_id, const char* ke
atomic_inc(&asn->ref_cnt);
*ad=(void *)asn;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ASN, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_ASN, 1);
return;
}
@@ -527,7 +527,7 @@ void ex_data_asn_number_free(int table_id, void **ad, long argl, void* argp)
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ASN, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_ASN, 1);
}
}
@@ -584,7 +584,7 @@ void ex_data_location_new(const char *table_name, int table_id, const char* key,
atomic_inc(&location->ref_cnt);
*ad=(void *)location;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_LOCATION, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_LOCATION, 1);
tsg_free_field(country_full);
tsg_free_field(province_full);
tsg_free_field(city_full);
@@ -605,7 +605,7 @@ void ex_data_location_free(int table_id, void **ad, long argl, void* argp)
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_LOCATION, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_LOCATION, 1);
}
}
@@ -637,7 +637,7 @@ void ex_data_fqdn_category_id_new(const char *table_name, int table_id, const ch
*ad=(void *)fqdn_cat;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_FQDN_CATEGORY, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_FQDN_CATEGORY, 1);
return;
}
@@ -647,7 +647,7 @@ void ex_data_fqdn_category_id_free(int table_id, void **ad, long argl, void* arg
{
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_FQDN_CATEGORY, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_FQDN_CATEGORY, 1);
}
}
@@ -680,7 +680,7 @@ void ex_data_subscriber_id_new(const char *table_name, int table_id, const char*
atomic_inc(&subscriber->ref_cnt);
*ad=(void *)subscriber;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_SUBSCRIBER, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_SUBSCRIBER, 1);
return;
}
@@ -695,7 +695,7 @@ void ex_data_subscriber_id_free(int table_id, void **ad, long argl, void* argp)
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_SUBSCRIBER, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_SUBSCRIBER, 1);
}
}
@@ -819,7 +819,7 @@ void ex_data_app_id_dict_new(const char *table_name, int table_id, const char* k
*ad=(void *)dict;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_APP_ID_DICT, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_APP_ID_DICT, 1);
}
void ex_data_app_id_dict_free(int table_id, void **ad, long argl, void* argp)
@@ -837,7 +837,7 @@ void ex_data_app_id_dict_free(int table_id, void **ad, long argl, void* argp)
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_APP_ID_DICT, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_APP_ID_DICT, 1);
}
}
@@ -1271,7 +1271,7 @@ void ex_data_security_compile_new(const char *table_name, int table_id, const ch
*ad=(void *)compile;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_COMPILE, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_COMPILE, 1);
return ;
}
@@ -1367,7 +1367,7 @@ void ex_data_security_compile_free(int table_id, void **ad, long argl, void *arg
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_COMPILE, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_COMPILE, 1);
}
@@ -1467,7 +1467,7 @@ void ex_data_http_response_pages_new(const char *table_name, int table_id, const
res_pages=NULL;
}
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_HTTP_RESPONSE, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_HTTP_RESPONSE, 1);
}
void ex_data_http_response_pages_free(int table_id, void **ad, long argl, void* argp)
@@ -1479,7 +1479,7 @@ void ex_data_http_response_pages_free(int table_id, void **ad, long argl, void*
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_HTTP_RESPONSE, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_HTTP_RESPONSE, 1);
}
}
@@ -1552,7 +1552,7 @@ void ex_data_dns_profile_records_new(const char *table_name, int table_id, const
profile_records=NULL;
}
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_DNS_RESPONSE, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_DNS_RESPONSE, 1);
return ;
}
@@ -1578,7 +1578,7 @@ void ex_data_dns_profile_records_free(int table_id, void **ad, long argl, void *
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_DNS_RESPONSE, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_DNS_RESPONSE, 1);
}
}
@@ -1613,7 +1613,7 @@ void ex_data_mirrored_profile_new(const char *table_name, int table_id, const ch
tsg_free_field(vlan_ids_str);
vlan_ids_str=NULL;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_MIRRORED, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_MIRRORED, 1);
return ;
}
@@ -1629,7 +1629,7 @@ void ex_data_mirrored_profile_free(int table_id, void **ad, long argl, void *arg
{
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_MIRRORED, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_MIRRORED, 1);
}
}
@@ -1656,7 +1656,7 @@ void ex_data_tunnel_catalog_new(const char *table_name, int table_id, const char
t_catalog->composition=column_string_get_value(table_line, 4);
*ad=(void *)t_catalog;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_TUNNEL_CATALOG, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_TUNNEL_CATALOG, 1);
}
void ex_data_tunnel_catalog_free(int table_id, void **ad, long argl, void *argp)
@@ -1672,7 +1672,7 @@ void ex_data_tunnel_catalog_free(int table_id, void **ad, long argl, void *argp)
tsg_free_field(t_catalog->composition);
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_TUNNEL_CATALOG, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_TUNNEL_CATALOG, 1);
}
void ex_data_tunnel_catalog_dup(int table_id, void **to, void **from, long argl, void *argp)
@@ -1690,7 +1690,7 @@ void ex_data_tunnel_endpoint_new(const char *table_name, int table_id, const cha
atomic_inc(&t_endpoint->ref_cnt);
*ad=(void *)t_endpoint;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_TUNNEL_ENDPOINT, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_TUNNEL_ENDPOINT, 1);
return ;
}
@@ -1717,7 +1717,7 @@ void ex_data_tunnel_endpoint_free(int table_id, void **ad, long argl, void *argp
tsg_free_field(t_endpoint->description);
tsg_free_field((char *)(*ad));
*ad=NULL;
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_TUNNEL_ENDPOINT, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_TUNNEL_ENDPOINT, 1);
}
}
}
@@ -1731,7 +1731,7 @@ void ex_data_tunnel_label_new(const char *table_name, int table_id, const char*
{
int label_id=column_integer_get_value(table_line, 1);
*ad=(void *)(long)label_id;
- tsg_stat_sync_exdata_add_update(SYNC_EXDATA_TUNNEL_LABEL, 1);
+ tsg_stat_sync_exdata_add_update(SYNC_EXDATA_ROW_TUNNEL_LABEL, 1);
return ;
}
@@ -1743,7 +1743,7 @@ void ex_data_tunnel_label_dup(int table_id, void **to, void **from, long argl, v
void ex_data_tunnel_label_free(int table_id, void **ad, long argl, void *argp)
{
- tsg_stat_sync_exdata_del_update(SYNC_EXDATA_TUNNEL_LABEL, 1);
+ tsg_stat_sync_exdata_del_update(SYNC_EXDATA_ROW_TUNNEL_LABEL, 1);
}
int init_scan_table(struct maat *feather, const char *conffile)
diff --git a/src/tsg_stat.cpp b/src/tsg_stat.cpp
index 91df58e..73549d8 100644
--- a/src/tsg_stat.cpp
+++ b/src/tsg_stat.cpp
@@ -6,6 +6,13 @@
#include <MESA/fieldstat.h>
#include <MESA/MESA_prof_load.h>
+enum OP_EXDATA
+{
+ OP_EXDATA_ADD=0,
+ OP_EXDATA_DEL,
+ OP_EXDATA_MAX
+};
+
struct fs3_rule_stat
{
int table_id;
@@ -55,8 +62,7 @@ struct fs3_sync_application
struct fs3_sync_exdata
{
int table_id;
- int add_column_id[SYNC_EXDATA_MAX];
- int del_column_id[SYNC_EXDATA_MAX];
+ int column_id[SYNC_EXDATA_ROW_MAX][OP_EXDATA_MAX];
};
struct fs3_flow
@@ -137,14 +143,14 @@ void tsg_stat_sync_ctrl_update(enum STAT_STATUS status, enum CTRL_SYNC column_id
}
}
-void tsg_stat_sync_exdata_add_update(enum SYNC_EXDATA column_idx, long long increase)
+void tsg_stat_sync_exdata_add_update(enum SYNC_EXDATA_ROW row_idx, long long increase)
{
- stat_update(g_rt_stat_para.exdata.add_column_id[column_idx], increase);
+ stat_update(g_rt_stat_para.exdata.column_id[row_idx][OP_EXDATA_ADD], increase);
}
-void tsg_stat_sync_exdata_del_update(enum SYNC_EXDATA column_idx, long long increase)
+void tsg_stat_sync_exdata_del_update(enum SYNC_EXDATA_ROW row_idx, long long increase)
{
- stat_update(g_rt_stat_para.exdata.del_column_id[column_idx], increase);
+ stat_update(g_rt_stat_para.exdata.column_id[row_idx][OP_EXDATA_DEL], increase);
}
void tsg_stat_sync_application_update(enum SYNC_APP column_idx, long long increase)
@@ -209,41 +215,45 @@ int tsg_stat_create(const char *conffile)
fieldstat_set_line_protocol_server(g_rt_stat_para.fs_instance, fs_server_ip, fs_server_port);
}
-#if 0
- g_rt_stat_para.tags.key="vsys_id";
- g_rt_stat_para.tags.value_type=0;
- g_rt_stat_para.tags.value_int=vsystem_id;
-#endif
-
return 0;
}
int tsg_stat_init(void)
{
- enum field_type exdata_column_type[SYNC_EXDATA_MAX]={FIELD_TYPE_COUNTER};
- const char *exdata_column_name[SYNC_EXDATA_MAX]={"asn", "gtpc", "location", "fqdn_category", "subscriber", "compile", "mirror", "http_response", "dns_response", "app_id_dict", "tunnel_catalog", "tunnel_endpoint", "tunnel_label"};
- g_rt_stat_para.exdata.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "sync_exdata", exdata_column_name, exdata_column_type, SYNC_EXDATA_MAX);
- fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "add", NULL, 0, g_rt_stat_para.exdata.add_column_id);
- fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "del", NULL, 0, g_rt_stat_para.exdata.del_column_id);
-
- enum field_type flow_column_type[FLOW_STAT_MAX]={FIELD_TYPE_COUNTER};
+ enum field_type exdata_column_type[OP_EXDATA_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
+ const char *exdata_column_name[OP_EXDATA_MAX]={"add", "del"};
+ g_rt_stat_para.exdata.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "sync_exdata", exdata_column_name, exdata_column_type, OP_EXDATA_MAX);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "asn", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_ASN]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "gtpc", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_GTPC]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "location", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_LOCATION]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "fqdn_category", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_FQDN_CATEGORY]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "subscriber", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_SUBSCRIBER]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "compile", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_COMPILE]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "http_response", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_HTTP_RESPONSE]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "dns_response", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_DNS_RESPONSE]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "app_id_dict", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_APP_ID_DICT]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_catalog", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_CATALOG]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_endpoint", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_ENDPOINT]);
+ fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.exdata.table_id, "tunnel_label", NULL, 0, g_rt_stat_para.exdata.column_id[SYNC_EXDATA_ROW_TUNNEL_LABEL]);
+
+ enum field_type flow_column_type[FLOW_STAT_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *flow_column_name[FLOW_STAT_MAX]={"inject", "mirror_pkts", "mirror_bytes", "set_timeout", "tamper"};
g_rt_stat_para.flow.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "flow", flow_column_name, flow_column_type, FLOW_STAT_MAX);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.flow.table_id, "success", NULL, 0, g_rt_stat_para.flow.success_column_id);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.flow.table_id, "fail", NULL, 0, g_rt_stat_para.flow.fail_column_id);
- enum field_type app_sync_column_type[SYNC_APP_MAX]={FIELD_TYPE_COUNTER};
+ enum field_type app_sync_column_type[SYNC_APP_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *app_sync_column_name[SYNC_APP_MAX]={"lpi", "dpkt", "thrid", "user_define", "built_in"};
g_rt_stat_para.app.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "sync_application", app_sync_column_name, app_sync_column_type, SYNC_APP_MAX);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.app.table_id, "sum", NULL, 0, g_rt_stat_para.app.column_id);
- enum field_type ctrl_sync_column_type[CTRL_SYNC_MAX]={FIELD_TYPE_COUNTER};
+ enum field_type ctrl_sync_column_type[CTRL_SYNC_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *ctrl_sync_column_name[CTRL_SYNC_MAX]={"unknown", "rstall", "opening", "activing", "updating", "closing"};
g_rt_stat_para.ctrl_sync.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "ctrl_stat", ctrl_sync_column_name, ctrl_sync_column_type, CTRL_SYNC_MAX);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.ctrl_sync.table_id, "success", NULL, 0, g_rt_stat_para.ctrl_sync.success_column_id);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.ctrl_sync.table_id, "fail", NULL, 0, g_rt_stat_para.ctrl_sync.fail_column_id);
- enum field_type ctrl_service_column_type[CTRL_SERVICE_MAX]={FIELD_TYPE_COUNTER};
+ enum field_type ctrl_service_column_type[CTRL_SERVICE_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *ctrl_service_column_name[CTRL_SERVICE_MAX]={"unknown", "sce", "shaping", "intercept"};
g_rt_stat_para.ctrl_service.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "ctrl_service", ctrl_service_column_name, ctrl_service_column_type, CTRL_SERVICE_MAX);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.ctrl_service.table_id, "activing_success", NULL, 0, g_rt_stat_para.ctrl_service.success.activing_column_id);
@@ -251,18 +261,18 @@ int tsg_stat_init(void)
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.ctrl_service.table_id, "updating_success", NULL, 0, g_rt_stat_para.ctrl_service.success.updating_column_id);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.ctrl_service.table_id, "updating_fail", NULL, 0, g_rt_stat_para.ctrl_service.fail.updating_column_id);
- enum field_type rule_column_type[RULE_TYPE_MAX]={FIELD_TYPE_COUNTER};
+ enum field_type rule_column_type[RULE_TYPE_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *rule_column_name[RULE_TYPE_MAX]={"unknown", "shunt", "allow", "deny", "shaping", "intercept", "no_intercept", "service_chaining", "monitor"};
g_rt_stat_para.rule.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "matched_rule", rule_column_name, rule_column_type, RULE_TYPE_MAX);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.rule.table_id, "abort", NULL, 0, g_rt_stat_para.rule.abort_column_id);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.rule.table_id, "send", NULL, 0, g_rt_stat_para.rule.send_column_id);
- enum field_type handle_column_type[LOG_HANDLE_MAX]={FIELD_TYPE_COUNTER};
+ enum field_type handle_column_type[LOG_HANDLE_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *handle_column_name[LOG_HANDLE_MAX]={"create", "dup", "append", "free_cnt", "free_size", "free_capacity"};
g_rt_stat_para.tld.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "tld_handle", handle_column_name, handle_column_type, LOG_HANDLE_MAX);
fieldstat_register_table_row(g_rt_stat_para.fs_instance, g_rt_stat_para.tld.table_id, "handle", NULL, 0, g_rt_stat_para.tld.column_id);
- enum field_type sendlog_column_type[LOG_STATUS_MAX]={FIELD_TYPE_COUNTER};
+ enum field_type sendlog_column_type[LOG_STATUS_MAX]={FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE, FIELD_TYPE_GAUGE};
const char *sendlog_column_name[LOG_STATUS_MAX]={"T_success_log", "T_fail_log", "T_drop_log", "success_log/s", "fail_log/s", "drop_log/s"};
g_rt_stat_para.sendlog.table_id=fieldstat_register_table(g_rt_stat_para.fs_instance, "sendlog", sendlog_column_name, sendlog_column_type, LOG_STATUS_MAX);
diff --git a/src/tsg_stat.h b/src/tsg_stat.h
index 691b000..078d67d 100644
--- a/src/tsg_stat.h
+++ b/src/tsg_stat.h
@@ -28,23 +28,24 @@ enum SYNC_APP
SYNC_APP_MAX
};
-//table: asn, gtpc, location, fqdn_category, subscriber, compile, mirror, http_response, dns_response, app_id_dict, tunnel_catalog, tunnel_endpoint, tunnel_label
-enum SYNC_EXDATA
+//table: add del
+//asn, gtpc, location, fqdn_category, subscriber, compile, mirror, http_response, dns_response, app_id_dict, tunnel_catalog, tunnel_endpoint, tunnel_label
+enum SYNC_EXDATA_ROW
{
- SYNC_EXDATA_ASN=0,
- SYNC_EXDATA_GTPC,
- SYNC_EXDATA_LOCATION,
- SYNC_EXDATA_FQDN_CATEGORY,
- SYNC_EXDATA_SUBSCRIBER,
- SYNC_EXDATA_COMPILE,
- SYNC_EXDATA_MIRRORED,
- SYNC_EXDATA_HTTP_RESPONSE,
- SYNC_EXDATA_DNS_RESPONSE,
- SYNC_EXDATA_APP_ID_DICT,
- SYNC_EXDATA_TUNNEL_CATALOG,
- SYNC_EXDATA_TUNNEL_ENDPOINT,
- SYNC_EXDATA_TUNNEL_LABEL,
- SYNC_EXDATA_MAX
+ SYNC_EXDATA_ROW_ASN=0,
+ SYNC_EXDATA_ROW_GTPC,
+ SYNC_EXDATA_ROW_LOCATION,
+ SYNC_EXDATA_ROW_FQDN_CATEGORY,
+ SYNC_EXDATA_ROW_SUBSCRIBER,
+ SYNC_EXDATA_ROW_COMPILE,
+ SYNC_EXDATA_ROW_MIRRORED,
+ SYNC_EXDATA_ROW_HTTP_RESPONSE,
+ SYNC_EXDATA_ROW_DNS_RESPONSE,
+ SYNC_EXDATA_ROW_APP_ID_DICT,
+ SYNC_EXDATA_ROW_TUNNEL_CATALOG,
+ SYNC_EXDATA_ROW_TUNNEL_ENDPOINT,
+ SYNC_EXDATA_ROW_TUNNEL_LABEL,
+ SYNC_EXDATA_ROW_MAX
};
//table: success, success/s, fail, fail/s, drop, drop/s
@@ -119,8 +120,8 @@ void tsg_stat_start(void);
void tsg_stat_abort_rule_update(enum RULE_TYPE column_idx, long long increase);
void tsg_stat_send_rule_update(enum RULE_TYPE column_idx, long long increase);
void tsg_stat_log_handle_update(enum LOG_HANDLE column_idx, long long increase);
-void tsg_stat_sync_exdata_add_update(enum SYNC_EXDATA column_idx, long long increase);
-void tsg_stat_sync_exdata_del_update(enum SYNC_EXDATA column_idx, long long increase);
+void tsg_stat_sync_exdata_add_update(enum SYNC_EXDATA_ROW row_idx, long long increase);
+void tsg_stat_sync_exdata_del_update(enum SYNC_EXDATA_ROW row_idx, long long increase);
void tsg_stat_sync_application_update(enum SYNC_APP column_idx, long long increase);
void tsg_stat_sendlog_update(int row_idx, enum LOG_STATUS column_idx, long long increase);
void tsg_stat_flow_update(enum STAT_STATUS status, enum FLOW_STAT column_idx, long long increase);