Redis Metrics with InstrumentalD

Redis logo

The best way to get Redis metrics into Instrumental is with InstrumentalD, the fast and reliable server agent created by the Instrumental team. By using InstrumentalD to collect Redis metrics, you'll get premade Redis graphs and unlock the full power of our Query Language.

Quick Start

Check out our Getting Started Guide for all the details. Otherwise, here's the bare minimum to get up and running. (You'll need a project token.)

brew install instrumental/instrumentald/instrumentald
echo 'redis = ["tcp://localhost:6379"]' > instrumentald.toml
instrumentald -c instrumentald.toml -k PROJECT_TOKEN
curl https://packagecloud.io/install/repositories/expectedbehavior/instrumental/script.deb.sh | sudo bash
sudo apt-get install instrumentald
echo 'redis = ["tcp://localhost:6379"]' > instrumentald.toml
instrumentald -c instrumentald.toml -k PROJECT_TOKEN
curl https://packagecloud.io/install/repositories/expectedbehavior/instrumental/script.rpm.sh | sudo bash
sudo yum install instrumentald
echo 'redis = ["tcp://localhost:6379"]' > instrumentald.toml
instrumentald -c instrumentald.toml -k PROJECT_TOKEN

Configuring InstrumentalD

InstrumentalD collects the metrics below from as many Redis servers as configured. Here's a basic example of the Redis config:

redis = ["tcp://localhost:6379"]

Everything you need to know about configuring InstrumentalD, including more information about Redis config, can be found in the InstrumentalD Configuration docs.

Metrics Collected

The following metrics are collected:

Instance-wide

Redis instance metrics collected by InstrumentalD follow this pattern:

redis.<redis master/slave status>.<host from connection string>.<metric>
The following metrics are collected:
clients Number of client connections (excluding connections from slaves)
connected_slaves Number of connected slaves
evicted_keys Number of evicted keys due to maxmemory limit
expired_keys Total number of key expiration events
instantaneous_input_kbps Total inbound traffic in kilobits per second
instantaneous_ops_per_sec Number of commands processed per second
instantaneous_output_kbps Total outbound traffic in kilobits per second
keyspace_hits Number of successful lookup of keys in the main dictionary
keyspace_misses Number of failed lookup of keys in the main dictionary
pubsub_channels Global number of pub/sub channels with client subscriptions
pubsub_patterns Global number of pub/sub pattern with client subscriptions
repl_backlog_histlen Number of messages in the replication backlog
sync_full Count of the number times slaves have fully synchronized with this master
sync_partial_err Count of the number of times partial syncs have failed to complete
sync_partial_ok Count of the number of times partial syncs have completed
used_cpu_sys System CPU consumed by the Redis server
used_cpu_user CPU consumed by the Redis server
used_memory Total number of bytes allocated by Redis using its allocator
used_memory_rss Count of bytes allocated by Redis as seen by the operating system

Per-Database

Redis database metrics collected by InstrumentalD follow this pattern:

redis.<db name>.<redis master/slave status>.<host from connection string>.<metric>
The following metrics are collected:
avg_ttl The average TTL of your keys that have an expiration set
expires Count of number of keys with an expiration set
keys Total number of keys in the database

How many metrics can I expect from InstrumentalD?

InstrumentalD will collect 15 metrics plus 3 per Redis database in use for each server configured.

Suggested Graphs

The following graphs are based on the metrics collected by InstrumentalD, and provide great starting point for monitoring Redis.

Log in or sign up to add them to your project.