Redis Software clusters expose a Prometheus-compatible metrics endpoint on each node, enabling robust observability for system performance, database health, and infrastructure metrics. This article explains how to monitor Redis Software using Prometheus for metric collection, Grafana for dashboarding, and Datadog for centralized alerting and analytics. It includes detailed Prerequisites, Step-by-Step Setup instructions for both Prometheus and Datadog, common Troubleshooting guidance, and relevant Additional Resources to support long-term monitoring.
Prerequisites
Redis Software Requirements
-
Redis Software 8.0.2-17+ recommended: Use the /v2 metrics endpoint.
For 7.8-7.22: /v2 is available on supported patch levels; otherwise use legacy /metrics or /v1.
metrics_exporter service running on all cluster nodes
Metrics exposed on port 8070 over HTTPS
Monitoring Tools
Prometheus instance (containerized or native)
Optional: Grafana for custom dashboards
Datadog Agent installed on a host that can reach the Redis cluster
Network Requirements
Outbound access from Prometheus and Datadog Agent to all cluster nodes on port 8070. The cluster FQDN resolves to different node addresses over time, so every node must be reachable, but only the FQDN is configured as a scrape target. Do not add individual nodes as separate targets (see Step 2).
Inbound access to port 9090 (Prometheus UI) and port 3000 (Grafana UI) for local access
Step-by-Step Setup for Prometheus and Grafana
1. Verify metrics_exporter is running and listening
-
On each cluster node, run:
supervisorctl status metrics_exporter Confirm the metrics_exporter service is in a RUNNING state.
Optional:
supervisorctl status | grep metrics_exporterIf the command does not return the expected process status, you can also list all supervised processes and filter for metrics_exporter.
Verify the endpoint is reachable:
curl -k https://<node_ip>:8070/v2Any node returns the complete cluster-wide metric set, not just its own metrics, so this check confirms reachability from any single node. This is also why only one scrape target is configured in Step 2.
To verify that the metrics endpoint is reachable, test access to the HTTPS metrics endpoint on port 8070 from the host that will run Prometheus or the Datadog Agent.
For Redis Software versions that do not support /v2, use the metrics endpoint path supported by your version, such as /metrics or /v1.
2. Create Prometheus configuration
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: redis-enterprise
scrape_interval: 30s
scrape_timeout: 30s
metrics_path: /v2
scheme: https
tls_config:
insecure_skip_verify: true
static_configs:
- targets: ["<cluster_fqdn>:8070"]Replace <cluster_fqdn> with your cluster's FQDN.
Configure exactly one target. The v2 endpoint is cluster-wide: every node aggregates metrics from all other nodes and returns the same complete result. Adding a target per node duplicates every series and multiplies every sum()-based dashboard panel by the number of targets, with no error shown in Prometheus or Grafana. It also multiplies the internal scrape load on the cluster.
If you have no cluster FQDN available, point the single target at one node address. You will lose metrics if that specific node goes down, so an FQDN or load-balanced address is preferred.
3. Deploy Prometheus and Grafana using Docker
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:prometheus-
Start the stack:
docker compose up -d
4. Verify data collection
Visit http://localhost:9090 → Status > Targets → Confirm the redis-enterprise target is UP. Exactly one target should be listed for this job.
Open http://localhost:3000 to access Grafana (default login: admin / secret)
Import Redis dashboards from the [Redis observability GitHub repo] for cluster, node, and shard views
Step‑by‑Step Setup for Datadog
Install the Redis Enterprise Integration
In Datadog, navigate to Integrations > Redis Enterprise by Redis, Inc.
Click Install Integration
Configure the Datadog Agent
Create or edit the following file: /etc/datadog-agent/conf.d/redis_enterprise.d/conf.yaml
instances:
- openmetrics_endpoint: https://<cluster_fqdn>:8070/v2
namespace: rdse
ssl_verify: falseReplace <cluster_fqdn> with your cluster's FQDN. Configure a single instance: the v2 endpoint already returns the whole cluster's metrics, so one instance per node would duplicate every metric.
Use secure TLS configuration for production (set ssl_verify: true with valid certs).
Restart the Datadog Agent to apply changes:
sudo systemctl restart datadog-agentValidate Integration and Explore Dashboards
In Datadog, go to Infrastructure > Host Map or Metrics > Explorer
Search for metrics in the rdse.* namespace
Open and use the built‑in Redis Enterprise dashboards to monitor cluster health
Migrating from v1 to v2
/v2 exports raw (not pre-aggregated) time-series metrics, enabling greater accuracy and scalability.
Use Redis’ v1→v2 PromQL mapping or prebuilt dashboards to migrate existing charts and panels.
For details, see the Redis 8.0.2-17 Release Notes.
Version Comparison: v1 vs v2 Metrics Exporter
Use this table to understand key differences between Redis Software versions prior to and after 8.0.2-17:
| Feature | Redis Software ≤ 8.0.2-16 (/v1) | Redis Software ≥ 8.0.2-17 (/v2) |
|---|---|---|
| Exporter path | /v1 |
/v2 |
| Metrics type | Aggregated counters | Raw time-series metrics |
| Scale and accuracy | Moderate | High. Metrics from all nodes are aggregated server-side, so a single endpoint returns the full cluster view. |
| Authentication | Optional | Optional (uses the same metrics_auth flag) |
| Internal alerts | Included | Deprecated. Use external Prometheus or Datadog alerting rules instead. |
| PromQL compatibility | Legacy metric names | Updated metric names (see the Redis v1 to v2 metric mapping guide) |
Troubleshooting
Dashboard values look too high, or series appear duplicated
Almost always caused by scraping more than one node. Each node returns the whole cluster's metrics, so N targets means N copies of every series and sum() panels inflated N times.
Confirm your target count in Prometheus under Status > Targets: the redis-enterprise job should show exactly one target.
To check from the query side, run count(up{job="redis-enterprise"}) and count(node_available_memory_bytes{node="1"}). Both should return 1. Any higher value is the number of duplicate scrape targets.
Fix by reducing static_configs to a single cluster-FQDN target.
Prometheus can’t connect to targets
Check that metrics_exporter is running and port 8070 is open on each node
Verify you're using the correct /v2 endpoint for Redis Enterprise 7.8.2+
Grafana dashboards are empty
Check that the Prometheus data source is correctly configured
Confirm that scrape intervals are appropriate for the metric frequency
Datadog metrics not appearing
Confirm conf.yaml contains correct node IPs and valid endpoint paths
-
Review agent logs using:
journalctl -u datadog-agent
High shard or proxy CPU
Before acting on CPU figures, confirm you are scraping a single target (see "Dashboard values look too high" above). Duplicate scraping inflates CPU panels by the number of targets and has led customers to reshard databases unnecessarily.
Note that per-shard and per-node CPU panels sum across threads, where 100% equals one core, so values above 100% are expected for multi-threaded processes and are not by themselves a saturation signal. A Redis shard executes commands on a single main thread, so main-thread CPU approaching 100% of one core is the meaningful saturation indicator.
Use rdse.shard_cpu_pct to identify load hotspots
Investigate whether a hot key or slot is concentrating load on one shard before resharding, since resharding does not help when a single key is the bottleneck
Consider resharding the database or scaling cluster resources
Cannot scrape /v2: The cluster may still run a pre-8.0.2 version—use /v1 instead.
401/403 errors: Check metrics_auth and verify Prometheus/Datadog credentials.
Empty dashboards after upgrade: Import the v2 preconfigured dashboards or update queries using the mapping guide.
Metrics mismatch between nodes: First confirm you are scraping a single target (see "Dashboard values look too high" above), since duplicate scraping is the most common cause. If the target count is correct, verify all nodes are on the same exporter version and that scrape intervals are consistent.
0 comments
Please sign in to leave a comment.