Skip to content

Monitor Redis with OpenTelemetry

Osuite monitors Redis through the OpenTelemetry Collector’s redis receiver, which runs the INFO command against a single instance and exports the results as metrics over OTLP. Keyspace hit ratios, memory pressure, and client counts arrive with the same resource attributes as your services, so a latency spike in APM correlates with the cache behind it.

  • A reachable Redis server (3.0 or later).
  • If the server sets requirepass or uses ACLs, a password (or a read-only ACL user permitted to run INFO).

Export the password to the Collector’s environment if one is required:

Terminal window
export REDIS_PASSWORD='a-strong-password'
  1. Add the redis receiver, the otlp/osuite exporter, and a metrics pipeline. Pick the tab that matches where your Collector runs — only the receiver endpoint changes.

    receivers:
    redis:
    endpoint: localhost:6379
    password: ${env:REDIS_PASSWORD}
    collection_interval: 30s
    processors:
    batch:
    resourcedetection:
    exporters:
    otlp/osuite:
    endpoint: ingest.<region>.osuite.io:443
    headers:
    x-osuite-ingest-token: <your-ingest-token>
    service:
    pipelines:
    metrics:
    receivers: [redis]
    processors: [batch, resourcedetection]
    exporters: [otlp/osuite]
  2. Start the Collector. On Docker and Kubernetes, the Collector and Redis must share a network so the endpoint resolves.

What you should see

Metrics named redis.* appear in Dashboards → Explore metrics within a minute, tagged with the host or pod the Collector runs on.

MetricDescriptionUnit
redis.clients.connectedClient connections, excluding replicas{client}
redis.clients.blockedClients pending on a blocking call{client}
redis.commandsCommands processed per second{ops}/s
redis.commands.processedTotal commands processed since start{command}
redis.connections.receivedConnections accepted by the server{connection}
redis.keyspace.hitsSuccessful key lookups{hit}
redis.keyspace.missesFailed key lookups{miss}
redis.memory.usedMemory allocated by RedisBy
redis.db.keysKeys per keyspace{key}
redis.cpu.timeCPU consumed since server starts

Enable replication, RDB persistence, and network-throughput metrics with the receiver’s optional metric toggles when you need them.

Once metrics arrive, build a Redis dashboard in the dashboard builder from the series above. Alerts in Osuite are PromQL-based — see Alerts. Useful starting conditions: a low hit ratio (redis.keyspace.hits versus redis.keyspace.misses), redis.memory.used nearing maxmemory, and a rising redis.clients.blocked count.

  • NOAUTH / WRONGPASS — confirm REDIS_PASSWORD matches the server’s requirepass or ACL user.
  • No metrics — confirm the Collector can reach the port and that the instance answers INFO (some managed Redis services restrict it).

No data in Osuite after a few minutes? Work through these checks.

  • Endpoint — confirm the exporter targets exactly ingest.<region>.osuite.io:443 for your region, over TLS.
  • Token — confirm the ingest header carries a valid <your-ingest-token> and has not been rotated.
  • Pipeline — confirm the signal you expect (traces, logs, or metrics) is wired into an active pipeline with the otlp/osuite exporter attached.
  • Export errors — check the application or Collector logs for OTLP export failures (auth, DNS, TLS, connection refused).
  • Network — confirm the host has outbound access to the ingest endpoint on port 443.
  • Timing — allow up to a minute for the first data to appear before assuming a failure.

Still stuck? Ask the Investigation Agent or contact support.