From 5957af19fcbed23fbd2283725056e9e18c8c8f31 Mon Sep 17 00:00:00 2001 From: Tyler Nisonoff Date: Sat, 17 Oct 2015 21:05:56 -0700 Subject: [PATCH] added keyspace hitrate measurement --- plugins/redis/redis.go | 17 +++++++++++++++++ plugins/redis/redis_test.go | 11 ++++++----- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/plugins/redis/redis.go b/plugins/redis/redis.go index f142e6ef7..786d7b284 100644 --- a/plugins/redis/redis.go +++ b/plugins/redis/redis.go @@ -159,6 +159,8 @@ func gatherInfoOutput( acc plugins.Accumulator, tags map[string]string, ) error { + var keyspace_hits, keyspace_misses uint64 = 0,0 + scanner := bufio.NewScanner(rdr) for scanner.Scan() { line := scanner.Text() @@ -185,6 +187,15 @@ func gatherInfoOutput( val := strings.TrimSpace(parts[1]) ival, err := strconv.ParseUint(val, 10, 64) + + if name == "keyspace_hits" { + keyspace_hits = ival + } + + if name == "keyspace_misses" { + keyspace_misses = ival + } + if err == nil { acc.Add(metric, ival, tags) continue @@ -197,6 +208,12 @@ func gatherInfoOutput( acc.Add(metric, fval, tags) } + var keyspace_hitrate float64 = 0.0 + if keyspace_hits != 0 || keyspace_misses != 0 { + keyspace_hitrate = float64(keyspace_hits) / float64(keyspace_hits + keyspace_misses) + } + fmt.Println(keyspace_hitrate) + acc.Add("keyspace_hitrate", keyspace_hitrate, tags) return nil } diff --git a/plugins/redis/redis_test.go b/plugins/redis/redis_test.go index 2b369e0a1..a82d5412d 100644 --- a/plugins/redis/redis_test.go +++ b/plugins/redis/redis_test.go @@ -55,8 +55,8 @@ func TestRedis_ParseMetrics(t *testing.T) { {"sync_partial_err", 0}, {"expired_keys", 0}, {"evicted_keys", 0}, - {"keyspace_hits", 0}, - {"keyspace_misses", 0}, + {"keyspace_hits", 1}, + {"keyspace_misses", 1}, {"pubsub_channels", 0}, {"pubsub_patterns", 0}, {"latest_fork_usec", 0}, @@ -83,6 +83,7 @@ func TestRedis_ParseMetrics(t *testing.T) { {"used_cpu_user", 0.05}, {"used_cpu_sys_children", 0.00}, {"used_cpu_user_children", 0.00}, + {"keyspace_hitrate", 0.50}, } for _, c := range checkFloat { @@ -115,7 +116,7 @@ client_longest_output_list:0 client_biggest_input_buf:0 blocked_clients:0 -# Memory +# Memor2 used_memory:1003936 used_memory_human:980.41K used_memory_rss:811008 @@ -151,8 +152,8 @@ sync_partial_ok:0 sync_partial_err:0 expired_keys:0 evicted_keys:0 -keyspace_hits:0 -keyspace_misses:0 +keyspace_hits:1 +keyspace_misses:1 pubsub_channels:0 pubsub_patterns:0 latest_fork_usec:0