From c5930e3510339386eb8e771b13a8fa43b273d5a3 Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Fri, 25 Nov 2022 19:51:53 +0100 Subject: Add collectd statistics diff test. Signed-off-by: Toni Uhlig --- examples/c-collectd/c-collectd.c | 21 ++++++++++++++------- examples/c-collectd/rrdgraph.sh | 2 +- 2 files changed, 15 insertions(+), 8 deletions(-) (limited to 'examples') diff --git a/examples/c-collectd/c-collectd.c b/examples/c-collectd/c-collectd.c index 59145ec0a..b7a82ddc2 100644 --- a/examples/c-collectd/c-collectd.c +++ b/examples/c-collectd/c-collectd.c @@ -484,11 +484,11 @@ static void print_collectd_exec_output(void) printf(COLLECTD_PUTVAL_N_FORMAT(), COLLECTD_PUTVAL_N2(gauge_name, error_count[i])); } - for (i = 0; i < NDPI_MAX_RISK; ++i) + for (i = 1; i < NDPI_MAX_RISK; ++i) { char gauge_name[BUFSIZ]; - snprintf(gauge_name, sizeof(gauge_name), "flow_risk_%zu_count", i); - printf(COLLECTD_PUTVAL_N_FORMAT(), COLLECTD_PUTVAL_N2(gauge_name, flow_risk_count[i])); + snprintf(gauge_name, sizeof(gauge_name), "flow_risk_%zu_count", i - 1); + printf(COLLECTD_PUTVAL_N_FORMAT(), COLLECTD_PUTVAL_N2(gauge_name, flow_risk_count[i - 1])); } memset(&collectd_statistics, 0, sizeof(collectd_statistics)); @@ -723,16 +723,17 @@ static enum nDPIsrvd_callback_return collectd_json_callback(struct nDPIsrvd_sock { if ((flow_user_data->detected_risks & (1 << numeric_risk_value)) == 0) { - if (numeric_risk_value < NDPI_MAX_RISK) + if (numeric_risk_value < NDPI_MAX_RISK && numeric_risk_value > 0) { - collectd_statistics.flow_risk_count[numeric_risk_value]++; + collectd_statistics.flow_risk_count[numeric_risk_value - 1]++; } else { collectd_statistics.flow_risk_unknown_count++; } + + flow_user_data->detected_risks |= (1 << (numeric_risk_value - 1)); } - flow_user_data->detected_risks |= (1 << numeric_risk_value); } } } @@ -749,6 +750,7 @@ static enum nDPIsrvd_callback_return collectd_json_callback(struct nDPIsrvd_sock int main(int argc, char ** argv) { + enum nDPIsrvd_connect_return connect_ret; int retval = 1, epollfd = -1; openlog("nDPIsrvd-collectd", LOG_CONS, LOG_DAEMON); @@ -785,7 +787,7 @@ int main(int argc, char ** argv) strerror(errno)); } - enum nDPIsrvd_connect_return connect_ret = nDPIsrvd_connect(sock); + connect_ret = nDPIsrvd_connect(sock); if (connect_ret != CONNECT_OK) { LOG(LOG_DAEMON | LOG_ERR, "nDPIsrvd socket connect to %s failed!", serv_optarg); @@ -838,6 +840,11 @@ int main(int argc, char ** argv) LOG(LOG_DAEMON | LOG_NOTICE, "%s", "Initialization succeeded."); retval = mainloop(epollfd, sock); + if (getenv("COLLECTD_INTERVAL") == NULL) + { + print_collectd_exec_output(); + } + failure: nDPIsrvd_socket_free(&sock); close(collectd_timerfd); diff --git a/examples/c-collectd/rrdgraph.sh b/examples/c-collectd/rrdgraph.sh index 25378a481..8f428a87f 100755 --- a/examples/c-collectd/rrdgraph.sh +++ b/examples/c-collectd/rrdgraph.sh @@ -274,7 +274,7 @@ rrdtool_graph Events 'Amouunt' "${OUTDIR}/events" \ DEF:shutdown=${RRDDIR}/gauge-shutdown_count.rrd:value:AVERAGE \ DEF:status=${RRDDIR}/gauge-status_count.rrd:value:AVERAGE \ DEF:packet=${RRDDIR}/gauge-packet_count.rrd:value:AVERAGE \ - DEF:packet_flow=${RRDDIR}/gauge-init_count.rrd:value:AVERAGE \ + DEF:packet_flow=${RRDDIR}/gauge-packet_flow_count.rrd:value:AVERAGE \ DEF:new=${RRDDIR}/gauge-flow_new_count.rrd:value:AVERAGE \ DEF:end=${RRDDIR}/gauge-flow_end_count.rrd:value:AVERAGE \ DEF:idle=${RRDDIR}/gauge-flow_idle_count.rrd:value:AVERAGE \ -- cgit v1.2.3