X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fredis.c;h=6fc37923b08b5df56aeb2d61485756042afde1eb;hb=28fa063b625c772f45c99b618f498715fb98474b;hp=7864ead07c01c1edf079cecfb9c79474470cb277;hpb=d8a02e6c6f5875dfcab7b011d1f340e3a13c9e39;p=collectd.git diff --git a/src/redis.c b/src/redis.c index 7864ead0..6fc37923 100644 --- a/src/redis.c +++ b/src/redis.c @@ -141,7 +141,7 @@ static redis_query_t *redis_config_query (oconfig_item_t *ci) /* {{{ */ * Default to a gauge type. */ (void)strncpy(rq->type, "gauge", sizeof(rq->type)); - (void)strncpy(rq->instance, rq->query, sizeof(rq->instance)); + (void)sstrncpy(rq->instance, rq->query, sizeof(rq->instance)); replace_special(rq->instance, sizeof(rq->instance)); for (i = 0; i < ci->children_num; i++) { @@ -304,7 +304,7 @@ int redis_handle_info (char *node, char const *info_line, char const *type, char int i; str += strlen (field_name) + 1; /* also skip the ':' */ - for(i=0;(*str && (isdigit(*str) || *str == '.'));i++,str++) + for(i=0;(*str && (isdigit((unsigned char)*str) || *str == '.'));i++,str++) buf[i] = *str; buf[i] ='\0'; @@ -376,7 +376,7 @@ int redis_handle_query (redisContext *rh, redis_node_t *rn, redis_query_t *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) /* {{{ */ { @@ -429,10 +429,15 @@ 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, "evicted_keys", NULL, "evicted_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); + redis_handle_info (rn->name, rr->str, "cache_result", "hits", "keyspace_hits", DS_TYPE_DERIVE); + redis_handle_info (rn->name, rr->str, "cache_result", "misses", "keyspace_misses", DS_TYPE_DERIVE); + redis_handle_info (rn->name, rr->str, "total_bytes", "input", "total_net_input_bytes", DS_TYPE_DERIVE); + redis_handle_info (rn->name, rr->str, "total_bytes", "output", "total_net_output_bytes", DS_TYPE_DERIVE); freeReplyObject (rr);