Code

Extend collected metrics in redis plugin
authorMarc Falzon <marc@falzon.me>
Tue, 22 Dec 2015 22:07:25 +0000 (23:07 +0100)
committerMarc Fournier <marc.fournier@camptocamp.com>
Sun, 28 Feb 2016 00:06:05 +0000 (01:06 +0100)
This change adds support for other interesting Redis metrics:

* expired_keys
* keyspace_hits, keyspace_misses
* total_net_input_bytes, total_net_output_bytes

It also fixes the DS type for expired_keys, which was incorrectly
expressed as gauge instead of derive.

src/redis.c
src/types.db

index 9282e1938a3263601ad674e7f3dcad45f75be544..6fc37923b08b5df56aeb2d61485756042afde1eb 100644 (file)
@@ -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);
 
index 5847218aa0fe1cb17a057e98bd596849cc7af4ce..d5034e95a5c1eee771b6cd251aa4a36e5465c33f 100644 (file)
@@ -67,7 +67,8 @@ email_check           value:GAUGE:0:U
 email_count            value:GAUGE:0:U
 email_size             value:GAUGE:0:U
 entropy                        value:GAUGE:0:4294967295
-expired_keys    value:GAUGE:0:U
+expired_keys    value:DERIVE:0:U
+evicted_keys    value:DERIVE:0:U
 fanspeed               value:GAUGE:0:U
 file_handles           value:GAUGE:0:U
 file_size              value:GAUGE:0:U