]> git.ipfire.org Git - thirdparty/collectd.git/commitdiff
Feature/collectd nagios perfdata (#3879)
authorFabien Wernli <github@faxmodem.org>
Mon, 27 Sep 2021 07:02:20 +0000 (09:02 +0200)
committerGitHub <noreply@github.com>
Mon, 27 Sep 2021 07:02:20 +0000 (09:02 +0200)
* 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

src/collectd-nagios.c

index 06298494550f8bbf56a1433bb970b0fe73a2a4f1..30db26d731380a760c420d2b286ba46bf48eeb67 100644 (file)
@@ -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':