Redis Enterprise Monitoring is an important part of understanding the end to end performance and health of application services.
What is Redis Enterprise?
Basically, Redis is a very flexible in-memory data structure store. It’s a NoSQL database. It’s an in-memory cache. It’s a message broker. Redis supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams.
There are 2 distinctly different distributions of Redis, the free open-source version (simply referred to as Redis) and the paid version called Redis Enterprise. As is often the case when there are free and paid versions of software, the paid version offers more robust capabilities to make it more valuable to enterprise organizations. The main advantage of using Redis Enterprise are:
High Availability with Redis Enterprise – “Redis Enterprise uses in-memory replication to maintain master and slave replicas. Redis Enterprise comes with various watchdogs that detect and protect against many failure types.”
Database Scalability in Redis Enterprise – “can be resharded into more Redis shards to scale throughput while maintaining sub-millisecond latencies.”
Data Durability with Redis Enterprise – Disk based durability and replication based durability options.
Geo-Distributed Active-Active – Conflict-free Replicated Databases (CRDB) are globally distributed databases that span multiple Redis Enterprise Software clusters.
Memory Management with Redis Enterprise – manages node memory so that data is entirely in RAM for improved database performance.
Redis on Flash (RoF) – offers users of Redis Enterprise Software and Redis Enterprise Cloud the unique ability to have very large Redis databases but at significant cost savings
Shard Placement Policy – Master shards and their corresponding slave shards are always placed on separate nodes for data resiliency. The shard placement policy helps to maintain optimal performance and resiliency.
Redis Enterprise Monitoring Using RedisInsight
RedisInsight enables UI based monitoring and management of your Redis Enterprise clusters. With RedisInsight you get detailed memory analysis, tracing of Redis commands and debugging of LUA scripts, real-time performance metrics, and real-time alerts on cluster health. You can analyze your cluster configuration, rebalance as necessary, manage addition of nodes, re-shard, delete nodes, and modify master-replica configuration.
RedisInsight is an impressive tool for monitoring and managing your Redis Enterprise clusters, but it leaves a major gap when considering end to end monitoring requirements. Redis is an important part of modern application architectures and as such needs to be monitored in context with the rest of the dependent application services and infrastructure stack. This end to end monitoring capability is not available with RedisInsight.
Monitoring Redis Enterprise and application performance using Instana
When operating business critical applications you need to account for end to end performance and get alerted the instant there is a negative impact to your users. Instana monitors Redis Enterprise KPIs (Key Performance Indicators) at the individual component and application level for each instance. The Redis Enterprise KPIs are used for real-time health monitoring of each instance and cluster. The Service KPIs are used to understand Redis Enterprise performance within the overall application.
Flow map showing heat map of request volume, latency, and errors with Redis as database
Instana traces every request flowing through the monitored system ensuring that you always have a complete distributed trace for such times when there is a problem. Instana tracks all dependencies, service and infrastructure, by creating a logical model that we call the Dynamic Graph. This model contains the contextual information needed to automatically determine the root cause of problems in applications that use Redis.
Redis Service dashboard showing all requests to Redis and aggregate performance data
Instana’s Redis Enterprise Monitoring includes three types of data; Performance measurements, Configuration Data, and Health KPIs:
- Cluster Level Configuration Data
- Cluster Performance Metrics
- Key Hits
- Evicted Objects
- Cluster Metric Categories
- Shards Databases
- Node Level Configuration Data
- Operating System
- Shard Count
- Total Memory
- Cluster Name
- Node Performance Metrics
- Node Metric Categories
A complete list is available in the Instana Redis Enterprise Monitoring Documentation.
Redis Enterprise Node dashboard showing configuration and KPI metrics
By using a combination of RedisInsight and Instana you gain complete control and end to end performance monitoring of your Redis based applications. The combined power of these solutions will help you identify and resolve issues with your Redis based applications within seconds.
If you want deep visibility of Redis Enterprise combined with distributed tracing of your application services then you should sign up for a free trial of Instana and see for yourself.