How to monitor Redis / Cache in Azure

As Microsoft says, “Monitoring is the act of collecting and analyzing data to determine the performance, health, and availability of your business application and the resources it depends on”.

An effective monitoring strategy will help you understand the detailed operation of the different components of your application and increase your uptime by proactively notifying you of critical issues so that you can resolve them before they become problems. Also, an effective strategy requires that the set-up and maintenance of the monitoring are automated, lightweight, and do not require significant manual resources.

About Redis Cache

Azure Cache for Redis provides an in-memory data store based on the open source software Redis. When used as a cache, Redis improves the performance and scalability of systems that rely heavily on backend data stores. Performance is improved by copying frequently accessed data to fast storage located close to the application. With Azure Cache for Redis instance, this fast storage is located in-memory instead of being loaded from disk by a database.

Azure Cache for Redis can be used as a distributed data cache, a session store, and a message broker. Application performance is improved by taking advantage of the low-latency, high-throughput performance of the Redis engine.

Azure Cache for Redis offers access to a secure, dedicated Redis cache. It is managed by Microsoft, hosted on Azure, and accessible to any application within or outside of Azure.

Using Azure Cache for Redis

Azure Cache for Redis improves application performance by supporting common application architecture patterns. Some of the most common include the following:

 
Pattern Description
Cache-Aside Databases are often too large to load directly into a cache. It is common to use the cache-aside pattern to load data into the cache only as needed. When the system makes changes to the data, the system can also update the cache, which is then distributed to other clients. Additionally, the system can set an expiration on data, or use an eviction policy to trigger data updates into the cache.
Content Caching Many web pages are generated from templates that use static content such as headers, footers, banners. These static items shouldn't change often. Using an in-memory cache provides quick access to static content compared to backend datastores. This pattern reduces processing time and server load, allowing web servers to be more responsive. It can allow you to reduce the number of servers needed to handle loads. Azure Cache for Redis provides the Redis Output Cache Provider to support this pattern with ASP.NET.
User session caching This pattern is commonly used with shopping carts and other user history data that a web application may want to associate with user cookies. Storing too much in a cookie can have a negative impact on performance as the cookie size grows and is passed and validated with every request. A typical solution uses the cookie as a key to query the data in a database. Using an in-memory cache, like Azure Cache for Redis, to associate information with a user is much faster than interacting with a fully relational database.
Job and message queuing Applications often add tasks to a queue when the operations associated with the request take time to execute. Longer running operations are queued to be processed in sequence, often by another server. This method of deferring work is called task queuing. Azure Cache for Redis server provides a distributed queue to enable this pattern in your application.
Distributed transactions Applications sometimes require a series of commands against a backend data store to execute as a single atomic operation. All commands must succeed, or all must be rolled back to the initial state. Azure Cache for Redis supports executing a batch of commands as a single transaction.

 

Source: Microsoft

Why Monitor Azure Redis Cache?

As explained above, using Redis improves performance in many important or critical business applications. As Redis Cache is used in business processes to support productivity and revenues for organizations it is important to monitor performance issues and availability. Redis Cache is often used in conjunction with several other Azure services. The performance monitoring challenge becomes important due to the elasticity, dynamic nature, and the number of resources deployed which makes traditional manual/static monitoring impractical if not impossible.

Monitoring Azure with Azure's tooling is difficult

Monitoring in Azure is primarily provided by Azure Monitor which provides common stores for storing monitoring data, multiple data sources for collecting data from the different tiers supporting your application, and features for analyzing and responding to collected data.

Monitoring Azure with Microsoft's built-in tooling is difficult because:

1. The data is all over the place
2. Configuring monitoring and alerting is a manual job
3. Maintenance is time-consuming
4. Relies mostly on traditional reactive monitoring
5. Does not efficiently solve silo challenges across cloud and on-premise systems

As a consequence monitoring with the built-in Microsoft tools tends to fall into the same traps as other antiquated tools that set your organization up for failure.

As a consequence monitoring with the built-in Microsoft tools tends to fall into the same traps as other antiquated tools that set your organization up for failure.

You can read more about monitoring of Azure with Microsoft's tools here.

Why you should consider using AIMS for Redis monitoring?

AIMS is built on the fundamental value proposition of automated monitoring and insight into increasingly complex enterprise IT systems with a focus on the applications or business processes supported. With Azure, the number of applications – or services – explodes taking the growth in complexity from linear to exponential.

Each of the services or applications requires monitoring of relevant performance metrics. Taking the number of services, systems, or applications from tens to thousands with the cloud means that you should expand the important metrics you need to monitor by a similar factor – that is probably about 100-fold. That cannot be done by adding manual monitoring or human resources.

Normal behavior

Monitoring of this complexity needs to be done by using machine learning and algorithms. The AIMS monitoring tool for Azure fetches all relevant performance metric for each IaaS or PaaS in Azure. For each service, AIMS fetches all available metrics in real-time, and AIMS builds normal behavior patterns for each metric. This normal behavior metric represents the cyclicality of your business by different time resolutions – minutes a day, hour per day, or day per week. This means that AIMS builds a digital DNA of how your business lives – represented through these normal behavior patterns. (see image below for example). 

normal behavior

Metrics

Now, with this digital DNA that consists of thousands of normal behavior patterns AIMS will monitor in real-time the current performance vs the patterns built while also dynamically updating the normal behavior patterns with the new performance data fetched. The effect is that all available metrics are monitored in real-time vs the normal behavior pattern.

For Redis Cache AIMS fetches and builds normal behavior patterns for the following Redis metrics:

  • Memory usage
  • Total Keys
  • Operations Processed Per Second
  • Gets
  • Cache Write
  • Used Memory Percentage
  • Cache Read
  • Billing Redis Cache
  • Cache Latency Microseconds
  • Expired Keys
  • Connected Clients
  • Sets
  • Errors
  • Billing Redis Cache Daily Cost
  • CPU
  • Used Memory RSS
  • Evicted Keys
  • Cache Hits
  • Cache Misses
  • Total Operations

Anomalies

Using normal behavior patterns, AIMS identifies anomalies on every single monitoring metric vs normal behavior and correlates the anomalies across the rest of the metrics to create Anomaly Warnings.

Anomaly Warnings provide early notification of trouble with Azure Services or across cloud / hybrid environments.

anomaly warning

Auto-detection

You can also use the “Activity & changes” module in the Analytics tab to create reports and dashboards to identify new resources and applications in Azure, which ease insight and transparency.

AIMS will do all this without your manual intervention, and there are no static thresholds needed!

Activity feed AIMS

 

AIMS Redis Cache reports and dashboard

All the data collected by AIMS is available to users in the Analytics section that allows you to access default reports or to create custom reports and dashboards. When creating your first report, you will discover that AIMS Analytics consists of a wide range of possibilities. You can create public or private reports, set a report as a dashboard, and define which users will receive dashboard reports.

AIMS stores performance data, making it a valuable data source for later use – such as for root-cause analysis. More about reports, dashboards and analytics.

Take your IT monitoring to the next level 

With the AIMS monitoring solution, you can automate monitoring of your Azure IaaS and PaaS through an easy configuration that can be done in minutes. This will allow you to free up valuable time spent monitoring using other tools or manual monitoring. The consequence is that you will have better monitoring and more time to deliver projects for your business.

Take Redis performance monitoring to the next level, get started free with AIMS.