ERROR("redis plugin: calloca failed adding redis_query.");
return NULL;
}
- status = cf_util_get_string_buffer(ci, rq->type, sizeof(rq->type));
+ status = cf_util_get_string_buffer(ci, rq->query, sizeof(rq->query));
if (status != 0)
goto err;
+ /*
+ * Default to a gauge type.
+ */
+ (void)strncpy(rq->type, "gauge", sizeof(rq->type));
+ (void)sstrncpy(rq->instance, rq->query, sizeof(rq->instance));
+ replace_special(rq->instance, sizeof(rq->instance));
+
for (i = 0; i < ci->children_num; i++) {
oconfig_item_t *option = ci->children + i;
- if (strcasecmp("Exec", option->key) == 0) {
- status = cf_util_get_string_buffer(option, rq->query, sizeof(rq->query));
+ if (strcasecmp("Type", option->key) == 0) {
+ status = cf_util_get_string_buffer(option, rq->type, sizeof(rq->type));
} else if (strcasecmp("Instance", option->key) == 0) {
status = cf_util_get_string_buffer(option, rq->instance, sizeof(rq->instance));
+ } else {
+ WARNING("redis plugin: unknown configuration option: %s", option->key);
+ status = -1;
}
if (status != 0)
goto err;
}
- if (strlen(rq->query) == 0) {
- WARNING("redis plugin: invalid query definition for: %s", rq->type);
- goto err;
- }
return rq;
err:
free(rq);
redis_submit(rn->name, rq->type, (strlen(rq->instance) >0)?rq->instance:NULL, val);
freeReplyObject (rr);
return 0;
-} /* }}} int redis_handle_info */
+} /* }}} int redis_handle_query */
static int redis_read (void) /* {{{ */
{
redis_handle_info (rn->name, rr->str, "volatile_changes", NULL, "changes_since_last_save", DS_TYPE_GAUGE);
redis_handle_info (rn->name, rr->str, "total_connections", NULL, "total_connections_received", DS_TYPE_DERIVE);
redis_handle_info (rn->name, rr->str, "total_operations", NULL, "total_commands_processed", DS_TYPE_DERIVE);
- redis_handle_info (rn->name, rr->str, "expired_keys", NULL, "expired_keys", DS_TYPE_GAUGE);
+ redis_handle_info (rn->name, rr->str, "expired_keys", NULL, "expired_keys", DS_TYPE_DERIVE);
redis_handle_info (rn->name, rr->str, "pubsub", "channels", "pubsub_channels", DS_TYPE_GAUGE);
redis_handle_info (rn->name, rr->str, "pubsub", "patterns", "pubsub_patterns", DS_TYPE_GAUGE);
redis_handle_info (rn->name, rr->str, "current_connections", "slaves", "connected_slaves", DS_TYPE_GAUGE);