From 188703e204d7f88080389a538f92046c27c49439 Mon Sep 17 00:00:00 2001
From: Alexander Blagoev <alexander.i.blagoev@gmail.com>
Date: Tue, 2 May 2017 21:43:07 +0300
Subject: [PATCH] Improve redis input documentation (#2708)

---
 CHANGELOG.md                   |   1 +
 plugins/inputs/redis/README.md | 133 ++++++++++++++++++++++++---------
 2 files changed, 98 insertions(+), 36 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 30976def..50e7c6e4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -120,6 +120,7 @@ be deprecated eventually.
 - [#1911](https://github.com/influxdata/telegraf/issues/1911): Sysstat plugin needs LANG=C or similar locale
 - [#2528](https://github.com/influxdata/telegraf/issues/2528): File output closes standard streams on reload.
 - [#2603](https://github.com/influxdata/telegraf/issues/2603): AMQP output disconnect blocks all outputs
+- [#2706](https://github.com/influxdata/telegraf/issues/2706): Improve documentation for redis input plugin
 
 ## v1.2.1 [2017-02-01]
 
diff --git a/plugins/inputs/redis/README.md b/plugins/inputs/redis/README.md
index 51b596aa..5ec2a120 100644
--- a/plugins/inputs/redis/README.md
+++ b/plugins/inputs/redis/README.md
@@ -18,47 +18,103 @@
 
 ### Measurements & Fields:
 
-- Measurement
-    - uptime_in_seconds
-    - connected_clients
-    - used_memory
-    - used_memory_rss
-    - used_memory_peak
-    - used_memory_lua
-    - rdb_changes_since_last_save
-    - total_connections_received
-    - total_commands_processed
-    - instantaneous_ops_per_sec
-    - instantaneous_input_kbps
-    - instantaneous_output_kbps
-    - sync_full
-    - sync_partial_ok
-    - sync_partial_err
-    - expired_keys
-    - evicted_keys
-    - keyspace_hits
-    - keyspace_misses
-    - pubsub_channels
-    - pubsub_patterns
-    - latest_fork_usec
-    - connected_slaves
-    - master_repl_offset
-    - master_last_io_seconds_ago
-    - repl_backlog_active
-    - repl_backlog_size
-    - repl_backlog_histlen
-    - mem_fragmentation_ratio
-    - used_cpu_sys
-    - used_cpu_user
-    - used_cpu_sys_children
-    - used_cpu_user_children
+The plugin gathers the results of the [INFO](https://redis.io/commands/info) redis command.
+There are two separate measurements: _redis_ and _redis\_keyspace_, the latter is used for gathering database related statistics.
+
+Additionally the plugin also calculates the hit/miss ratio (keyspace\_hitrate) and the elapsed time since the last rdb save (rdb\_last\_save\_time\_elapsed).
+
+- redis
+    - keyspace_hitrate(float, number)
+    - rdb_last_save_time_elapsed(int, seconds)
+
+    **Server**
+    - uptime(int, seconds)
+    - lru_clock(int, number)
+
+    **Clients**
+    - clients(int, number)
+    - client_longest_output_list(int, number)
+    - client_biggest_input_buf(int, number)
+    - blocked_clients(int, number)
+
+    **Memory**
+    - used_memory(int, bytes)
+    - used_memory_rss(int, bytes)
+    - used_memory_peak(int, bytes)
+    - total_system_memory(int, bytes)
+    - used_memory_lua(int, bytes)
+    - maxmemory(int, bytes)
+    - maxmemory_policy(string)
+    - mem_fragmentation_ratio(float, number)
+
+    **Persistance**
+    - loading(int,flag)
+    - rdb_changes_since_last_save(int, number)
+    - rdb_bgsave_in_progress(int, flag)
+    - rdb_last_save_time(int, seconds)
+    - rdb_last_bgsave_status(string)
+    - rdb_last_bgsave_time_sec(int, seconds)
+    - rdb_current_bgsave_time_sec(int, seconds)
+    - aof_enabled(int, flag)
+    - aof_rewrite_in_progress(int, flag)
+    - aof_rewrite_scheduled(int, flag)
+    - aof_last_rewrite_time_sec(int, seconds)
+    - aof_current_rewrite_time_sec(int, seconds)
+    - aof_last_bgrewrite_status(string)
+    - aof_last_write_status(string)
+
+    **Stats**
+    - total_connections_received(int, number)
+    - total_commands_processed(int, number)
+    - instantaneous_ops_per_sec(int, number)
+    - total_net_input_bytes(int, bytes)
+    - total_net_output_bytes(int, bytes)
+    - instantaneous_input_kbps(float, bytes)
+    - instantaneous_output_kbps(float, bytes)
+    - rejected_connections(int, number)
+    - sync_full(int, number)
+    - sync_partial_ok(int, number)
+    - sync_partial_err(int, number)
+    - expired_keys(int, number)
+    - evicted_keys(int, number)
+    - keyspace_hits(int, number)
+    - keyspace_misses(int, number)
+    - pubsub_channels(int, number)
+    - pubsub_patterns(int, number)
+    - latest_fork_usec(int, microseconds)
+    - migrate_cached_sockets(int, number)
+
+    **Replication**
+    - connected_slaves(int, number)
+    - master_repl_offset(int, number)
+    - repl_backlog_active(int, number)
+    - repl_backlog_size(int, bytes)
+    - repl_backlog_first_byte_offset(int, number)
+    - repl_backlog_histlen(int, bytes)
+
+    **CPU**
+    - used_cpu_sys(float, number)
+    - used_cpu_user(float, number)
+    - used_cpu_sys_children(float, number)
+    - used_cpu_user_children(float, number)
+
+    **Cluster**
+    - cluster_enabled(int, flag)
+
+- redis_keyspace
+    - keys(int, number)
+    - expires(int, number)
+    - avg_ttl(int, number)
 
 ### Tags:
 
 - All measurements have the following tags:
     - port
     - server
-    - replication role
+    - replication_role
+
+- The redis_keyspace measurement has an additional database tag:
+    - database
 
 ### Example Output:
 
@@ -84,5 +140,10 @@ When run with:
 It produces:
 ```
 * Plugin: redis, Collection 1
-> redis,port=6379,server=localhost clients=1i,connected_slaves=0i,evicted_keys=0i,expired_keys=0i,instantaneous_ops_per_sec=0i,keyspace_hitrate=0,keyspace_hits=0i,keyspace_misses=2i,latest_fork_usec=0i,master_repl_offset=0i,mem_fragmentation_ratio=3.58,pubsub_channels=0i,pubsub_patterns=0i,rdb_changes_since_last_save=0i,repl_backlog_active=0i,repl_backlog_histlen=0i,repl_backlog_size=1048576i,sync_full=0i,sync_partial_err=0i,sync_partial_ok=0i,total_commands_processed=4i,total_connections_received=2i,uptime=869i,used_cpu_sys=0.07,used_cpu_sys_children=0,used_cpu_user=0.1,used_cpu_user_children=0,used_memory=502048i,used_memory_lua=33792i,used_memory_peak=501128i,used_memory_rss=1798144i 1457052084987848383
+> redis,server=localhost,port=6379,replication_role=master,host=host keyspace_hitrate=1,clients=2i,blocked_clients=0i,instantaneous_input_kbps=0,sync_full=0i,pubsub_channels=0i,pubsub_patterns=0i,total_net_output_bytes=6659253i,used_memory=842448i,total_system_memory=8351916032i,aof_current_rewrite_time_sec=-1i,rdb_changes_since_last_save=0i,sync_partial_err=0i,latest_fork_usec=508i,instantaneous_output_kbps=0,expired_keys=0i,used_memory_peak=843416i,aof_rewrite_in_progress=0i,aof_last_bgrewrite_status="ok",migrate_cached_sockets=0i,connected_slaves=0i,maxmemory_policy="noeviction",aof_rewrite_scheduled=0i,total_net_input_bytes=3125i,used_memory_rss=9564160i,repl_backlog_histlen=0i,rdb_last_bgsave_status="ok",aof_last_rewrite_time_sec=-1i,keyspace_misses=0i,client_biggest_input_buf=5i,used_cpu_user=1.33,maxmemory=0i,rdb_current_bgsave_time_sec=-1i,total_commands_processed=271i,repl_backlog_size=1048576i,used_cpu_sys=3,uptime=2822i,lru_clock=16706281i,used_memory_lua=37888i,rejected_connections=0i,sync_partial_ok=0i,evicted_keys=0i,rdb_last_save_time_elapsed=1922i,rdb_last_save_time=1493099368i,instantaneous_ops_per_sec=0i,used_cpu_user_children=0,client_longest_output_list=0i,master_repl_offset=0i,repl_backlog_active=0i,keyspace_hits=2i,used_cpu_sys_children=0,cluster_enabled=0i,rdb_last_bgsave_time_sec=0i,aof_last_write_status="ok",total_connections_received=263i,aof_enabled=0i,repl_backlog_first_byte_offset=0i,mem_fragmentation_ratio=11.35,loading=0i,rdb_bgsave_in_progress=0i 1493101290000000000
+```
+
+redis_keyspace:
+```
+> redis_keyspace,database=db1,host=host,server=localhost,port=6379,replication_role=master keys=1i,expires=0i,avg_ttl=0i 1493101350000000000
 ```
-- 
GitLab