---
title: ''
description: Telegraf plugin for collecting metrics from Redis
url: https://docs.influxdata.com/telegraf/v1/input-plugins/redis/
estimated_tokens: 2166
product: Telegraf Enterprise
version: v1
publisher: InfluxData
canonical: https://docs.influxdata.com/telegraf/v1/input-plugins/redis/
date: '2026-05-21T20:10:18+02:00'
lastmod: '2026-05-21T20:10:18+02:00'
---

==========

* Telegraf v0.1.1+

[Plugin source](https://github.com/influxdata/telegraf/tree/v1.39.1/plugins/inputs/redis/)[Download configuration](https://raw.githubusercontent.com/influxdata/telegraf/refs/tags/v1.39.1/plugins/inputs/redis/sample.conf)

# Redis Input Plugin

This plugin gathers metrics from [Redis](https://redis.io/) servers.

**Introduced in:** Telegraf v0.1.1**Tags:** server**OS support:** all

## Global configuration options

Plugins support additional global and plugin configuration settings for tasks
such as modifying metrics, tags, and fields, creating aliases, and configuring
plugin ordering. See [CONFIGURATION.md](/telegraf/v1/configuration/#plugins) for more details.

## Configuration

```toml
# Read metrics from one or many redis servers
[[inputs.redis]]
  ## specify servers via a url matching:
  ##  [protocol://]()@address[:port]
  ##  e.g.
  ##    tcp://localhost:6379
  ##    tcp://username:password@192.168.99.100
  ##    unix:///var/run/redis.sock
  ##
  ## If no servers are specified, then localhost is used as the host.
  ## If no port is specified, 6379 is used
  servers = ["tcp://localhost:6379"]

  ## Optional. Specify redis commands to retrieve values
  # [[inputs.redis.commands]]
  #   # The command to run where each argument is a separate element
  #   command = ["get", "sample-key"]
  #   # The field to store the result in
  #   field = "sample-key-value"
  #   # The type of the result
  #   # Can be "string", "integer", or "float"
  #   type = "string"

  ## Specify username and password for ACL auth (Redis 6.0+). You can add this
  ## to the server URI above or specify it here. The values here take
  ## precedence.
  # username = ""
  # password = ""

  ## Optional TLS Config
  ## Check tls/config.go ClientConfig for more options
  # tls_enable = true
  # tls_ca = "/etc/telegraf/ca.pem"
  # tls_cert = "/etc/telegraf/cert.pem"
  # tls_key = "/etc/telegraf/key.pem"
  ## Use TLS but skip chain & host verification
  # insecure_skip_verify = true
```

## Metrics

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)

  * redis\_version(string)

    **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)

    **Persistence**

  * 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, KB/sec)

  * instantaneous\_output\_kbps(float, KB/sec)

  * 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\_link\_down\_since\_seconds(int, number)

  * master\_link\_status(string)

  * master\_repl\_offset(int, number)

  * second\_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)

* redis\_cmdstat
  Every Redis used command could have the following fields:

  * calls(int, number)
  * failed\_calls(int, number)
  * rejected\_calls(int, number)
  * usec(int, mircoseconds)
  * usec\_per\_call(float, microseconds)

* redis\_latency\_percentiles\_usec

  * fields:
    * p50(float, microseconds)
    * p99(float, microseconds)
    * p99.9(float, microseconds)

* redis\_replication

  * tags:

    * replication\_role
    * replica\_ip
    * replica\_port
    * state (either “online”, “wait\_bgsave”, or “send\_bulk”)

  * fields:

    * lag(int, number)
    * offset(int, number)

* redis\_errorstat

  * tags:
    * err

  * fields:
    * total (int, number)

All measurements have the following tags:

* port
* server
* replication\_role

The `redis_keyspace` measurement has an additional `database` tag.

The `redis_cmdstat` and `redis_latency_percentiles_usec` measurements have an
additional `command` tag.

## Example Output

The following configuration

```toml
[[inputs.redis]]
  ## specify servers via a url matching:
  ##  [protocol://]()@address[:port]
  ##  e.g.
  ##    tcp://localhost:6379
  ##    tcp://:password@192.168.99.100
  ##
  ## If no servers are specified, then localhost is used as the host.
  ## If no port is specified, 6379 is used
  servers = ["tcp://localhost:6379"]
```

produces these metrics:

```text
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,database=db1,host=host,server=localhost,port=6379,replication_role=master keys=1i,expires=0i,avg_ttl=0i 1493101350000000000
redis_cmdstat,command=publish,host=host,port=6379,replication_role=master,server=localhost calls=569514i,failed_calls=0i,rejected_calls=0i,usec=9916334i,usec_per_call=17.41 1559227136000000000
redis_latency_percentiles_usec,command=zadd,host=host,port=6379,replication_role=master,server=localhost p50=9.023,p99=28.031,p99.9=43.007 1559227136000000000
redis_errorstat,err=MOVED,host=host,port=6379,replication_role=master,server=localhost total=4284 1691119309000000000
```
