X-Git-Url: https://git.tokkee.org/?p=sysdb.git;a=blobdiff_plain;f=src%2Fplugins%2Fbackend%2Fcollectd%2Funixsock.c;h=73d0dc6228e8aff05c5c7b41195412a1cfc63ffa;hp=e7b6416999065d49f12f17748250e5c5dfb00780;hb=1f99d1a0d8a7e923dede7c938340c26061b8398b;hpb=ea4c5e73f1ca6812bf89dc50c1db2767930f23e3 diff --git a/src/plugins/backend/collectd/unixsock.c b/src/plugins/backend/collectd/unixsock.c index e7b6416..73d0dc6 100644 --- a/src/plugins/backend/collectd/unixsock.c +++ b/src/plugins/backend/collectd/unixsock.c @@ -44,6 +44,7 @@ #include #include #include +#include SDB_PLUGIN_MAGIC; @@ -90,6 +91,8 @@ user_data_destroy(void *obj) 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) */ @@ -123,7 +126,7 @@ store_host(state_t *state, const char *hostname, sdb_time_t last_update) 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 " @@ -148,7 +151,7 @@ add_metrics(const char *hostname, char *plugin, char *type, 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 } }; @@ -159,10 +162,10 @@ add_metrics(const char *hostname, char *plugin, char *type, 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); @@ -175,7 +178,7 @@ add_metrics(const char *hostname, char *plugin, char *type, ++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); } @@ -185,14 +188,14 @@ add_metrics(const char *hostname, char *plugin, char *type, ++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 */ @@ -407,7 +410,8 @@ sdb_collectd_config_instance(oconfig_item_t *ci) if (ud->ts_type) { /* TODO: add support for other backend types * -> will require different ID generation */ - if (strcasecmp(ud->ts_type, "rrdtool")) { + 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);