summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--CMakeLists.txt2
-rw-r--r--src/SSL_Analyze.c41
-rw-r--r--src/SSL_Analyze.h3
-rw-r--r--src/SSL_Message.c17
5 files changed, 41 insertions, 24 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 27f47cd..0d53a42 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -4,7 +4,7 @@ variables:
BUILD_IMAGE_CENTOS8: "git.mesalab.cn:7443/mesa_platform/build-env:rockylinux"
BUILD_PADDING_PREFIX: /tmp/padding_for_CPACK_RPM_BUILD_SOURCE_DIRS_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX_PREFIX/
INSTALL_DEPENDENCY_PLATFORM: sapp-devel libasan systemd-devel libnsl
- INSTALL_DEPENDENCY_FRAMEWORK: libMESA_handle_logger-devel libcjson-devel libfieldstat3-devel libMESA_field_stat2-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel
+ INSTALL_DEPENDENCY_FRAMEWORK: libMESA_handle_logger-devel libcjson-devel libfieldstat4-devel framework_env libMESA_prof_load-devel libbreakpad_mini-devel libMESA_htable-devel
INSTALL_PREFIX: "/home/mesasoft/sapp_run/"
stages:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 59ec5e6..7217e0a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -61,7 +61,7 @@ file(GLOB SRC
"src/*.cpp"
)
-set(DEPEND_DYN_LIB MESA_handle_logger fieldstat3 MESA_prof_load)
+set(DEPEND_DYN_LIB MESA_handle_logger fieldstat4 MESA_prof_load)
SET_SOURCE_FILES_PROPERTIES(${SRC} PROPERTIES LANGUAGE CXX )
diff --git a/src/SSL_Analyze.c b/src/SSL_Analyze.c
index d6ce467..e0def36 100644
--- a/src/SSL_Analyze.c
+++ b/src/SSL_Analyze.c
@@ -17,7 +17,7 @@
#include "ssl.h"
#include <MESA/MESA_prof_load.h>
#include "SSL_Proc.h"
-#include "fieldstat.h"
+#include "fieldstat/fieldstat_easy.h"
#include <assert.h>
@@ -224,8 +224,11 @@ extern "C" char SSL_DETAIN_ENTRY(const struct streaminfo *a_tcp, void**pme, int
{
p = pkts->p[i];
if (p)MESA_detain_pkt_forward_based_on_stream(a_tcp, p);
- if(g_ssl_runtime_para.fs)fieldstat_value_incrby(g_ssl_runtime_para.fs,
+ if(g_ssl_runtime_para.fs)fieldstat_easy_counter_incrby(g_ssl_runtime_para.fs,
+ a_tcp->threadnum,
g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FORWARD],
+ NULL,
+ 0,
1);
pkts->p[i] = NULL;
}
@@ -246,16 +249,22 @@ static void ssl_retain_packet_bridge_free(const struct streaminfo *stream, int b
{
if(pkts->p_sz > 0)
{
- if(g_ssl_runtime_para.fs)fieldstat_value_incrby(g_ssl_runtime_para.fs,
+ if(g_ssl_runtime_para.fs)fieldstat_easy_counter_incrby(g_ssl_runtime_para.fs,
+ stream->threadnum,
g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_TIMEOUT],
+ NULL,
+ 0,
1);
}
for(unsigned int i = 0; i < pkts->p_sz; i++)
{
p=pkts->p[i];
if (p)MESA_detain_pkt_free(p);
- if(g_ssl_runtime_para.fs)fieldstat_value_incrby(g_ssl_runtime_para.fs,
+ if(g_ssl_runtime_para.fs)fieldstat_easy_counter_incrby(g_ssl_runtime_para.fs,
+ stream->threadnum,
g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FREE],
+ NULL,
+ 0,
1);
}
@@ -284,17 +293,17 @@ extern "C" int SSL_INIT(void)
MESA_load_profile_uint_def(filename, "SSL", "SSL_STAT_REFRESH_S", &refresh_s, 0);
if(refresh_s > 0)
{
- g_ssl_runtime_para.fs=fieldstat_instance_new("SSL_DECODER");
- fieldstat_set_output_interval(g_ssl_runtime_para.fs, refresh_s * 1000);
- fieldstat_set_local_output(g_ssl_runtime_para.fs, "./log/ssl.status", "default");
- fieldstat_enable_prometheus_output(g_ssl_runtime_para.fs);
- fieldstat_instance_start(g_ssl_runtime_para.fs);
- g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_SESSION]=fieldstat_register(g_ssl_runtime_para.fs, FIELD_TYPE_COUNTER, "FRAG_CH_SESS",NULL, 0);
- g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FINISH]=fieldstat_register(g_ssl_runtime_para.fs, FIELD_TYPE_COUNTER, "FRAG_CH_FIN",NULL, 0);
- g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_TIMEOUT]=fieldstat_register(g_ssl_runtime_para.fs, FIELD_TYPE_COUNTER, "FRAG_CH_TOT",NULL, 0);
- g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_NUM]=fieldstat_register(g_ssl_runtime_para.fs, FIELD_TYPE_COUNTER, "FRAG_CH_NUM",NULL, 0);
- g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FORWARD]=fieldstat_register(g_ssl_runtime_para.fs, FIELD_TYPE_COUNTER, "FRAG_CH_FORWARD",NULL, 0);
- g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FREE]=fieldstat_register(g_ssl_runtime_para.fs, FIELD_TYPE_COUNTER, "FRAG_CH_FREE",NULL, 0);
+ MESA_load_profile_string_def(filename, "SSL", "SSL_STAT_FILE", g_ssl_runtime_para.stat_filename, sizeof(g_ssl_runtime_para.stat_filename), "./metrics/ssl_status.json");
+ MESA_load_profile_string_def(filename, "SSL", "SSL_STAT_APPNAME", g_ssl_runtime_para.stat_appname, sizeof(g_ssl_runtime_para.stat_filename), "SSL_DECODER");
+ g_ssl_runtime_para.fs=fieldstat_easy_new(get_thread_count(), g_ssl_runtime_para.stat_appname, NULL, 0);
+ fieldstat_easy_enable_auto_output(g_ssl_runtime_para.fs, g_ssl_runtime_para.stat_filename, refresh_s);
+ fieldstat_easy_enable_delta_in_active_output(g_ssl_runtime_para.fs);
+ g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_SESSION]=fieldstat_easy_register_counter(g_ssl_runtime_para.fs, "FRAG_CH_SESS");
+ g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FINISH]=fieldstat_easy_register_counter(g_ssl_runtime_para.fs, "FRAG_CH_FIN");
+ g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_TIMEOUT]=fieldstat_easy_register_counter(g_ssl_runtime_para.fs, "FRAG_CH_TOT");
+ g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_NUM]=fieldstat_easy_register_counter(g_ssl_runtime_para.fs, "FRAG_CH_NUM");
+ g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FORWARD]=fieldstat_easy_register_counter(g_ssl_runtime_para.fs, "FRAG_CH_FORWARD");
+ g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FREE]=fieldstat_easy_register_counter(g_ssl_runtime_para.fs, "FRAG_CH_FREE");
}
@@ -313,7 +322,7 @@ extern "C" void SSL_DESTROY(void)
{
if(g_ssl_runtime_para.fs != NULL)
{
- fieldstat_instance_free(g_ssl_runtime_para.fs);
+ fieldstat_easy_free(g_ssl_runtime_para.fs);
}
return;
}
diff --git a/src/SSL_Analyze.h b/src/SSL_Analyze.h
index f69d86a..faaf049 100644
--- a/src/SSL_Analyze.h
+++ b/src/SSL_Analyze.h
@@ -70,14 +70,13 @@ struct ssl_runtime_para
unsigned short ssl_plugid;
char ssl_conf_regionname[MAX_REGION_NUM][REGION_NAME_LEN];
char stat_filename[256];
- char stat_dst_ip[64];
char stat_appname[16];
int proto_tag_id ;
int max_cache_len;
int parse_certificate_detail;
unsigned int detain_frag_chello_num;
int frag_chello_exdata_idx;
- struct fieldstat_instance *fs;
+ struct fieldstat_easy *fs;
int fs_metric_id[FS_METRIC_MAX];
};
diff --git a/src/SSL_Message.c b/src/SSL_Message.c
index 57ef418..cab9954 100644
--- a/src/SSL_Message.c
+++ b/src/SSL_Message.c
@@ -12,7 +12,7 @@
#include "SSL_Message.h"
#include "SSL_Proc.h"
#include "SSL_Certificate.h"
-#include "fieldstat.h"
+#include "fieldstat/fieldstat_easy.h"
#define SUITE_VALUELEN 2
@@ -994,8 +994,11 @@ static void ssl_detain_frag_chello(const struct streaminfo *a_tcp)
if (pkts == NULL)
{
pkts=(struct frag_chello *)calloc(sizeof(struct frag_chello), 1);
- if(g_ssl_runtime_para.fs)fieldstat_value_incrby(g_ssl_runtime_para.fs,
+ if(g_ssl_runtime_para.fs)fieldstat_easy_counter_incrby(g_ssl_runtime_para.fs,
+ a_tcp->threadnum,
g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_SESSION],
+ NULL,
+ 0,
1);
}
if(pkts->finish == 1)return;
@@ -1006,8 +1009,11 @@ static void ssl_detain_frag_chello(const struct streaminfo *a_tcp)
pkts->p[pkts->p_sz]=dpkt;
pkts->p_sz+=1;
if(pkts->p_sz==g_ssl_runtime_para.detain_frag_chello_num)pkts->finish=1;
- if(g_ssl_runtime_para.fs)fieldstat_value_incrby(g_ssl_runtime_para.fs,
+ if(g_ssl_runtime_para.fs)fieldstat_easy_counter_incrby(g_ssl_runtime_para.fs,
+ a_tcp->threadnum,
g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_NUM],
+ NULL,
+ 0,
1);
}
stream_bridge_async_data_put(a_tcp, g_ssl_runtime_para.frag_chello_exdata_idx, pkts);
@@ -1019,8 +1025,11 @@ static void ssl_detain_chello_finish(const struct streaminfo *a_tcp)
if(g_ssl_runtime_para.detain_frag_chello_num == 0)return;
struct frag_chello *pkts = (struct frag_chello *)stream_bridge_async_data_get(a_tcp, g_ssl_runtime_para.frag_chello_exdata_idx);
if(pkts)pkts->finish=1;
- if(g_ssl_runtime_para.fs)fieldstat_value_incrby(g_ssl_runtime_para.fs,
+ if(g_ssl_runtime_para.fs)fieldstat_easy_counter_incrby(g_ssl_runtime_para.fs,
+ a_tcp->threadnum,
g_ssl_runtime_para.fs_metric_id[FS_METRIC_DETAIN_FRAG_CHELLO_FINISH],
+ NULL,
+ 0,
1);
return;
}