Monitoring in Redis helps ensure performance, availability, and system health by exposing real-time metrics at every layer of the deployment. This guide covers Monitoring Methods including the Redis UI Console, Metrics Exporter, and REST API; options for Monitoring Tools Integration such as Prometheus, Grafana, Datadog, and others; a detailed list of Key Metrics to Monitor along with example thresholds; a Step-by-Step Monitoring Setup to enable exporters and dashboards; guidance for Troubleshooting Common Issues like memory pressure or latency spikes.
Monitoring Methods
Redis UI Console
- View real-time metrics at Cluster, Node, DB, and Shard levels.
- Metrics include: ops/sec, latency, CPU/Memory usage, disk space, connections, and network I/O.
- Tabs include Cluster, Nodes, DB, and Shards, each with specific stats.
- Limitations: No historical data, limited granularity. Best for quick checks.
Metrics Exporter (Port 8070)
- Redis exposes detailed metrics via HTTP on port 8070.
- Use the
/v2endpoint when running Redis Software 8.0.2-17+ (metrics stream engine GA).On the 7.8 and 7.22 lines, /v2 availability varies by build. Check the release notes for the specific version.
-
For versions that do not support /v2, use the v1 endpoint. Its path is /, for example https://<cluster_fqdn>:8070/.
V1 is deprecated as of 7.8.2 but still available, and both endpoints can be scraped at the same time during a transition.
- Categories include Cluster, Node, DB, Shard, Proxy, and Syncer.
- Example metrics: CPU, RAM, latency, ops/sec, eviction, hit ratio, service status.
REST API
- Returns real-time stats from Redis.
- Used by integrations like AppDynamics and Dynatrace.
- Supports orchestration and automation.
Monitoring Tools Integration
Prometheus & Grafana
- Prometheus scrapes metrics from exporter— Grafana visualizes data.
- Redis offers prebuilt dashboards: Cluster Status, DB Status.
- Prometheus & Grafana Integration
Datadog
- Integrate via Prometheus metrics collector.
- Dashboards include: Overview, Node, Shard, DB, Proxy, CRDB.
- Datadog Integration Guide
New Relic
- Agent-based monitoring with Prometheus integration.
- Prebuilt Redis dashboards available.
- New Relic Integration
AppDynamics
- Pulls stats from REST API.
- Visualizes cluster-level and DB-level metrics.
Dynatrace
- Uses ActiveGate secure proxy to scrape Redis metrics.
- Includes dashboard templates and setup scripts.
- Dynatrace Integration Guide
Other Tools
- Any tool that can scrape from port 8070 or call the REST API (9443) is compatible.
- Examples: OpenTelemetry, Telegraf.
Key Metrics to Monitor
Memory
- Monitor across Node, DB, and Shard.
- Alert if usage exceeds 80%.
CPU
- Monitor node and shard CPU usage.
- Redis is single-threaded, but services (proxy, syncer) require CPU.
Throughput (ops/sec)
- Indicates app request volume.
Latency
- Key performance indicator.
- Alert on spikes or trends.
Client Connections
- Watch for spikes or near limits.
Users Count
Tracks the total number of users configured in the cluster.
Metric:
users_countAlert:
cluster_users_count_approaches_limit(triggers when usage nears 90% of the 32,000-user ceiling)
Evictions/Expiry
- May signal memory exhaustion.
File Storage
- Persistent & ephemeral disk space for logs, backups, configs.
Network I/O
- Ingress/egress throughput per node.
Metric Threshold Examples
| Metric | Prometheus Name | Unit | Range |
|---|---|---|---|
| DB Latency | bdb_avg_latency |
seconds | 0.001–0.01 |
| Free RAM | node_free_memory |
bytes | > 65% of the node's RAM, expressed in bytes (note 1) |
| Node CPU Idle | node_cpu_idle |
ratio, 0–1 | 0.6–0.8 |
| Persistent Storage Free |
node_persistent_storage_free / node_persistent_storage_avail
|
ratio, 0–1 | > 0.70 |
| Ops/sec | irate(redis_total_commands_processed[$__rate_interval]) |
operations per second | 22k–25k (note 2) |
| Shard Memory | redis_used_memory |
bytes | 22–25 GB |
| Shard CPU | redis_process_cpu_usage_percent |
percent | 60–80% |
| Connections | redis_connected_clients |
count, per shard | 6k–9k |
A percentage cannot be computed from
node_free_memoryalone, because v1 exposes no node total-memory metric. Either set the threshold to a byte value matching 65% of your node's RAM, or on the v2 endpoint usenode_memory_MemFree_bytes/node_memory_MemTotal_bytes.redis_total_commands_processedis a cumulative counter that only increases, so wrap it inirate()to read a per-second rate.
Read more here: Transition from Prometheus v1 to Prometheus v2
CRDB-Specific
| Metric | Prometheus Name | Expected |
|---|---|---|
| CRDB Lag | bdb_crdt_syncer_local_ingress_lag_time | 0–10ms |
| Syncer Status | bdb_crdt_syncer_status | 0 (in-sync) |
| Replica Lag | bdb_replicaof_syncer_local_ingress_lag_time | 0–10ms |
| Replica Status | bdb_replicaof_syncer_status | 0 (in-sync) |
Step-by-Step Monitoring Setup
1. Enable Metrics Exporter
- Ensure port 8070 is open.
Where
/v2is available, use it against the cluster FQDN:https://<cluster_fqdn>:8070/v2. Do not use a node IP address.-
Configure exactly one scrape target. The v2 endpoint is cluster-wide: every node aggregates metrics from all nodes and returns the same complete result.
Adding one target per node duplicates every series and multiplies every
sum()-based dashboard panel by the number of targets.This fails silently, since Prometheus reports all targets as up and Grafana renders normally. Using the cluster FQDN as the single target also keeps metrics available if an individual node goes down.
2. Integrate Monitoring Tools
- Set up Prometheus, Datadog, or other tools using Redis documentation.
- Import Redis dashboards into Grafana or other platforms.
3. Set Up Alerts and Dashboards
- Configure alerts for memory, CPU, shard size, latency.
- Use time-series visualizations for trend analysis.
See Alerts and Events for details on supported alert types, delivery options, and event tracking.
Troubleshooting Common Issues
Memory Usage at Limit
- Symptom: Evictions, degraded throughput.
- Fix: Scale memory, adjust eviction policy, rebalance data.
High CPU
- Symptom: CPU > 80% consistently.
- Fix: Analyze slowlog, optimize queries, reshard or scale.
Latency or Throughput Drop
- Symptom: Slower command response.
- Fix: Check hotkeys, shard balance, network congestion.
Connection Failures
- Symptom: Client timeouts or dropped sessions.
- Fix: Check redis-cli connectivity, endpoint auth, TLS config.
Disk or Resource Pressure
- Symptom: Disk > 90%, RAM or CPU saturated.
- Fix: Clean logs, investigate unbounded growth.
Dashboard values look too high, or series appear duplicated
Symptom:
sum()-based panels read as an exact multiple of the true value.Fix: Confirm you are scraping a single target. In Prometheus, check Status > Targets, or run
count(up{job="redis-enterprise"}), which should return 1. Reducestatic_configsto a single cluster-FQDN target.
Log Analysis
- Path:
/var/opt/redislabs/log/ - Files:
event_log.log,cluster_wd.log,dmcproxy.log,supervisord.log
0 comments
Please sign in to leave a comment.