1、总控统一发送tcp会话创建延迟时间字段
2、修复流量统计出现负值的现象
This commit is contained in:
@@ -41,7 +41,7 @@ static __attribute__((__used__)) const char * GIT_VERSION_UNKNOWN = NULL;
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
char TSG_MASTER_VERSION_20200322=0;
|
char TSG_MASTER_VERSION_20200330=0;
|
||||||
const char *tsg_conffile="tsgconf/main.conf";
|
const char *tsg_conffile="tsgconf/main.conf";
|
||||||
g_tsg_para_t g_tsg_para;
|
g_tsg_para_t g_tsg_para;
|
||||||
|
|
||||||
@@ -418,6 +418,8 @@ static int identify_application_protocol(struct streaminfo *a_stream, struct _id
|
|||||||
extern "C" char TSG_MASTER_TCP_ENTRY(struct streaminfo *a_tcp, void **pme, int thread_seq,void *a_packet)
|
extern "C" char TSG_MASTER_TCP_ENTRY(struct streaminfo *a_tcp, void **pme, int thread_seq,void *a_packet)
|
||||||
{
|
{
|
||||||
int ret=0,hit_num=0;
|
int ret=0,hit_num=0;
|
||||||
|
struct timespec tv;
|
||||||
|
long establish_latency_ms=0;
|
||||||
int state=APP_STATE_GIVEME;
|
int state=APP_STATE_GIVEME;
|
||||||
scan_status_t mid=NULL;
|
scan_status_t mid=NULL;
|
||||||
Maat_rule_t *p_result=NULL;
|
Maat_rule_t *p_result=NULL;
|
||||||
@@ -436,10 +438,8 @@ extern "C" char TSG_MASTER_TCP_ENTRY(struct streaminfo *a_tcp, void **pme, int t
|
|||||||
identify_application_protocol(a_tcp, &identify_info);
|
identify_application_protocol(a_tcp, &identify_info);
|
||||||
if(identify_info.proto==PROTO_HTTP)
|
if(identify_info.proto==PROTO_HTTP)
|
||||||
{
|
{
|
||||||
struct timeval tv;
|
clock_gettime(CLOCK_REALTIME, &tv);
|
||||||
long establish_latency_ms=0;
|
establish_latency_ms=(tv.tv_sec-a_tcp->ptcpdetail->createtime)*1000+tv.tv_nsec/1000/1000;
|
||||||
gettimeofday(&tv, NULL);
|
|
||||||
establish_latency_ms=(tv.tv_sec-a_tcp->ptcpdetail->createtime)*1000+tv.tv_usec/1000;
|
|
||||||
ret=project_req_add_long(a_tcp, g_tsg_para.establish_latency_project_id, establish_latency_ms);
|
ret=project_req_add_long(a_tcp, g_tsg_para.establish_latency_project_id, establish_latency_ms);
|
||||||
if(ret<0)
|
if(ret<0)
|
||||||
{
|
{
|
||||||
@@ -741,7 +741,6 @@ extern "C" int TSG_MASTER_INIT()
|
|||||||
if(g_tsg_para.establish_latency_project_id<0)
|
if(g_tsg_para.establish_latency_project_id<0)
|
||||||
{
|
{
|
||||||
MESA_handle_runtime_log(g_tsg_para.logger, RLOG_LV_FATAL, "PROJECT_REGISTER", "Register %s failed ...", label_buff);
|
MESA_handle_runtime_log(g_tsg_para.logger, RLOG_LV_FATAL, "PROJECT_REGISTER", "Register %s failed ...", label_buff);
|
||||||
return -1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ret=tsg_rule_init(tsg_conffile, g_tsg_para.logger);
|
ret=tsg_rule_init(tsg_conffile, g_tsg_para.logger);
|
||||||
@@ -757,6 +756,7 @@ extern "C" int TSG_MASTER_INIT()
|
|||||||
MESA_handle_runtime_log(g_tsg_para.logger, RLOG_LV_FATAL, "INIT_SENDLOG", "tsg_sendlog_init failed ...");
|
MESA_handle_runtime_log(g_tsg_para.logger, RLOG_LV_FATAL, "INIT_SENDLOG", "tsg_sendlog_init failed ...");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
g_tsg_log_instance->establish_latency_project_id=g_tsg_para.establish_latency_project_id;
|
||||||
|
|
||||||
MESA_load_profile_int_def(tsg_conffile, "FIELD_STAT", "CYCLE", &cycle, 30);
|
MESA_load_profile_int_def(tsg_conffile, "FIELD_STAT", "CYCLE", &cycle, 30);
|
||||||
MESA_load_profile_short_nodef(tsg_conffile, "FIELD_STAT","TELEGRAF_PORT", (short *)&(fs_server_port));
|
MESA_load_profile_short_nodef(tsg_conffile, "FIELD_STAT","TELEGRAF_PORT", (short *)&(fs_server_port));
|
||||||
|
|||||||
@@ -141,6 +141,7 @@ typedef struct _tsg_statistic
|
|||||||
int fs_line_id;
|
int fs_line_id;
|
||||||
int fs_field_id[STATIS_MAX];
|
int fs_field_id[STATIS_MAX];
|
||||||
struct _traffic_info *traffic_info[TSG_ACTION_MAX+1];
|
struct _traffic_info *traffic_info[TSG_ACTION_MAX+1];
|
||||||
|
struct _traffic_info default_total_info;
|
||||||
screen_stat_handle_t fs2_handle;
|
screen_stat_handle_t fs2_handle;
|
||||||
}tsg_statis_para_t;
|
}tsg_statis_para_t;
|
||||||
|
|
||||||
|
|||||||
@@ -19,7 +19,7 @@
|
|||||||
#include "tsg_send_log.h"
|
#include "tsg_send_log.h"
|
||||||
#include "tsg_send_log_internal.h"
|
#include "tsg_send_log_internal.h"
|
||||||
|
|
||||||
char TSG_SEND_LOG_VERSION_20200119=0;
|
char TSG_SEND_LOG_VERSION_20200330=0;
|
||||||
struct tsg_log_instance_t *g_tsg_log_instance;
|
struct tsg_log_instance_t *g_tsg_log_instance;
|
||||||
|
|
||||||
|
|
||||||
@@ -417,6 +417,7 @@ int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handl
|
|||||||
{
|
{
|
||||||
int i=0,status=0;
|
int i=0,status=0;
|
||||||
char *payload=NULL;
|
char *payload=NULL;
|
||||||
|
long establish_latency_ms=0;
|
||||||
struct TLD_handle_t *_handle=handle;
|
struct TLD_handle_t *_handle=handle;
|
||||||
struct tsg_log_instance_t *_instance=instance;
|
struct tsg_log_instance_t *_instance=instance;
|
||||||
|
|
||||||
@@ -459,6 +460,15 @@ int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handl
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(log_msg->result[i].action==TSG_ACTION_MONITOR && _instance->establish_latency_project_id>0)
|
||||||
|
{
|
||||||
|
establish_latency_ms=project_req_get_long(log_msg->a_stream, _instance->establish_latency_project_id);
|
||||||
|
if(establish_latency_ms>=0)
|
||||||
|
{
|
||||||
|
TLD_append(_handle, _instance->id2field[LOG_COMMON_ESTABLISH_LATENCY_MS].name, (void *)establish_latency_ms, TLD_TYPE_LONG);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TLD_append(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name, (void *)(long)(log_msg->result[i].config_id), TLD_TYPE_LONG);
|
TLD_append(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name, (void *)(long)(log_msg->result[i].config_id), TLD_TYPE_LONG);
|
||||||
TLD_append(_handle, _instance->id2field[LOG_COMMON_SERVICE].name, (void *)(long)(log_msg->result[i].service_id), TLD_TYPE_LONG);
|
TLD_append(_handle, _instance->id2field[LOG_COMMON_SERVICE].name, (void *)(long)(log_msg->result[i].service_id), TLD_TYPE_LONG);
|
||||||
TLD_append(_handle, _instance->id2field[LOG_COMMON_ACTION].name, (void *)(long)((unsigned char)log_msg->result[i].action), TLD_TYPE_LONG);
|
TLD_append(_handle, _instance->id2field[LOG_COMMON_ACTION].name, (void *)(long)((unsigned char)log_msg->result[i].action), TLD_TYPE_LONG);
|
||||||
@@ -485,6 +495,7 @@ int tsg_send_log(struct tsg_log_instance_t *instance, struct TLD_handle_t *handl
|
|||||||
TLD_delete(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name);
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_POLICY_ID].name);
|
||||||
TLD_delete(_handle, _instance->id2field[LOG_COMMON_SERVICE].name);
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_SERVICE].name);
|
||||||
TLD_delete(_handle, _instance->id2field[LOG_COMMON_ACTION].name);
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_ACTION].name);
|
||||||
|
TLD_delete(_handle, _instance->id2field[LOG_COMMON_ESTABLISH_LATENCY_MS].name);
|
||||||
|
|
||||||
FS_operate(g_tsg_para.fs2_handle, g_tsg_para.fs2_field_id[TSG_FS2_LOG], 0, FS_OP_ADD, 1);
|
FS_operate(g_tsg_para.fs2_handle, g_tsg_para.fs2_field_id[TSG_FS2_LOG], 0, FS_OP_ADD, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -59,6 +59,7 @@ typedef enum _tsg_log_field_id
|
|||||||
LOG_COMMON_SCHAME_TYPE,
|
LOG_COMMON_SCHAME_TYPE,
|
||||||
LOG_HTTP_HOST,
|
LOG_HTTP_HOST,
|
||||||
LOG_SSL_SNI,
|
LOG_SSL_SNI,
|
||||||
|
LOG_COMMON_ESTABLISH_LATENCY_MS,
|
||||||
LOG_COMMON_MAX
|
LOG_COMMON_MAX
|
||||||
}tsg_log_field_id_t;
|
}tsg_log_field_id_t;
|
||||||
|
|
||||||
@@ -79,6 +80,7 @@ struct tsg_log_instance_t
|
|||||||
{
|
{
|
||||||
int mode;
|
int mode;
|
||||||
int max_service;
|
int max_service;
|
||||||
|
int establish_latency_project_id;
|
||||||
void *logger;
|
void *logger;
|
||||||
char common_field_file[MAX_STRING_LEN*4];
|
char common_field_file[MAX_STRING_LEN*4];
|
||||||
char broker_list[MAX_STRING_LEN*4];
|
char broker_list[MAX_STRING_LEN*4];
|
||||||
|
|||||||
@@ -61,15 +61,20 @@ static int _get_traffic_info(struct _traffic_info *total, struct _traffic_info *
|
|||||||
out->out_bytes=total->out_bytes-policy->out_bytes;
|
out->out_bytes=total->out_bytes-policy->out_bytes;
|
||||||
out->out_packets=total->out_packets-policy->out_packets;
|
out->out_packets=total->out_packets-policy->out_packets;
|
||||||
|
|
||||||
if(out->con_num<0 || out->in_bytes<0 || out->in_packets<0 || out->out_bytes<0 || out->out_packets<0)
|
if(out->con_num-g_tsg_statis_para.default_total_info.con_num<0
|
||||||
|
|| out->in_bytes-g_tsg_statis_para.default_total_info.in_bytes<0
|
||||||
|
|| out->in_packets-g_tsg_statis_para.default_total_info.in_packets<0
|
||||||
|
|| out->out_bytes-g_tsg_statis_para.default_total_info.out_bytes<0
|
||||||
|
|| out->out_packets-g_tsg_statis_para.default_total_info.out_packets<0)
|
||||||
{
|
{
|
||||||
out->con_num=total->con_num;
|
memcpy(out, &g_tsg_statis_para.default_total_info, sizeof(struct _traffic_info));
|
||||||
out->in_bytes=total->in_bytes;
|
}
|
||||||
out->in_packets=total->in_packets;
|
else
|
||||||
out->out_bytes=total->out_bytes;
|
{
|
||||||
out->out_packets=total->out_packets;
|
memcpy(&g_tsg_statis_para.default_total_info, out, sizeof(struct _traffic_info));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user