summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorToni Uhlig <matzeton@googlemail.com>2022-11-25 19:51:53 +0100
committerToni Uhlig <matzeton@googlemail.com>2022-12-06 19:51:53 +0100
commitc5930e3510339386eb8e771b13a8fa43b273d5a3 (patch)
tree79e0b99178ec723c6e4a3e8452b052e6696b9a3d /examples
parentd21a38cf029db3fc8f61f00c89452e36b5189bf9 (diff)
Add collectd statistics diff test.
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
Diffstat (limited to 'examples')
-rw-r--r--examples/c-collectd/c-collectd.c21
-rwxr-xr-xexamples/c-collectd/rrdgraph.sh2
2 files changed, 15 insertions, 8 deletions
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 \