Monitoring Redis

Redis is an open source, in-memory data structure store. Redis supports various simple data structures, including strings, hashes, lists, sets, and sorted sets. More complex data structures supported include hyperloglogs, geospatial data, and streams. Redis is written in C, with builds for Linux, various BSD, and Mac OS X. Persistence is available by database dump or operation logging. Additionally, it is possible to spread part of the dataset across memory and flash to achieve a larger active dataset at lower cost. Asynchronous replication is available in a master-replica configuration, where a master may have multiple replicas, and replicas can be chained to masters that are themselves replicas. Replication can be used to increase read scalability, data safety, and/or data availability. Redis Cluster provides an option to distribute data across multiple master instances, which may be replicated, with linear scalability. Only a single database is allowed on instances running as part of a cluster. Server-side scripting is provided by an embedded Lua runtime. Extensions can be installed as Redis Modules. Some popular modules include RediSearch, RedisJSON, RedisGraph, and RedisBloom.

Redis Enterprise is proprietary software released by the company Redis, formerly called Redis Labs. Redis Enterprise exposes a Redis interface for one or more databases distributed across a cluster of similarly configured nodes. It includes a management UI for database creation, user configuration, rudimentary monitoring, and other administrative tasks. A REST API provides more detailed information on cluster operation and performance, as well as offering some programmatic administrative capabilities.

Redis Enterprise Cloud is a hosted version of Redis Enterprise available through Redis on all three major cloud hosting providers. Restricted-usage free plans are available. The REST API offered by Redis Enterprise Cloud offers different features and is not compatible with the Redis Enterprise REST API.

This section covers the following key areas:

Business Challenge

Redis Enterprise is a complex suite of software that coordinates multiple data shards of potentially multiple databases across multiple nodes. Administrative capabilities such as database creation and access control are provided by the Redis Admin Console, and monitoring and cluster operations can be performed via the REST API. But the Admin Console has only limited monitoring data available as charts displayed in fixed time frames, and the JSON responses provided by the REST API are of limited human usability.

Foglight for Redis

Foglight for Redis is designed to provide enterprises with a powerful tool that can stand alone or act as part of broader cross-platform database monitoring requirements. To support enterprise performance monitoring, Foglight for Redis captures metrics on key functionality of Redis Enterprise, including node and database state, logs, integrated alerts, connections, persistence, backup, memory, traffic, CPU usage, and latency.

As with all Foglight solutions, Foglight for Redis will run as a native Foglight process leveraging the Foglight Agent Manager (FglAM) for communications with the agent. Foglight for Redis can be run locally (Agent on the Host) or remotely (Agent on Foglight or Proxy Server). The solution will leverage the Foglight Rules Engine providing the ability to evaluate and alert on potential issues before they significantly affect performance and availability.