MakeStack
Back to Feed

Redis observability with Grafana, Mimir, Loki, Tempo, and Alloy

A Docker Compose observability stack with Grafana, Loki, Mimir, Tempo, Alloy, and a standalone Redis instance, with Redis metrics available in Grafana through Mimir.

Service versions and responsibilities
ServiceImageRole
grafanagrafana/grafana:13.1.0web UI and data source provisioning
redisredis:8.8.0standalone data store, AOF persistence, and metrics target
lokigrafana/loki:3.7.3log storage
mimirgrafana/mimir:3.1.2metrics storage
alloygrafana/alloy:v1.17.0collector, embedded exporter, and OTLP receiver
tempografana/tempo:3.0.2application trace storage

The main metrics path is Redis -> Alloy -> Mimir -> Grafana.

This stack runs one authenticated Redis container with append-only persistence enabled. Grafana reads Redis and node metrics from Mimir, so throughput, client pressure, memory, keyspace growth, latency, persistence, and host resources can be investigated from the same UI as logs and application traces.

Redis metrics flow#

Alloy runs one embedded Redis exporter component, connects it to redis:6379 with the configured password, labels the instance and member as redis, and remote-writes the samples to Mimir. In the same process, Alloy collects node metrics, forwards Docker logs to Loki, accepts OTLP telemetry, and sends application traces to Tempo.

Examplepromql
count by(__name__) ({__name__=~"redis_.+"})

Redis dashboard coverage#

The Redis dashboard is organized around operational questions: whether the instance is reachable, which commands dominate its workload, whether clients are blocked or rejected, how memory and keyspace behave, which commands are slow, whether persistence is healthy, what Redis logs report, and whether the host has enough resources.

Server Health and Availability

Covers instance status, uptime, Redis version and build information, restart detection, exporter scrape errors, and container-health signals.

Traffic, Commands, and Clients

Covers operations per second, command mix, connected and blocked clients, connection churn, rejected connections, network throughput, client buffers, and pub/sub activity.

Replication Monitoring

Shows an explicit standalone-topology note. Replica links, lag, offsets, synchronization, resync, and backlog panels are omitted because replication is not configured.

Memory, Keyspace, and Evictions

Covers used, resident, and peak memory, fragmentation, maxmemory, evictions, expirations, keyspace hits and misses, and key counts by logical database.

Command Performance

Covers command execution time, call and failure rates, rejected commands, latency percentiles, event-loop load, and the latest fork duration.

Slowlog and Latency Analytics

Covers slowlog growth, recent slow-command duration, latency by command, blocked operations, and log views for slow operations and latency events.

Persistence and Durability

Covers RDB save status and duration, unsaved changes, AOF enablement, rewrite status, AOF size, delayed fsyncs, and persistence risk.

Client, Connection, and Blocking Troubleshooting

Covers connected and blocked clients, timeout-table entries, output-buffer pressure, rejected connections, authentication denials, disconnects, pub/sub clients, and blocking keys.

Redis Log Analytics

Covers all Redis logs plus focused views for warnings and errors, authentication and ACL failures, persistence activity, startup, shutdown, and restart events.

System and Container Resource Usage

Covers host CPU, load, memory, network throughput, filesystem capacity, disk I/O, Redis resident memory, persistence-file growth, and Redis availability as a container-health proxy.

The dashboard uses stat, gauge, table, bar chart, pie chart, heatmap, logs, and time-series visualizations instead of forcing every metric into a line chart. Its standalone rendering replaces replica-only panels with a clear topology note rather than empty or fabricated replication data.

Logs and traces#

Alloy reads Docker container logs, adds project, service, container, and container_id labels, and forwards the streams to Loki. The dashboard uses those labels for Redis log views covering slow operations, latency, authentication, warnings, errors, and persistence activity.

For OTLP traffic, Alloy exposes gRPC on 4317 and HTTP on 4318. OTLP logs are converted for Loki, OTLP metrics are converted to Prometheus remote write for Mimir, and OTLP traces are batched and sent to Tempo. Tempo is reserved for application traces; the Redis dashboard does not depend on traces.

Alloy telemetry routing
SourceDestination
Docker container logsLoki
OTLP logs on 4317/4318Loki
OTLP metrics on 4317/4318Mimir
OTLP traces on 4317/4318Tempo
Node exporter metricsMimir
Redis exporter metricsMimir