Redis Cloud Pro exposes an internal Prometheus endpoint so you can collect performance and infrastructure metrics and visualize them in Grafana. This article explains the required prerequisites, walks through a complete step-by-step setup, includes common troubleshooting scenarios, and links to official Redis and Grafana resources under Additional Resources. Redis also provides pre-built Grafana dashboards tailored to subscription, database, and Active-Active metrics.
Prerequisites
To enable observability with Prometheus and Grafana in Redis Cloud Pro:
-
Redis Cloud Pro subscription required
Prometheus integration is not supported on the Essentials tier. -
Private networking enabled
Use VPC Peering or Private Service Connect to connect your monitoring infrastructure to Redis Cloud. -
Monitoring host co-located in same cloud/region
Deploy Prometheus and Grafana in the same provider and region to reduce latency and ensure access to private IP ranges. -
Valid RFC 1918 private IP assignment
Monitoring hosts must use IPs from private ranges (e.g.,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16). -
Required network access
- Outbound: TCP port 8070 to Redis Cloud Prometheus endpoint (
internal.<cluster_address>:8070) - Inbound: TCP ports 9090 (Prometheus) and 3000 (Grafana)
- Outbound: TCP port 8070 to Redis Cloud Prometheus endpoint (
Step-by-Step Setup
1. Set Up VPC Peering or PSC
Create a peering connection from your monitoring VPC to the Redis Cloud VPC using the Redis Cloud UI.
Find the internal Prometheus endpoint under Configuration, and note that Prometheus must scrape it on port 8070.
2. Launch Monitoring Instance
Spin up a VM/EC2/GCE instance within the peered VPC.
- Ensure outbound port 8070 is open to Redis Cloud.
- Ensure inbound ports 9090 and 3000 are open for Prometheus and Grafana UIs.
- Verify the instance received a valid private IP.
3. Install Prometheus & Grafana Using Docker
Create a prometheus.yml config file:
global:
scrape_interval: 15s
evaluation_interval: 15s
# Attach these labels to any time series or alerts when communicating with
# external systems (federation, remote storage, Alertmanager).
external_labels:
monitor: "prometheus-stack-monitor"
# Load and evaluate rules in this file every 'evaluation_interval' seconds.
#rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
# scrape Prometheus itself
- job_name: prometheus
scrape_interval: 10s
scrape_timeout: 5s
static_configs:
- targets: ["localhost:9090"]
# scrape Redis Cloud
- job_name: redis-cloud
scrape_interval: 30s
scrape_timeout: 30s
metrics_path: / # For v2, use /v2
scheme: https
static_configs:
- targets: ["<prometheus_endpoint>:8070"]Create a docker-compose.yml file to launch both Prometheus and Grafana:
version: '3'
services:
prometheus-server:
image: prom/prometheus
ports:
- 9090:9090
volumes:
- ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
grafana-ui:
image: grafana/grafana
ports:
- 3000:3000
environment:
- GF_SECURITY_ADMIN_PASSWORD=secret
links:
- prometheus-server:prometheusStart the containers:
docker compose up -d
4. Confirm Prometheus Access
Open Prometheus at http://<monitor-host>:9090.
Navigate to Status > Targets and verify the Redis Cloud target is UP.
Run queries like:
up redis_memory_used_bytes redis_connected_clients
5. Connect Grafana & Import Dashboards
Open Grafana at http://<monitor-host>:3000 (default user: admin, password: secret).
- Add a Prometheus data source:
-
Name:
redis-cloud -
URL:
http://prometheus-server:9090 -
Access:
Server
-
Name:
- Import official Redis Grafana dashboards:
- Subscription Overview: Health, provisioning, and errors
- Database Metrics: Latency, memory usage, commands/sec, key counts
- CRDB/ReplicaOf Metrics: Replication lag, sync status
Visit the Redis Grafana dashboard repository for templates.
Troubleshooting
| Symptom | Cause or Fix |
|---|---|
| Prometheus target is DOWN | Check VPC peering/PSC status, DNS resolution, and outbound rules on port 8070 |
| Grafana panels are empty | Validate Prometheus data source and that Redis metrics are scraping correctly |
| Metrics lag or missing data | Increase scrape_interval; restart Docker if needed |
| No alerting configured | Add Alertmanager and rules for CPU, client count, latency, and failed ops |
Current Limitations
- Essentials tier does not support Prometheus/Grafana integration.
- Custom tags for databases are not currently exposed in the metric stream.
- Multi-cluster dashboards must be built manually.
- Metric retention is tied to Prometheus configuration, not Redis.
0 comments
Please sign in to leave a comment.