X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fcsv.c;h=87a7b4e3a9d0a8cf82927d49913b947b699efe60;hb=36d3cd820b5f977fcd349250a22a932f5af5a062;hp=f38599dc7b32be95dbad169a98822fabbeff286e;hpb=25ac639c505394e4ae9600ee62f5d5aeea97c6d4;p=collectd.git diff --git a/src/csv.c b/src/csv.c index f38599dc..87a7b4e3 100644 --- a/src/csv.c +++ b/src/csv.c @@ -53,7 +53,8 @@ static int value_list_to_string (char *buffer, int buffer_len, memset (buffer, '\0', buffer_len); - status = ssnprintf (buffer, buffer_len, "%u", (unsigned int) vl->time); + status = ssnprintf (buffer, buffer_len, "%.3f", + CDTIME_T_TO_DOUBLE (vl->time)); if ((status < 1) || (status >= buffer_len)) return (-1); offset = status; @@ -66,82 +67,45 @@ static int 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_COUNTER) - { - if (store_rates == 0) - { - status = ssnprintf (buffer + offset, - buffer_len - offset, - ",%llu", - vl->values[i].counter); - } - else /* if (store_rates == 1) */ - { - 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]); - } - } - else if (ds->ds[i].type == DS_TYPE_GAUGE) + 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_DERIVE) + else if (store_rates != 0) { - if (store_rates == 0) - { - status = ssnprintf (buffer + offset, - buffer_len - offset, - ",%llu", - vl->values[i].derive); - } - else /* if (store_rates == 1) */ + if (rates == NULL) + rates = uc_get_rate (ds, vl); + if (rates == NULL) { - 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]); + WARNING ("csv plugin: " + "uc_get_rate failed."); + return (-1); } + status = ssnprintf (buffer + offset, + buffer_len - offset, + ",%lf", rates[i]); + } + else if (ds->ds[i].type == DS_TYPE_COUNTER) + { + status = ssnprintf (buffer + offset, + buffer_len - offset, + ",%llu", + vl->values[i].counter); + } + else if (ds->ds[i].type == DS_TYPE_DERIVE) + { + status = ssnprintf (buffer + offset, + buffer_len - offset, + ",%"PRIi64, + vl->values[i].derive); } else if (ds->ds[i].type == DS_TYPE_ABSOLUTE) { - if (store_rates == 0) - { - status = ssnprintf (buffer + offset, - buffer_len - offset, - ",%llu", - vl->values[i].absolute); - } - else /* if (store_rates == 1) */ - { - 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]); - } + status = ssnprintf (buffer + offset, + buffer_len - offset, + ",%"PRIu64, + vl->values[i].absolute); } if ((status < 1) || (status >= (buffer_len - offset))) @@ -283,16 +247,10 @@ static int csv_config (const char *key, const char *value) } else if (strcasecmp ("StoreRates", key) == 0) { - if ((strcasecmp ("True", value) == 0) - || (strcasecmp ("Yes", value) == 0) - || (strcasecmp ("On", value) == 0)) - { + if (IS_TRUE (value)) store_rates = 1; - } else - { store_rates = 0; - } } else { @@ -341,8 +299,10 @@ static int csv_write (const data_set_t *ds, const value_list_t *vl, } fprintf (use_stdio == 1 ? stdout : stderr, - "PUTVAL %s interval=%i %s\n", - filename, interval_g, values); + "PUTVAL %s interval=%.3f %s\n", + filename, + CDTIME_T_TO_DOUBLE (vl->interval), + values); return (0); }