src/utils_format_json.[ch]: Export gauges with 15 decimal places of precision.
authorFlorian Forster <octo@collectd.org>
Fri, 22 May 2015 08:25:35 +0000 (10:25 +0200)
committerFlorian Forster <octo@collectd.org>
Fri, 22 May 2015 08:25:35 +0000 (10:25 +0200)
Fixes: #1039

src/utils_format_json.c
src/utils_format_json.h

index 898b172..48aa4fc 100644 (file)
@@ -108,7 +108,7 @@ static int values_to_json (char *buffer, size_t buffer_size, /* {{{ */
     if (ds->ds[i].type == DS_TYPE_GAUGE)
     {
       if(isfinite (vl->values[i].gauge))
-        BUFFER_ADD ("%g", vl->values[i].gauge);
+        BUFFER_ADD (JSON_GAUGE_FORMAT, vl->values[i].gauge);
       else
         BUFFER_ADD ("null");
     }
@@ -124,7 +124,7 @@ static int values_to_json (char *buffer, size_t buffer_size, /* {{{ */
       }
 
       if(isfinite (rates[i]))
-        BUFFER_ADD ("%g", rates[i]);
+        BUFFER_ADD (JSON_GAUGE_FORMAT, rates[i]);
       else
         BUFFER_ADD ("null");
     }
index c902e27..f8f5a35 100644 (file)
 #include "collectd.h"
 #include "plugin.h"
 
+#ifndef JSON_GAUGE_FORMAT
+# define JSON_GAUGE_FORMAT "%.15g"
+#endif
+
 int format_json_initialize (char *buffer,
     size_t *ret_buffer_fill, size_t *ret_buffer_free);
 int format_json_value_list (char *buffer,