Code

write_graphite: Use the complain mechanism to report connection errors.
authorFlorian Forster <octo@collectd.org>
Thu, 17 Jan 2013 08:51:56 +0000 (09:51 +0100)
committerFlorian Forster <octo@collectd.org>
Thu, 17 Jan 2013 09:04:30 +0000 (10:04 +0100)
Fixes Github issue #236. Thanks to @pyr for reporting it!

src/write_graphite.c

index d6583a75f04ebb63901649a6f6f763ae3a9aa473..b6cba8a398a7683156b17fcb75a11056d2b7a822 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright (C) 2011       Scott Sanders
  * Copyright (C) 2009       Paul Sadauskas
  * Copyright (C) 2009       Doug MacEachern
- * Copyright (C) 2007-2012  Florian octo Forster
+ * Copyright (C) 2007-2013  Florian octo Forster
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU General Public License as published by the
@@ -46,6 +46,7 @@
 #include "configfile.h"
 
 #include "utils_cache.h"
+#include "utils_complain.h"
 #include "utils_parse_option.h"
 
 /* Folks without pthread will need to disable this plugin. */
@@ -94,6 +95,7 @@ struct wg_callback
     cdtime_t send_buf_init_time;
 
     pthread_mutex_t send_lock;
+    c_complain_t init_complaint;
 };
 
 
@@ -215,12 +217,19 @@ static int wg_callback_init (struct wg_callback *cb)
     if (cb->sock_fd < 0)
     {
         char errbuf[1024];
-        ERROR ("write_graphite plugin: Connecting to %s:%s failed. "
+        c_complain (LOG_ERR, &cb->init_complaint,
+                "write_graphite plugin: Connecting to %s:%s failed. "
                 "The last error was: %s", node, service,
                 sstrerror (errno, errbuf, sizeof (errbuf)));
         close (cb->sock_fd);
         return (-1);
     }
+    else
+    {
+        c_release (LOG_INFO, &cb->init_complaint,
+                "write_graphite plugin: Successfully connected to %s:%s.",
+                node, service);
+    }
 
     wg_reset_buffer (cb);
 
@@ -272,7 +281,7 @@ static int wg_flush (cdtime_t timeout,
         status = wg_callback_init (cb);
         if (status != 0)
         {
-            ERROR ("write_graphite plugin: wg_callback_init failed.");
+            /* An error message has already been printed. */
             pthread_mutex_unlock (&cb->send_lock);
             return (-1);
         }
@@ -624,6 +633,7 @@ static int wg_config_carbon (oconfig_item_t *ci)
     cb->store_rates = 1;
 
     pthread_mutex_init (&cb->send_lock, /* attr = */ NULL);
+    C_COMPLAIN_INIT (&cb->init_complaint);
 
     for (i = 0; i < ci->children_num; i++)
     {