Real time dashboard for redis

I often find myself wondering how our redis instances are being used and which areas of the application are the heavy consumers. It's also useful to predict how the memory consumption is growing over a period of time. Luckily, redis offers a couple of commands, INFO and MONITOR that expose some useful bits of information. Using the data from these two commands, it's easy to build up a trend over a period of time.

Redis Live

Redis Live is a dashboard application with a number of useful widgets. At it's heart is a monitoring script that periodically issues INFO and MONITOR command to the redis instances and stores the data for analytics.

Installation

Install Dependencies

You'll also need argparse if you're running Python < 2.7:

Get RedisLive

Configuration

  • edit redis-live.conf :
    • update the value of the key RedisServers to the redis instances you want to monitor. You can monitor multiple instances by appending more values to the RedisServers list.
    • update the value of the key RedisStatsServer to the redis instance you will use to store RedisLive data (this redis instance is different from the redis instances you are monitoring).
    • passwords can be added as an optional parameter for any redis instance

if you don't have a spare redis instance to use to store Redis Live data, then you can configure to use sqlite by changing "DataStoreType" : "sqlite"

Start RedisLive

  • start the monitoring script ./redis-monitor.py --duration=120 duration is in seconds (see caveat)
  • start the webserver ./redis-live.py
  • RedisLive is now running @ http://localhost:8888/index.html

Caveat on monitoring redis

Currently the only hook into monitoring a redis instance is Redis MONITOR command, which streams back every command processed and reduces the throughput of the redis instance. It is recommended to run redis-monitor with --duration suitable for your redis deployment and scheduling it to run periodically as a cron job.

Feedback

Have feedback, feature request or improvements you'd like to see? Drop me a note @nkrode or just fork and send a pull request :-)

License

RedisLive is released under the MIT license

twitter / github / coderwall
comments powered by Disqus