index b1db539b84738a571a8b456b45658c6a6099593f..73d0dc6228e8aff05c5c7b41195412a1cfc63ffa 100644 (file)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <strings.h>
SDB_PLUGIN_MAGIC;
if (ud->ts_base)
free(ud->ts_base);
ud->ts_type = ud->ts_base = NULL;
+
+ free(ud);
} /* user_data_destroy */
/* store the specified host-name (once per iteration) */
return -1;
}
- status = sdb_store_host(hostname, last_update);
+ status = sdb_plugin_store_host(hostname, last_update);
if (status < 0) {
sdb_log(SDB_LOG_ERR, "collectd::unixsock backend: Failed to "
char metric_id[(ud->ts_base ? strlen(ud->ts_base) : 0)
+ strlen(hostname) + sizeof(name) + 7];
- sdb_metric_store_t store = { ud->ts_type, metric_id };
+ sdb_metric_store_t store = { ud->ts_type, metric_id, NULL, last_update };
sdb_data_t data = { SDB_TYPE_STRING, { .string = NULL } };
if (ud->ts_base) {
snprintf(metric_id, sizeof(metric_id), "%s/%s/%s.rrd",
ud->ts_base, hostname, name);
- status = sdb_store_metric(hostname, name, &store, last_update);
+ status = sdb_plugin_store_metric(hostname, name, &store, last_update);
}
else
- status = sdb_store_metric(hostname, name, NULL, last_update);
+ status = sdb_plugin_store_metric(hostname, name, NULL, last_update);
if (status < 0) {
sdb_log(SDB_LOG_ERR, "collectd::unixsock backend: Failed to "
"store/update metric '%s/%s'.", hostname, name);
++plugin_instance;
data.data.string = plugin_instance;
- sdb_store_metric_attr(hostname, name,
+ sdb_plugin_store_metric_attribute(hostname, name,
"plugin_instance", &data, last_update);
}
++type_instance;
data.data.string = type_instance;
- sdb_store_metric_attr(hostname, name,
+ sdb_plugin_store_metric_attribute(hostname, name,
"type_instance", &data, last_update);
}
data.data.string = plugin;
- sdb_store_metric_attr(hostname, name, "plugin", &data, last_update);
+ sdb_plugin_store_metric_attribute(hostname, name, "plugin", &data, last_update);
data.data.string = type;
- sdb_store_metric_attr(hostname, name, "type", &data, last_update);
+ sdb_plugin_store_metric_attribute(hostname, name, "type", &data, last_update);
return 0;
} /* add_metrics */
}
if (ud->ts_type) {
+ /* TODO: add support for other backend types
+ * -> will require different ID generation */
+ if (strcasecmp(ud->ts_type, "rrdtool")
+ && strcasecmp(ud->ts_type, "rrdcached")) {
+ sdb_log(SDB_LOG_ERR, "collectd::unixsock backend: "
+ "TimeseriesBackend '%s' is not supported - "
+ "use 'rrdtool' instead.", ud->ts_type);
+ ud->ts_type = ud->ts_base = NULL;
+ user_data_destroy(ud);
+ return -1;
+ }
+
ud->ts_type = strdup(ud->ts_type);
ud->ts_base = strdup(ud->ts_base);
if ((! ud->ts_type) || (! ud->ts_base)) {