This repository provides a set of tools to Discover your Azure Redis estate and collect Inventory & Usage Statistics to assist with migration planning (e.g., migrating to Azure Managed Redis).
The workflow is split into two phases: Discovery and Inventory (Assessment).
Use the Discovery Tool for a lightweight, rapid scan of your environment.
- Goal: Identify all Redis resources, their SKUs, configurations, and provisioned capacity (vCPU/Memory).
- Use when: You just want a list of servers and what you are paying for, without waiting for metrics API calls.
- Tool: Discovery Script (Python) or REDIS_DISCOVERY_GUIDE.md
Use the Inventory Tools to deep-dive into the workload.
- Goal: Collect detailed usage metrics (Operations Per Second, Used Memory, Connections) to understand the actual load.
- Use when: You are planning a migration and need to "right-size" the target cache based on actual consumption, not just provisioned size.
- Tools: Choose the version that fits your environment:
- Python Metric Collector (Recommended)
- PowerShell Metric Collector
- Bash / Cloud Shell Script
- Azure Resource Graph Query (For simple high-level listing)
We understand that running scripts against production environments requires trust. Here is exactly what these tools do and do not do.
These tools operate entirely with Read-Only permissions. No write, contributor, or admin access is required.
- Discovery: Requires
Readerrole (specificallyMicrosoft.Cache/*/read). - Inventory: Requires
Monitoring ReaderorReaderto access Azure Monitor metrics (Microsoft.Insights/metrics/read).
- Resource Metadata: Subscription IDs, Resource Group names, Redis Cache Names, Regions, Tier/SKU information.
- Configuration: Shard counts, HA status, Version.
- Usage Metrics (Inventory Phase only):
operationsPerSecond(Average/Max)usedMemoryconnectedClients
- ❌ NO Data values: Use of
GET/SETcommands is never performed. No keys or values are read from the cache. - ❌ NO Connection Strings/Keys: Access keys are not retrieved or exported.
- ❌ NO PII: No personal identifiable information is scanned.
- Client-Side Execution: All scripts run locally on your machine (or in your Cloud Shell).
- Authentication: Uses your local Azure CLI credentials (
az loginorConnect-AzAccount). - Data Destination: Output is written to a local file (Excel
xlsxor CSV) on your machine. No data is sent to Microsoft or any third party automatically. You choose who to share the output file with.
- Azure CLI or Azure PowerShell Module
- Python 3.11+ (for Python scripts)
- Read access to the Azure Subscriptions you wish to scan.
- Discovery: Reader
- Inventory: Monitoring Reader (to access metrics)
MIT License - Copyright (c) Microsoft Corporation.
This project is provided "as-is" and is not officially supported by Microsoft.
We welcome your feedback and contributions! If you encounter issues or have questions, please:
- Search existing issues to see if your problem has already been reported.
- Open a new issue in this repository if your problem is unique.
Note: This code is for specific accelerator purposes and comes with no warranties or Service Level Agreements (SLAs).