write_tsdb plugin: Add type and type_instance to the metric name in any case.
[collectd.git] / src / write_tsdb.c
index 9dff290..bfac1a1 100644 (file)
@@ -47,7 +47,6 @@
 #include "configfile.h"
 
 #include "utils_cache.h"
-#include "utils_parse_option.h"
 
 #include <pthread.h>
 #include <sys/socket.h>
@@ -366,30 +365,38 @@ static int wt_format_name(char *ret, int ret_len,
 
     if (ds_name != NULL) {
         if (vl->plugin_instance[0] == '\0') {
-            ssnprintf(ret, ret_len, "%s%s.%s",
-                      prefix, vl->plugin, ds_name);
-        } else if (vl->type_instance == '\0') {
-            ssnprintf(ret, ret_len, "%s%s.%s.%s.%s",
-                      prefix, vl->plugin, vl->plugin_instance,
-                      vl->type_instance, ds_name);
-        } else {
+            if (vl->type_instance[0] == '\0') {
+                ssnprintf(ret, ret_len, "%s%s.%s.%s",
+                          prefix, vl->plugin, vl->type,
+                          ds_name);
+            } else {
+                ssnprintf(ret, ret_len, "%s%s.%s.%s",
+                          prefix, vl->plugin, vl->type_instance,
+                          ds_name);
+            }
+        } else if (vl->type_instance[0] == '\0') {
             ssnprintf(ret, ret_len, "%s%s.%s.%s.%s",
                       prefix, vl->plugin, vl->plugin_instance, vl->type,
                       ds_name);
+        } else {
+            ssnprintf(ret, ret_len, "%s%s.%s.%s.%s.%s",
+                      prefix, vl->plugin, vl->plugin_instance, vl->type,
+                      vl->type_instance, ds_name);
         }
     } else if (vl->plugin_instance[0] == '\0') {
-        if (vl->type_instance[0] == '\0')
+        if (vl->type_instance[0] == '\0') {
             ssnprintf(ret, ret_len, "%s%s.%s",
                       prefix, vl->plugin, vl->type);
-        else
+        } else {
             ssnprintf(ret, ret_len, "%s%s.%s",
                       prefix, vl->plugin, vl->type_instance);
+        }
     } else if (vl->type_instance[0] == '\0') {
         ssnprintf(ret, ret_len, "%s%s.%s.%s",
                   prefix, vl->plugin, vl->plugin_instance, vl->type);
     } else {
-        ssnprintf(ret, ret_len, "%s%s.%s.%s",
-                  prefix, vl->plugin, vl->plugin_instance, vl->type_instance);
+        ssnprintf(ret, ret_len, "%s%s.%s.%s.%s",
+                  prefix, vl->plugin, vl->plugin_instance, vl->type, vl->type_instance);
     }
 
     sfree(temp);
@@ -406,7 +413,6 @@ static int wt_send_message (const char* key, const char* value,
     char *tags = "";
     char message[1024];
     char *host_tags = cb->host_tags ? cb->host_tags : "";
-    const char *message_fmt;
     const char *meta_tsdb = "tsdb_tags";
 
     /* skip if value is NaN */
@@ -427,16 +433,15 @@ static int wt_send_message (const char* key, const char* value,
         }
     }
 
-    message_fmt = "put %s %u %s fqdn=%s %s %s\r\n";
-    message_len = ssnprintf (message, sizeof(message),
-                                      message_fmt,
-                                      key,
-                                      (unsigned int)CDTIME_T_TO_TIME_T(
-                                          time),
-                                      value,
-                                      host,
-                                      tags,
-                                      host_tags);
+    message_len = ssnprintf (message,
+                             sizeof(message),
+                             "put %s %.0f %s fqdn=%s %s %s\r\n",
+                             key,
+                             CDTIME_T_TO_DOUBLE(time),
+                             value,
+                             host,
+                             tags,
+                             host_tags);
 
     sfree(temp);