#include "common.h"
#include "utils_rrdcreate.h"
+#undef HAVE_CONFIG_H
+#include <rrd.h>
#include <rrd_client.h>
/*
int offset;
int status;
int i;
+ time_t t;
assert (0 == strcmp (ds->type, vl->type));
memset (buffer, '\0', buffer_len);
- status = ssnprintf (buffer, buffer_len, "%u", (unsigned int) vl->time);
+ t = CDTIME_T_TO_TIME_T (vl->time);
+ status = ssnprintf (buffer, buffer_len, "%lu", (unsigned long) t);
if ((status < 1) || (status >= buffer_len))
return (-1);
offset = status;
for (i = 0; i < ds->ds_num; i++)
{
if ((ds->ds[i].type != DS_TYPE_COUNTER)
- && (ds->ds[i].type != DS_TYPE_GAUGE))
+ && (ds->ds[i].type != DS_TYPE_GAUGE)
+ && (ds->ds[i].type != DS_TYPE_DERIVE)
+ && (ds->ds[i].type != DS_TYPE_ABSOLUTE))
return (-1);
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_GAUGE) */
+ else if (ds->ds[i].type == DS_TYPE_GAUGE)
{
status = ssnprintf (buffer + offset, buffer_len - offset,
- ":%lf", vl->values[i].gauge);
+ ":%f", vl->values[i].gauge);
+ }
+ 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) */ {
+ status = ssnprintf (buffer + offset, buffer_len - offset,
+ ":%"PRIu64, vl->values[i].absolute);
+
}
if ((status < 1) || (status >= (buffer_len - offset)))
}
else if (strcasecmp ("CreateFiles", key) == 0)
{
- if ((strcasecmp ("false", value) == 0)
- || (strcasecmp ("no", value) == 0)
- || (strcasecmp ("off", value) == 0))
+ if (IS_FALSE (value))
config_create_files = 0;
else
config_create_files = 1;
}
else if (strcasecmp ("CollectStatistics", key) == 0)
{
- if ((strcasecmp ("false", value) == 0)
- || (strcasecmp ("no", value) == 0)
- || (strcasecmp ("off", value) == 0))
+ if (IS_FALSE (value))
config_collect_stats = 0;
else
config_collect_stats = 1;
return (0);
} /* int rc_init */
-static int rc_write (const data_set_t *ds, const value_list_t *vl)
+static int rc_write (const data_set_t *ds, const value_list_t *vl,
+ user_data_t __attribute__((unused)) *user_data)
{
char filename[512];
char values[512];
plugin_register_config ("rrdcached", rc_config,
config_keys, config_keys_num);
plugin_register_init ("rrdcached", rc_init);
- plugin_register_write ("rrdcached", rc_write);
+ plugin_register_write ("rrdcached", rc_write, /* user_data = */ NULL);
plugin_register_shutdown ("rrdcached", rc_shutdown);
} /* void module_register */