diff --git a/src/common/args.h b/src/common/args.h index 3ebbed42c60a2d48e1af7e5cbe112670ff8d0d11..5392cd09013883138fd6b1542e3a0cfdf5b3fb75 100644 --- a/src/common/args.h +++ b/src/common/args.h @@ -69,32 +69,18 @@ struct probe_params { unsigned int offline_thr; // Threshold of offline time, unit ms, default is 0 milliseconds unsigned int drops_count_thr; // Threshold of the number of drop packets, default is 0 unsigned int kafka_port; // the port to which kafka server attach. - char logs; // Enable the logs function - char metrics_flags; // Support for report metrics flags(0x01(raw metrics), 0x02(openTelemetry metrics, eg.. P50/P90/P99) ); - char env_flags; // Support for env flags(default 0x01(node), 0x02(container), 0x04(K8S)); + char logs; // Enable the event function + char enable_debug; // Enable printing debug logs char support_ssl; // Support for SSL probe; - char res_percent_upper; // Upper limit of resource percentage, default is 0% - char res_percent_lower; // Lower limit of resource percentage, default is 0% - char continuous_sampling_flag; // Enables the continuous sampling, default is 0 - char multi_instance_flag; // Enables output of individual flame graphs for each process, default is 0 - char native_stack_flag; // Enables output of native language call stack (only for java process), default is 0 - char cluster_ip_backend; // [-n <>] Indicates whether transform cluster IP address to backend, default is 0 (no transform) - char target_dev[DEV_NAME]; // Device name, default is null - char elf_path[MAX_PATH_LEN]; // Set ELF file path of the monitored software, default is null - /* - [-P <>] - L7 probe monitoring protocol flags, Refer to the below definitions(default is 0): - 0x0001 HTTP - 0x0002 DNS - 0x0004 REDIS - 0x0008 MYSQL - 0x0010 PGSQL - 0x0020 KAFKA - 0x0040 MONGODB - 0x0080 Cassandra - 0x00100 NATS - */ - unsigned int l7_probe_proto_flags; + char res_percent_upper; // Upper limit of resource percentage, default is 0% + char res_percent_lower; // Lower limit of resource percentage, default is 0% + char continuous_sampling_flag; // Enables the continuous sampling, default is 0 + char multi_instance_flag; // Enables output of individual flame graphs for each process, default is 0 + char native_stack_flag; // Enables output of native language call stack (only for java process), default is 0 + char cluster_ip_backend; // Indicates whether transform cluster IP address to backend, default is 0 (no transform) + char target_dev[DEV_NAME]; // Device name, default is null + char elf_path[MAX_PATH_LEN]; // Set ELF file path of the monitored software, default is null + unsigned int l7_probe_proto_flags; // L7 probe monitoring protocol flags, Refer to L7PROBE_TRACING_x in args.h unsigned int svg_period; unsigned int perf_sample_period; char pyroscope_server[PYSCOPE_SERVER_URL_LEN]; diff --git a/src/common/common.h b/src/common/common.h index 235ec8601d639b4fb362ed9f01183aa7b85e2bb0..783611957507c6b19b4c6f266ea7b0d3822b9d93 100644 --- a/src/common/common.h +++ b/src/common/common.h @@ -89,18 +89,16 @@ #define HOST_PATH_PREFIX_ENV "GOPHER_HOST_PATH" +extern char ext_probe_debug_enabled; void convert_output_to_log(char *buffer, int bufferSize); void debug_logs(const char* format, ...); +void debug_logs_cond(const char* format, ...); void info_logs(const char* format, ...); void warn_logs(const char* format, ...); void error_logs(const char* format, ...); -#ifndef GOPHER_DEBUG -static inline int __debug_printf(const char *format, ...) -{ - return 0; // NOTHING TO DO... -} -#define DEBUG (void)__debug_printf +#ifdef EXT_PROBE_DEBUG_LOG +#define DEBUG debug_logs_cond #else #define DEBUG debug_logs #endif diff --git a/src/common/ipc.c b/src/common/ipc.c index 9241a076df721c256efe572530f9842b9765c9d4..8bb0a35199c0c6fd9c2586f7f454007c54120312 100644 --- a/src/common/ipc.c +++ b/src/common/ipc.c @@ -762,6 +762,7 @@ int recv_ipc_msg(int msqid, long msg_type, struct ipc_body_s *ipc_body) goto end; } ipc_body->probe_flags = msg_flags; + ext_probe_debug_enabled = ipc_body->probe_param.enable_debug; err = 0; } diff --git a/src/common/logs.c b/src/common/logs.c index 75621c348f32ffdbb06ece461fabd5f69a37f8b7..143b0b5e66995ead82346d9c4996c13b949fca02 100644 --- a/src/common/logs.c +++ b/src/common/logs.c @@ -20,7 +20,11 @@ static struct log_mgr_s *local = NULL; static pthread_mutex_t metric_mutex = PTHREAD_MUTEX_INITIALIZER; +<<<<<<< HEAD static char logger_level_str[LOGGER_MAX][LOG_LEVEL_STR_LEN] = {DEBUG_STR, INFO_STR, WARN_STR, ERROR_STR}; +======= +char ext_probe_debug_enabled; +>>>>>>> 8f2b32b (support to enable debug log of extend probes individually) static int mkdirp(const char *path, mode_t mode) { @@ -848,7 +852,6 @@ void convert_output_to_log(char *buffer, int bufferSize) } buffer[bufferSize - 1] = 0; - if (strncmp(buffer, INFO_STR, sizeof(INFO_STR) - 1) == 0) { logger_level = LOGGER_INFO; offset = sizeof(INFO_STR) - 1; @@ -861,12 +864,11 @@ void convert_output_to_log(char *buffer, int bufferSize) } content += offset; - if (g_debug_logger.level <= logger_level) { - reappend_debug_logger(local); - log_with_date(&g_debug_logger, content, logger_level); - } + reappend_debug_logger(local); + log_with_date(&g_debug_logger, content, logger_level); } +#ifndef GOPHER_DEBUG void debug_logs(const char* format, ...) { char buf[__DEBUG_LEN]; @@ -882,7 +884,21 @@ void debug_logs(const char* format, ...) } } } +#else +void debug_logs(const char* format, ...) {} +#endif +void debug_logs_cond(const char* format, ...) +{ + char buf[__DEBUG_LEN]; + if (!ext_probe_debug_enabled) { + return; + } + + __FMT_LOGS(buf, __DEBUG_LEN, format); + printf("%s: %s", DEBUG_STR, buf); + (void)fflush(stdout); +} void info_logs(const char* format, ...) { diff --git a/src/lib/probe/probe_params_parser.c b/src/lib/probe/probe_params_parser.c index c34b282697d2a6cf855f3e3339febf6e695f9318..2b60f9e45ae6edd880240f16621e717918296abf 100644 --- a/src/lib/probe/probe_params_parser.c +++ b/src/lib/probe/probe_params_parser.c @@ -38,17 +38,6 @@ struct param_flags_s param_l7pro_flags[] = { {"crpc", L7PROBE_TRACING_CRPC} }; -struct param_flags_s param_metrics_flags[] = { - {"raw", SUPPORT_METRICS_RAW}, - {"telemetry", SUPPORT_METRICS_TELEM} -}; - -struct param_flags_s param_env_flags[] = { - {"node", SUPPORT_NODE_ENV}, - {"container", SUPPORT_CONTAINER_ENV}, - {"kubenet", SUPPORT_K8S_ENV} -}; - static unsigned int __get_params_flags(struct param_flags_s param_flags[], size_t size, const char *target) { for (size_t i = 0; i < size; i++) { @@ -222,6 +211,19 @@ static int parser_support_ssl(struct probe_s *probe, const struct param_key_s *p return 0; } +static int parser_debug_log(struct probe_s *probe, const struct param_key_s *param_key, const void *key_item) +{ + int value = Json_GetValueInt(key_item); + if (value < param_key->v.min || value > param_key->v.max || value == INVALID_INT_NUM) { + PARSE_ERR("params.%s invalid value %d, must be in [%d, %d]", + param_key->key, value, param_key->v.min, param_key->v.max); + return -1; + } + + probe->probe_param.enable_debug = (char)value; + return 0; +} + static int parser_svg_dir(struct probe_s *probe, const struct param_key_s *param_key, const void *key_item) { const char *value = (const char*)Json_GetValueString(key_item); @@ -500,6 +502,7 @@ SET_DEFAULT_PARAMS_INTER(min_aggr_dur); SET_DEFAULT_PARAMS_CAHR(logs); SET_DEFAULT_PARAMS_CAHR(support_ssl); +SET_DEFAULT_PARAMS_CAHR(enable_debug); SET_DEFAULT_PARAMS_CAHR(res_percent_upper); SET_DEFAULT_PARAMS_CAHR(res_percent_lower); SET_DEFAULT_PARAMS_CAHR(continuous_sampling_flag); @@ -521,6 +524,7 @@ SET_DEFAULT_PARAMS_STR(flame_dir); #define REPORT_EVENT "report_event" #define L7_PROTOCOL "l7_protocol" #define SUPPORT_SSL "support_ssl" +#define ENABLE_DEBUG_LOG "debug_log" #define PYROSCOPE_SERVER "pyroscope_server" #define SVG_PERIOD "svg_period" #define PERF_SAMPLE_PERIOD "perf_sample_period" @@ -551,7 +555,7 @@ struct param_key_s param_keys[] = { #endif {L7_PROTOCOL, {0, 0, 0, ""}, parser_l7pro, set_default_params_inter_l7_probe_proto_flags, JSON_ARRAY}, {SUPPORT_SSL, {0, 0, 1, ""}, parser_support_ssl, set_default_params_char_support_ssl, JSON_NUMBER}, - + {ENABLE_DEBUG_LOG, {0, 0, 1, ""}, parser_debug_log, set_default_params_char_enable_debug, JSON_NUMBER}, {PYROSCOPE_SERVER, {0, 0, 0, "localhost:4040"}, parser_pyscope_server, set_default_params_str_pyroscope_server, JSON_STRING}, {SVG_PERIOD, {180, 30, 600, ""}, parser_svg_period, set_default_params_inter_svg_period, JSON_NUMBER}, {PERF_SAMPLE_PERIOD, {10, 10, 1000, ""}, parser_perf_sample_period, set_default_params_inter_perf_sample_period, JSON_NUMBER}, @@ -566,7 +570,7 @@ struct param_key_s param_keys[] = { {KAFKA_PORT, {DEFAULT_KAFKA_PORT, 1, 65535, ""}, parser_kafka_port, set_default_params_inter_kafka_port, JSON_NUMBER}, {CADVISOR_PORT, {DEFAULT_CADVISOR_PORT, 1, 65535, ""}, parser_cadvisor_port, set_default_params_inter_cadvisor_port, JSON_NUMBER}, {PROFLING_CHANNEL, {PROFILING_CHAN_LOCAL, 0, 0, ""}, parser_profiling_channel, set_default_params_inter_profiling_chan, JSON_STRING}, - {MIN_EXEC_DUR, {1, 0, 1000000, ""}, parser_min_exec_dur, set_default_params_inter_min_exec_dur, JSON_NUMBER}, + {MIN_EXEC_DUR, {1, 0, 1000000, ""}, parser_min_exec_dur, set_default_params_inter_min_exec_dur, JSON_NUMBER}, {MIN_AGGR_DUR, {100, 10, 10000, ""}, parser_min_aggr_dur, set_default_params_inter_min_aggr_dur, JSON_NUMBER}, }; @@ -636,6 +640,7 @@ void probe_params_to_json(struct probe_s *probe, void *params) size_t flags_size; Json_AddUIntItemToObject(params, REPORT_PERIOD, probe_param->period); + Json_AddUIntItemToObject(params, ENABLE_DEBUG_LOG, probe_param->enable_debug); if (probe_type == PROBE_IO || probe_type == PROBE_TCP) { Json_AddUIntItemToObject(params, SAMPLE_PERIOD, probe_param->sample_period); } diff --git a/src/probes/extends/ebpf.probe/src/endpointprobe/endpoint.c b/src/probes/extends/ebpf.probe/src/endpointprobe/endpoint.c index 616c639c7fd64e0130b6f5f208a164fc8d3336bc..895403e0187337010ca60f6e60eadf3e0b392422 100644 --- a/src/probes/extends/ebpf.probe/src/endpointprobe/endpoint.c +++ b/src/probes/extends/ebpf.probe/src/endpointprobe/endpoint.c @@ -485,16 +485,17 @@ static void transform_cluster_ip(struct endpoint_probe_s *probe_mng, struct tcp_ return; } -#ifdef GOPHER_DEBUG - char s_ip1[IP6_STR_LEN], s_ip2[IP6_STR_LEN], c_ip1[IP6_STR_LEN], c_ip2[IP6_STR_LEN]; - inet_ntop(connect.family, &tracker->server_ipaddr.ip, s_ip1, sizeof(s_ip1)); - inet_ntop(connect.family, &connect.sip_addr, s_ip2, sizeof(s_ip2)); - inet_ntop(connect.family, &tracker->client_ipaddr.ip, c_ip1, sizeof(c_ip1)); - inet_ntop(connect.family, &connect.cip_addr, c_ip2, sizeof(c_ip2)); - DEBUG("[EPPROBE]: Flow (%s:%u - %s:%u) is transformed into (%s:%u - %s:%u)\n", - c_ip1, tracker->client_ipaddr.port, s_ip1, tracker->server_ipaddr.port, - c_ip2, connect.c_port, s_ip2, connect.s_port); -#endif + if (ext_probe_debug_enabled) { + char s_ip1[IP6_STR_LEN], s_ip2[IP6_STR_LEN], c_ip1[IP6_STR_LEN], c_ip2[IP6_STR_LEN]; + inet_ntop(connect.family, &tracker->server_ipaddr.ip, s_ip1, sizeof(s_ip1)); + inet_ntop(connect.family, &connect.sip_addr, s_ip2, sizeof(s_ip2)); + inet_ntop(connect.family, &tracker->client_ipaddr.ip, c_ip1, sizeof(c_ip1)); + inet_ntop(connect.family, &connect.cip_addr, c_ip2, sizeof(c_ip2)); + DEBUG("[EPPROBE]: Flow (%s:%u - %s:%u) is transformed into (%s:%u - %s:%u)\n", + c_ip1, tracker->client_ipaddr.port, s_ip1, tracker->server_ipaddr.port, + c_ip2, connect.c_port, s_ip2, connect.s_port); + } + if (transform & ADDR_TRANSFORM_SERVER) { if (connect.family == AF_INET) { @@ -561,13 +562,14 @@ static int add_tcp_sock_evt(struct endpoint_probe_s * probe, struct tcp_socket_e __init_tcp_socket_id(&id, evt); -#ifdef GOPHER_DEBUG - char s_ip[INET6_ADDRSTRLEN] = {0}, c_ip[INET6_ADDRSTRLEN] = {0}; - (void)inet_ntop(id.server_ipaddr.family, (const void *)&(id.server_ipaddr.ip), s_ip, sizeof(s_ip)); - (void)inet_ntop(id.client_ipaddr.family, (const void *)&(id.client_ipaddr.ip), c_ip, sizeof(c_ip)); - DEBUG("[EPPROBE]: tcp socket event %d, role: %d, observed flow: (%s:%u - %s:%u), tgid: %d\n", - evt->evt, evt->role, c_ip, id.client_ipaddr.port, s_ip, id.server_ipaddr.port, id.tgid); -#endif + if (ext_probe_debug_enabled) { + char s_ip[INET6_ADDRSTRLEN] = {0}, c_ip[INET6_ADDRSTRLEN] = {0}; + (void)inet_ntop(id.server_ipaddr.family, (const void *)&(id.server_ipaddr.ip), s_ip, sizeof(s_ip)); + (void)inet_ntop(id.client_ipaddr.family, (const void *)&(id.client_ipaddr.ip), c_ip, sizeof(c_ip)); + DEBUG("[EPPROBE]: tcp socket event %d, role: %d, observed flow: (%s:%u - %s:%u), tgid: %d\n", + evt->evt, evt->role, c_ip, id.client_ipaddr.port, s_ip, id.server_ipaddr.port, id.tgid); + } + transform_cluster_ip(probe, &id); diff --git a/src/probes/extends/ebpf.probe/src/flowtracer/flowtracer.c b/src/probes/extends/ebpf.probe/src/flowtracer/flowtracer.c index 0eb8ef90e03ed498c275d2bae27431775eff9a77..35937b64501903d5e189f2784661ed8fd36e60fb 100644 --- a/src/probes/extends/ebpf.probe/src/flowtracer/flowtracer.c +++ b/src/probes/extends/ebpf.probe/src/flowtracer/flowtracer.c @@ -45,6 +45,9 @@ static void usage(char *pname) static int handle_evt(void *ctx, void *notification, size_t sz) { struct flow_log *flow_log = notification; + if (!ext_probe_debug_enabled) { + return 0; + } char local_ip4[16], remote_ip4[16], original_remote_ip4[16]; inet_ntop(AF_INET, &flow_log->key.local_ip4, local_ip4, sizeof(local_ip4)); diff --git a/src/probes/extends/ebpf.probe/src/l7probe/conn_tracker.c b/src/probes/extends/ebpf.probe/src/l7probe/conn_tracker.c index 8b446a29d4f7a27f399e7200d448f2a7aa5cd3f5..4b0d0faa4cec2dd329da374a86fa11fe76383cf2 100644 --- a/src/probes/extends/ebpf.probe/src/l7probe/conn_tracker.c +++ b/src/probes/extends/ebpf.probe/src/l7probe/conn_tracker.c @@ -27,9 +27,7 @@ #undef BPF_PROG_USER #endif -#ifdef GOPHER_DEBUG #include -#endif #include "bpf.h" #include "container.h" @@ -371,16 +369,16 @@ static void transform_cluster_ip(struct l7_mng_s *l7_mng, struct conn_tracker_s* return; } -#ifdef GOPHER_DEBUG - char s_ip1[IP6_STR_LEN], s_ip2[IP6_STR_LEN], c_ip1[IP6_STR_LEN], c_ip2[IP6_STR_LEN]; - inet_ntop(connect.family, &tracker->open_info.server_addr.ip, s_ip1, sizeof(s_ip1)); - inet_ntop(connect.family, &connect.sip_addr, s_ip2, sizeof(s_ip2)); - inet_ntop(connect.family, &tracker->open_info.client_addr.ip, c_ip1, sizeof(c_ip1)); - inet_ntop(connect.family, &connect.cip_addr, c_ip2, sizeof(c_ip2)); - DEBUG("[L7PROBE]: Flow (%s:%u - %s:%u) is transformed into (%s:%u - %s:%u)\n", + if (ext_probe_debug_enabled) { + char s_ip1[IP6_STR_LEN], s_ip2[IP6_STR_LEN], c_ip1[IP6_STR_LEN], c_ip2[IP6_STR_LEN]; + inet_ntop(connect.family, &tracker->open_info.server_addr.ip, s_ip1, sizeof(s_ip1)); + inet_ntop(connect.family, &connect.sip_addr, s_ip2, sizeof(s_ip2)); + inet_ntop(connect.family, &tracker->open_info.client_addr.ip, c_ip1, sizeof(c_ip1)); + inet_ntop(connect.family, &connect.cip_addr, c_ip2, sizeof(c_ip2)); + DEBUG("[L7PROBE]: Flow (%s:%u - %s:%u) is transformed into (%s:%u - %s:%u)\n", c_ip1, tracker->open_info.client_addr.port, s_ip1, tracker->open_info.server_addr.port, c_ip2, connect.c_port, s_ip2, connect.s_port); -#endif + } if (transform & ADDR_TRANSFORM_SERVER) { if (connect.family == AF_INET) { @@ -440,15 +438,15 @@ static int proc_conn_ctl_msg(struct l7_mng_s *l7_mng, struct conn_ctl_s *conn_ct // Client port just used for cluster IP address translation. Here, client port MUST set 0. tracker->open_info.client_addr.port = 0; } -#ifdef GOPHER_DEBUG - char s_ip[IP6_STR_LEN], c_ip[IP6_STR_LEN]; - s_ip[0] = 0; - (void)inet_ntop(tracker->open_info.server_addr.family, (const void *)&(tracker->open_info.server_addr.ip), s_ip, sizeof(s_ip)); - c_ip[0] = 0; - (void)inet_ntop(tracker->open_info.client_addr.family, (const void *)&(tracker->open_info.client_addr.ip), c_ip, sizeof(c_ip)); - DEBUG("[L7PROBE.proc_conn_ctl_msg]: CONN_EVT_OPEN: tracker flow (%s:%u - %s:%u)\n", - c_ip, tracker->open_info.client_addr.port, s_ip, tracker->open_info.server_addr.port); -#endif + if (ext_probe_debug_enabled) { + char s_ip[IP6_STR_LEN], c_ip[IP6_STR_LEN]; + s_ip[0] = 0; + (void)inet_ntop(tracker->open_info.server_addr.family, (const void *)&(tracker->open_info.server_addr.ip), s_ip, sizeof(s_ip)); + c_ip[0] = 0; + (void)inet_ntop(tracker->open_info.client_addr.family, (const void *)&(tracker->open_info.client_addr.ip), c_ip, sizeof(c_ip)); + DEBUG("[L7PROBE.proc_conn_ctl_msg]: CONN_EVT_OPEN: tracker flow (%s:%u - %s:%u)\n", + c_ip, tracker->open_info.client_addr.port, s_ip, tracker->open_info.server_addr.port); + } } break; } diff --git a/src/probes/extends/ebpf.probe/src/mk/var.mk b/src/probes/extends/ebpf.probe/src/mk/var.mk index db0ad671c0b538833812fb6506c7af439119774e..0ce44c4e1b1e6b0ae41ad7217098ae85b077f1bd 100644 --- a/src/probes/extends/ebpf.probe/src/mk/var.mk +++ b/src/probes/extends/ebpf.probe/src/mk/var.mk @@ -43,6 +43,7 @@ EXTRA_CFLAGS ?= -g -O2 -Wall -fPIC -std=gnu11 -Wunused EXTRA_CDEFINE ?= -D__TARGET_ARCH_$(TYPE) EXTRA_CDEFINE += -D__BTF_ENABLE_$(BTF_ENABLE) EXTRA_CDEFINE += -DBPF_NO_GLOBAL_DATA +EXTRA_CDEFINE += -DEXT_PROBE_DEBUG_LOG CFLAGS := $(EXTRA_CFLAGS) $(EXTRA_CDEFINE) CFLAGS += -DLIBBPF_VER_MAJOR=$(LIBBPF_VER_MAJOR) -DLIBBPF_VER_MINOR=$(LIBBPF_VER_MINOR) -DCLANG_VER_MAJOR=$(CLANG_VER_MAJOR) CFLAGS += -DJAVA_SYM_AGENT_VER='"$(JAVA_SYM_AGENT_VER)"' diff --git a/src/probes/extends/ebpf.probe/src/stackprobe/stackprobe.c b/src/probes/extends/ebpf.probe/src/stackprobe/stackprobe.c index 5bdd8a4a94160bcad49fead5e30e5a1c9bd273c9..069f17b5002331980d39105c62a315eac1138e51 100644 --- a/src/probes/extends/ebpf.probe/src/stackprobe/stackprobe.c +++ b/src/probes/extends/ebpf.probe/src/stackprobe/stackprobe.c @@ -2105,7 +2105,6 @@ static void clear_running_ctx(struct stack_trace_s *st) static void record_running_ctx(struct stack_trace_s *st) { -#if 1 //GOPHER_DEBUG int i, len, ret; char *pos; char buf[LINE_BUF_LEN]; @@ -2139,7 +2138,6 @@ static void record_running_ctx(struct stack_trace_s *st) } (void)snprintf(pos, len, "%*llu\n", offset[i], st->stats.count[i]); DEBUG(buf); -#endif return; } diff --git a/src/probes/extends/ebpf.probe/src/tcpprobe/tcp_tracker.c b/src/probes/extends/ebpf.probe/src/tcpprobe/tcp_tracker.c index 79ed23203bdeaf05a11d299273712754359af437..1ef119fe6ca449849c89955ee5c4c3ae970c6317 100644 --- a/src/probes/extends/ebpf.probe/src/tcpprobe/tcp_tracker.c +++ b/src/probes/extends/ebpf.probe/src/tcpprobe/tcp_tracker.c @@ -23,9 +23,7 @@ #include #include -#ifdef GOPHER_DEBUG #include -#endif #ifdef BPF_PROG_KERN #undef BPF_PROG_KERN @@ -238,15 +236,16 @@ static int __transform_cluster_ip(struct tcp_mng_s *tcp_mng, const struct tcp_li return ADDR_TRANSFORM_NONE; } -#ifdef GOPHER_DEBUG - char s_ip1[IP6_STR_LEN], s_ip2[IP6_STR_LEN], c_ip1[IP6_STR_LEN], c_ip2[IP6_STR_LEN]; - inet_ntop(tcp_link->family, &tcp_link->s_ip, s_ip1, sizeof(s_ip1)); - inet_ntop(connect->family, &connect->sip_addr, s_ip2, sizeof(s_ip2)); - inet_ntop(tcp_link->family, &tcp_link->c_ip, c_ip1, sizeof(c_ip1)); - inet_ntop(connect->family, &connect->cip_addr, c_ip2, sizeof(c_ip2)); - DEBUG("[TCPPROBE]: Flow (%s:%u - %s:%u) is transformed into (%s:%u - %s:%u)\n", - c_ip1, tcp_link->c_port, s_ip1, tcp_link->s_port, c_ip2, connect->c_port, s_ip2, connect->s_port); -#endif + if (ext_probe_debug_enabled) { + char s_ip1[IP6_STR_LEN], s_ip2[IP6_STR_LEN], c_ip1[IP6_STR_LEN], c_ip2[IP6_STR_LEN]; + inet_ntop(tcp_link->family, &tcp_link->s_ip, s_ip1, sizeof(s_ip1)); + inet_ntop(connect->family, &connect->sip_addr, s_ip2, sizeof(s_ip2)); + inet_ntop(tcp_link->family, &tcp_link->c_ip, c_ip1, sizeof(c_ip1)); + inet_ntop(connect->family, &connect->cip_addr, c_ip2, sizeof(c_ip2)); + DEBUG("[TCPPROBE]: Flow (%s:%u - %s:%u) is transformed into (%s:%u - %s:%u)\n", + c_ip1, tcp_link->c_port, s_ip1, tcp_link->s_port, c_ip2, connect->c_port, s_ip2, connect->s_port); + } + return transform; } diff --git a/src/probes/extends/python.probe/common/ipc.py b/src/probes/extends/python.probe/common/ipc.py index bb21189853ea64d5d577cb6b165fa5bd91eb63d1..69e0c25ee02725165c1d87caf4c4ae4cc8a0e1d3 100644 --- a/src/probes/extends/python.probe/common/ipc.py +++ b/src/probes/extends/python.probe/common/ipc.py @@ -28,9 +28,8 @@ class ProbeParams(Structure): ("drops_count_thr", c_uint), ("kafka_port", c_uint), ("logs", c_char), - ("metrics_flags", c_char), - ("env_flags", c_char), ("support_ssl", c_char), + ("enable_debug", c_char), ("res_percent_upper", c_char), ("res_percent_lower", c_char), ("continuous_sampling_flag", c_char),