write_redis: fix format of commands sent to redis
authorMarc Fournier <marc.fournier@camptocamp.com>
Mon, 10 Nov 2014 06:58:13 +0000 (07:58 +0100)
committerMarc Fournier <marc.fournier@camptocamp.com>
Mon, 10 Nov 2014 07:00:02 +0000 (08:00 +0100)
The commands getting submitted to redis now look like this:
"ZADD" "collectd/hostname/entropy/entropy" "1415602051.335973024" "1415602051.335973024:823"
"SADD" "collectd/values" "hostname/entropy/entropy"

... which is the same as in the initial implementation, except for the
added decimals in the timestamp (the plugin was developped before
high-precision timestamps support was added to collectd).

src/write_redis.c

index 5ed95fb..28d475f 100644 (file)
@@ -86,7 +86,7 @@ static int wr_write (const data_set_t *ds, /* {{{ */
   }                                                                  \
 } while (0)
 
-  APPEND ("%lu:", (unsigned long) vl->time);
+  APPEND ("%.9f:", CDTIME_T_TO_DOUBLE(vl->time));
   for (i = 0; i < ds->ds_num; i++)
   {
     if (ds->ds[i].type == DS_TYPE_COUNTER)
@@ -119,12 +119,12 @@ static int wr_write (const data_set_t *ds, /* {{{ */
   }
 
   assert (node->conn != NULL);
-  rr = redisCommand (node->conn, "ZADD %b %f %b", key, sizeof (key),
-    (double) vl->time, value, sizeof (value));
+  rr = redisCommand (node->conn, "ZADD %s %.9f %s", key,
+    CDTIME_T_TO_DOUBLE(vl->time), value);
   if (rr==NULL)
     WARNING("ZADD command error. key:%s", key);
 
-  rr = redisCommand (node->conn, "SADD collectd/values %b", ident, sizeof(ident));
+  rr = redisCommand (node->conn, "SADD collectd/values %s", ident);
   if (rr==NULL)
     WARNING("SADD command error. ident:%s", ident);