http plugin: Don't convert COUNTER values to rates.
[collectd.git] / src / http.c
index 0a24b60..60535ba 100644 (file)
@@ -38,7 +38,7 @@
  */
 static const char *config_keys[] =
 {
-        "Location", "User", "Password"
+        "URL", "User", "Password"
 };
 static int config_keys_num = STATIC_ARRAY_SIZE (config_keys);
 
@@ -53,7 +53,6 @@ char curl_errbuf[CURL_ERROR_SIZE];
 
 #define SEND_BUFFER_SIZE 4096
 static char   send_buffer[SEND_BUFFER_SIZE];
-static char  *send_buffer_ptr;
 static int    send_buffer_fill;
 
 static pthread_mutex_t  send_lock = PTHREAD_MUTEX_INITIALIZER;
@@ -110,7 +109,6 @@ static int http_value_list_to_string (char *buffer, int buffer_len, /* {{{ */
         int offset = 0;
         int status;
         int i;
-        gauge_t *rates = NULL;
 
         assert (0 == strcmp (ds->type, vl->type));
 
@@ -124,24 +122,21 @@ static int http_value_list_to_string (char *buffer, int buffer_len, /* {{{ */
                                 && (ds->ds[i].type != DS_TYPE_ABSOLUTE))
                         return (-1);
 
-                if (ds->ds[i].type == DS_TYPE_GAUGE) 
+               status = -1;
+                if (ds->ds[i].type == DS_TYPE_GAUGE)
                 {
                         status = ssnprintf (buffer + offset, buffer_len - offset,
                                         ":%lf", vl->values[i].gauge);
-                } 
-                else if (ds->ds[i].type == DS_TYPE_COUNTER)
+                }
+                else if ((ds->ds[i].type == DS_TYPE_COUNTER)
+                               || (ds->ds[i].type == DS_TYPE_ABSOLUTE))
                 {
-                        if (rates == NULL)
-                                rates = uc_get_rate (ds, vl);
-                        if (rates == NULL)
-                        {
-                                WARNING ("csv plugin: "
-                                                "uc_get_rate failed.");
-                                return (-1);
-                        }
                         status = ssnprintf (buffer + offset,
                                         buffer_len - offset,
-                                        ":%lf", rates[i]);
+                                        ":%"PRIu64,
+                                       (ds->ds[i].type == DS_TYPE_COUNTER)
+                                        ? vl->values[i].counter
+                                        : vl->values[i].absolute);
                 }
                 else if (ds->ds[i].type == DS_TYPE_DERIVE)
                 {
@@ -150,30 +145,19 @@ static int http_value_list_to_string (char *buffer, int buffer_len, /* {{{ */
                                         ":%"PRIi64,
                                         vl->values[i].derive);
                 }
-                else if (ds->ds[i].type == DS_TYPE_ABSOLUTE)
-                {
-                        status = ssnprintf (buffer + offset,
-                                        buffer_len - offset,
-                                        ":%"PRIu64,
-                                        vl->values[i].absolute);
-                }
 
                 if ((status < 1) || (status >= (buffer_len - offset)))
-                {
-                        sfree (rates);
-                        return (-1);
-                }
+                       return (-1);
 
                 offset += status;
         } /* for ds->ds_num */
 
-        sfree (rates);
         return (0);
 } /* }}} int http_value_list_to_string */
 
 static int http_config (const char *key, const char *value) /* {{{ */
 {
-        if (strcasecmp ("Location", key) == 0)
+        if (strcasecmp ("URL", key) == 0)
         {
                 if (location != NULL)
                         free (location);
@@ -243,7 +227,6 @@ static int http_config (const char *key, const char *value) /* {{{ */
 static void http_init_buffer (void)  /* {{{ */
 {
         memset (send_buffer, 0, sizeof (send_buffer));
-        send_buffer_ptr = send_buffer;
         send_buffer_fill = 0;
 } /* }}} http_init_buffer */