Hi - Please find attached a tiny patch for 5.0.1 notifications which:
1. Fixes bug with non interesting values being notified when data is
missing.
2. Adds a new option 'SendNotify' to the network plugin to disable
sending of notifications. Useful when you have collectd processes
monitoring each other (or local notifications are dealt with locally and
therefore should not be sent upstream). Usage:
<Plugin network>
SendNotify false
<Listen ...>
...
</Listen>
<Server ...>
...
</Server>
</Plugin>
Kind regards
Chris
diff -pur collectd-5.0.1/src/network.c collectd-5.0.1-mine/src/network.c
--- collectd-5.0.1/src/network.c 2011-10-14 20:49:49.000000000 +0000
+++ collectd-5.0.1-mine/src/network.c 2012-01-04 21:49:45.000000000 +0000
@@ -261,6 +261,7 @@ typedef struct receive_list_entry_s rece
static int network_config_ttl = 0;
static size_t network_config_packet_size = 1452;
static int network_config_forward = 0;
+static int network_config_send_notify = 1;
static int network_config_stats = 0;
static sockent_t *sending_sockets = NULL;
@@ -3072,6 +3073,8 @@ static int network_config (oconfig_item_
network_config_set_buffer_size (child);
else if (strcasecmp ("Forward", child->key) == 0)
network_config_set_boolean (child, &network_config_forward);
+ else if (strcasecmp ("SendNotify", child->key) == 0)
+ network_config_set_boolean (child, &network_config_send_notify);
else if (strcasecmp ("ReportStats", child->key) == 0)
network_config_set_boolean (child, &network_config_stats);
else
@@ -3092,6 +3095,10 @@ static int network_notification (const n
int buffer_free = sizeof (buffer);
int status;
+ /* Check if sending notifications through the network has been disabled */
+ if (!network_config_send_notify)
+ return (0);
+
memset (buffer, '\0', sizeof (buffer));
status = write_part_number (&buffer_ptr, &buffer_free, TYPE_TIME_HR,
diff -pur collectd-5.0.1/src/threshold.c collectd-5.0.1-mine/src/threshold.c
--- collectd-5.0.1/src/threshold.c 2011-10-14 20:49:49.000000000 +0000
+++ collectd-5.0.1-mine/src/threshold.c 2012-01-04 21:52:06.000000000 +0000
@@ -994,6 +994,11 @@ static int ut_missing (const value_list_
if (th == NULL)
return (0);
+ /* If the value is not interesting then do not notify */
+
+ if (!(th->flags & UT_FLAG_INTERESTING))
+ return (0);
+
missing_time = cdtime () - vl->time;
FORMAT_VL (identifier, sizeof (identifier), vl);
_______________________________________________
collectd mailing list
[email protected]
http://mailman.verplant.org/listinfo/collectd