From: Fabien Wernli Date: Mon, 27 Sep 2021 07:02:20 +0000 (+0200) Subject: Feature/collectd nagios perfdata (#3879) X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d41fa79b7fda9b67601a7d7880d8e4b91a4500ce;p=thirdparty%2Fcollectd.git Feature/collectd nagios perfdata (#3879) * Changelog: Improve perfdata output for collectd-nagios Now we also include thresholds in performance data: ``` OKAY: 0 critical, 0 warning, 1 okay | shortterm=0.360000;1.000000;2.000000;; ``` Change-Id: I7b71ac623d3f88dd57d8fb55bc469e6f4f46e0d0 Change-Id: I4f8f1884b553af49d9535d331bc96c9c4e513772 * Allocate warning/critical threshold strings dynamically Change-Id: I756c60264fd23af64fe713dd360316507176471a --- diff --git a/src/collectd-nagios.c b/src/collectd-nagios.c index 062984945..30db26d73 100644 --- a/src/collectd-nagios.c +++ b/src/collectd-nagios.c @@ -98,6 +98,8 @@ static char *socket_file_g; static char *value_string_g; static char *hostname_g; +static char *range_warning_s; +static char *range_critical_s; static range_t range_critical_g; static range_t range_warning_g; static int consolitation_g = CON_NONE; @@ -367,7 +369,8 @@ static int do_check_con_none(size_t values_num, double *values, if (values_num > 0) { printf(" |"); for (size_t i = 0; i < values_num; i++) - printf(" %s=%f;;;;", values_names[i], values[i]); + printf(" %s=%f;%s;%s;;", values_names[i], values[i], range_warning_s, + range_critical_s); } printf("\n"); @@ -593,9 +596,13 @@ int main(int argc, char **argv) { switch (c) { case 'c': + range_critical_s = (char *)malloc(strlen(optarg) + 1); + strcpy(range_critical_s, optarg); parse_range(optarg, &range_critical_g); break; case 'w': + range_warning_s = (char *)malloc(strlen(optarg) + 1); + strcpy(range_warning_s, optarg); parse_range(optarg, &range_warning_g); break; case 's':