RedisDB
RedisDB
Overview
The Redis integration with Motadata AIOps captures health, performance, memory, persistence, replication, and keyspace KPIs from Redis servers. Metrics are grouped by subsystem for clearer monitoring and alerting.
Prerequisites
Ensure the following before onboarding Redis:
- Redis server is reachable over the network.
- The Redis INFO command (or equivalent API/exporter) is enabled for the monitoring user.
- Required credentials/allowlist are configured (if
requirepass/ACLs are used). - The device is discovered in AIOps using the supported protocol/collector.
List of Supported KPIs
Server / General
| Metric | Description | Type |
|---|---|---|
| redis.version | Redis server version. | String |
| redis.git.dirty | Whether the source tree had local changes at build time (0/1). | Boolean |
| redis.build.id | Build identifier. | String |
| redis.mode | Server mode (standalone/cluster/sentinel). | String |
| redis.os | Host operating system. | String |
| redis.architecture | CPU architecture (e.g., x86_64, arm64). | String |
| redis.process.id | Redis process ID. | Integer |
| redis.run.id | Random server run ID. | String |
| redis.tcp.port | TCP port Redis listens on. | Integer |
| redis.uptime.seconds | Uptime since start in seconds. | Seconds |
| redis.uptime.days | Uptime since start in days. | Count |
| redis.hz | Server hz frequency. | Integer |
| redis.configured.hz | Configured hz value when dynamic. | Integer |
| redis.lru.clock.hz | Approximate LRU clock value. | Integer |
| redis.active.io.threads | Number of active I/O threads. | Count |
Clients
| Metric | Description | Type |
|---|---|---|
| redis.connected.clients | Currently connected clients. | Count |
| redis.client.recent.max.input.buffer.bytes | Peak input buffer size seen recently. | Bytes |
| redis.client.recent.max.output.buffer.bytes | Peak output buffer size seen recently. | Bytes |
| redis.blocked.clients | Clients blocked by commands like BLPOP. | Count |
| redis.tracking.clients | Clients with client-side tracking enabled. | Count |
| redis.time.out.clients | Clients in the timeout table. | Count |
Memory
| Metric | Description | Type |
|---|---|---|
| redis.memory.used.percent | Overall memory used vs. system/max. | Percent |
| redis.memory.used.bytes | Total memory used by Redis. | Bytes |
| redis.memory.used.rss.bytes | Resident set size (RSS). | Bytes |
| redis.memory.used.peak.bytes | Peak memory consumed. | Bytes |
| redis.memory.used.peak.percent | Peak memory vs. max. | Percent |
| redis.memory.used.overhead.bytes | Overhead (non-data) memory. | Bytes |
| redis.memory.used.startup.bytes | Memory consumed at startup. | Bytes |
| redis.memory.used.dataset.bytes | Memory used by dataset. | Bytes |
| redis.memory.used.dataset.percent | Dataset memory vs. total. | Percent |
| redis.allocator.allocated.bytes | Allocator allocated bytes. | Bytes |
| redis.allocator.active.bytes | Allocator active bytes. | Bytes |
| redis.allocator.resident.bytes | Allocator resident bytes. | Bytes |
| redis.system.memory.capacity.bytes | Total system memory. | Bytes |
| redis.memory.used.lua.bytes | Lua engine memory. | Bytes |
| redis.memory.used.scripts.bytes | Cached Lua scripts memory. | Bytes |
| redis.cached.scripts | Number of cached Lua scripts. | Count |
| redis.max.memory.bytes | maxmemory setting. | Bytes |
| redis.max.memory.policy | Eviction policy. | String |
| redis.allocator.frag.ratio.percent | Allocator fragmentation ratio. | Percent |
| redis.allocator.frag.bytes | Allocator fragmentation bytes. | Bytes |
| redis.allocator.rss.ratio.percent | Allocator RSS ratio. | Percent |
| redis.allocator.rss.bytes | Allocator RSS bytes. | Bytes |
| redis.rss.overhead.ratio.percent | RSS overhead ratio. | Percent |
| redis.rss.overhead.bytes | RSS overhead bytes. | Bytes |
| redis.memory.fragmentation.ratio.percent | Memory fragmentation ratio. | Percent |
| redis.memory.fragmentation.bytes | Fragmentation bytes. | Bytes |
| redis.memory.non.evict.bytes | Memory not counted for eviction. | Bytes |
| redis.memory.replication.backlog.bytes | Replication backlog size. | Bytes |
| redis.memory.clients.slaves.bytes | Replica (slave) clients memory. | Bytes |
| redis.memory.clients.normal.bytes | Normal clients memory. | Bytes |
| redis.memory.aof.buffer.bytes | AOF buffer memory. | Bytes |
| redis.memory.allocator | Allocator in use (jemalloc etc.). | String |
| redis.active.defrag.running | Active defragmentation is running (0/1). | Boolean |
| redis.lazyfree.pending.objects | Pending objects for lazy free. | Count |
Persistence (RDB / AOF / Module Fork)
| Metric | Description | Type |
|---|---|---|
| redis.loading | Server is loading a dataset (0/1). | Boolean |
| redis.rdb.unsaved.changes | Changes since last successful RDB save. | Count |
| redis.rdb.bg.save.in.progress | Background RDB save running (0/1). | Boolean |
| redis.rdb.last.save.time | Last successful RDB save timestamp. | Timestamp |
| redis.rdb.last.bg.save.status | Result of last background RDB save. | String |
| redis.rdb.last.bg.save.time.seconds | Duration of last RDB BGSAVE. | Seconds |
| redis.rdb.current.bg.save.time.seconds | Elapsed time of current RDB BGSAVE. | Seconds |
| redis.rdb.last.cow.size.bytes | Copy-on-write size used by last RDB. | Bytes |
| redis.aof.enabled | AOF persistence enabled (0/1). | Boolean |
| redis.aof.rewrite.in.progress | AOF rewrite in progress (0/1). | Boolean |
| redis.aof.rewrite.scheduled | AOF rewrite scheduled (0/1). | Boolean |
| redis.aof.last.rewrite.time.seconds | Duration of last AOF rewrite. | Seconds |
| redis.aof.current.rewrite.time.seconds | Elapsed time of current AOF rewrite. | Seconds |
| redis.aof.last.bg.rewrite.status | Result of last AOF BGREWRITEAOF. | String |
| redis.aof.last.write.status | Status of last AOF write. | String |
| redis.aof.last.cow.size.bytes | COW size used by last AOF. | Bytes |
| redis.module.fork.in.progress | Module fork in progress (0/1). | Boolean |
| redis.module.fork.last.cow.size.bytes | COW size used by last module fork. | Bytes |
Stats & Performance
| Metric | Description | Type |
|---|---|---|
| redis.received.connections.rate | New connections per interval. | Count |
| redis.processed.commands.rate | Commands processed per interval. | Count |
| redis.instantaneous.ops.per.sec | Instantaneous ops per second. | Count |
| redis.total.net.input.bytes | Cumulative network input. | Bytes |
| redis.total.net.output.bytes | Cumulative network output. | Bytes |
| redis.instantaneous.input.bytes.per.sec | Incoming bandwidth rate. | Bytes/sec |
| redis.instantaneous.output.bytes.per.sec | Outgoing bandwidth rate. | Bytes/sec |
| redis.rejected.connections.rate | Rejected connections per interval. | Count |
| redis.sync.full | Full resynchronizations. | Count |
| redis.sync.partial.ok | Successful partial resyncs. | Count |
| redis.sync.partial.err | Failed partial resyncs. | Count |
| redis.expired.keys | Keys expired since start. | Count |
| redis.expired.stale.percent | Stale percentage in active expire. | Percent |
| redis.expire.time.cap.reached | Expire cycle time cap reached (0/1). | Boolean |
| redis.expire.cycle.cpu.ms | CPU ms spent in expire cycle. | Milliseconds |
| redis.evicted.keys | Keys evicted due to maxmemory. | Count |
| redis.keyspace.hits | Successful key lookups. | Count |
| redis.keyspace.misses | Missed key lookups. | Count |
| redis.pubsub.channels | Active Pub/Sub channels. | Count |
| redis.pubsub.patterns | Active Pub/Sub patterns. | Count |
| redis.latest.fork.micro.seconds | Duration of last fork() call. | Microseconds |
| redis.migrate.cached.sockets | Migrated cached sockets. | Count |
| redis.slave.expires.tracked.keys | Replica-tracked EXPIRE keys. | Count |
| redis.active.defrag.hits | Active defrag hits. | Count |
| redis.active.defrag.misses | Active defrag misses. | Count |
| redis.active.defrag.key.hits | Key-level defrag hits. | Count |
| redis.active.defrag.key.misses | Key-level defrag misses. | Count |
| redis.tracking.keys | Number of tracked keys. | Count |
| redis.tracking.items | Number of tracked items. | Count |
| redis.tracking.prefixes | Number of tracked prefixes. | Count |
| redis.unexpected.error.replies | Unexpected error replies. | Count |
| redis.reads.processed | File descriptor reads processed. | Count |
| redis.writes.processed | File descriptor writes processed. | Count |
| redis.io.threaded.reads.processed | Reads processed by I/O threads. | Count |
| redis.io.threaded.writes.processed | Writes processed by I/O threads. | Count |
Replication
| Metric | Description | Type |
|---|---|---|
| redis.replication.role | Replication role (master/replica). | String |
| redis.replication.connected.slaves | Connected replicas. | Count |
| redis.replication.master.replication.offset | Master replication offset. | Count |
| redis.replication.second.replication.offset | Replica second replication offset. | Count |
| redis.replication.active.backlog | Backlog is active (0/1). | Boolean |
| redis.replication.backlog.bytes | Backlog size. | Bytes |
| redis.replication.backlog.first.byte.offset | Backlog first byte offset. | Count |
| redis.replication.backlog.used.bytes | Backlog used bytes. | Bytes |
CPU
| Metric | Description | Type |
|---|---|---|
| redis.system.cpu.seconds | System CPU time (main thread). | Seconds |
| redis.user.cpu.seconds | User CPU time (main thread). | Seconds |
| redis.system.children.cpu.seconds | System CPU time (children). | Seconds |
| redis.user.children.cpu.seconds | User CPU time (children). | Seconds |
Cluster
| Metric | Description | Type |
|---|---|---|
| redis.cluster.enabled | Cluster mode enabled (0/1). | Boolean |
Keyspace
| Metric | Description | Type |
|---|---|---|
| redis.db | Logical database identifier (e.g., db0). | String |
| redis.db.keys | Number of keys in the DB. | Count |
| redis.db.expires | Keys with an expiration set. | Count |
| redis.db.avg.ttl | Average TTL of keys (ms). | Milliseconds |