本文档整理了监控功能的完整指标清单,覆盖代理节点、数据节点、缓存数据库实例 三个维度,每个指标均包含计算方式说明。
一、代理节点监控指标
Proxy 节点指标为各节点独立上报,无需跨节点聚合。
1.1 CPU 监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
CPU 使用率 | cpu_util | % | Proxy CPU 使用率 | 实时采集 Proxy 进程的 CPU 使用率 |
1.2 请求监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
总请求 | proxy_commands | 次/秒 | Proxy 执行的命令数 | 读取 Proxy 命令计数器 |
Key 请求数 | cmd_key_count | 个/秒 | 命令访问的 Key 个数 | 读取 Proxy 内部 Key 访问计数器 |
Mget 请求数 | cmd_mget | 次/秒 | Mget 命令执行次数 | 读取 Proxy 的 Mget 命令计数器 |
执行错误 | cmd_err | 次/秒 | Proxy 命令执行错误的次数(命令不存在、参数错误等) | 读取 Proxy 的错误命令计数器 |
大 Value 请求 | cmd_big_value | 次/秒 | 请求命令大小超过32KB的执行次数 | 读取 Proxy 的大 Value 请求计数器 |
连接最大命令数 | connect_commands_max | 次 | 单个连接上执行命令数的最大值 | 读取 Proxy 内部各连接的命令计数器,取最大值 |
1.3 网络监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
连接数量 | connections | 个 | 连接到实例的 TCP 连接数量 | 直接读取当前 TCP 连接数 |
连接使用率 | connections_util | % | 实际 TCP 连接数量和最大连接数占比 | 当前连接数 / 最大连接数 × 100% |
节点最大连接数使用率 | connections_max_util | % | 所有 Proxy 节点中,各节点连接数占比的最大值 | MAX(各 Proxy 节点的 connections / 该节点最大连接数) × 100% |
入流量 | in_flow | Mb/s | 每秒流入数据库的流量 | 读取入站流量计数器 |
入流量使用率 | in_bandwidth_util | % | 内网入流量实际使用和最大带宽的占比 | 入流量 / 最大入带宽 × 100% |
入流量限流触发 | in_flow_limit | 次 | 入流量超过最大带宽的次数 | 读取入流量限流触发计数器 |
出流量 | out_flow | Mb/s | 每秒流出数据库的流量 | 读取出站流量计数器 |
出流量使用率 | out_bandwidth_util | % | 出流量实际使用和最大带宽的占比 | 出流量 / 最大出带宽 × 100% |
出流量限流触发 | out_flow_limit | 次 | 出流量超过最大带宽的次数 | 读取出流量限流触发计数器 |
1.4 时延监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
平均执行时延 | latency_avg | ms | Proxy 到数据节点的执行时延平均值 | 统计采集周期内所有命令的平均执行耗时 |
最大执行时延 | latency_max | ms | Proxy 到数据节点的执行时延最大值 | 统计采集周期内所有命令的最大执行耗时 |
读平均时延 | latency_read | ms | Proxy 到数据节点的读命令平均执行时延 | 统计采集周期内读命令的平均执行耗时 |
写平均时延 | latency_write | ms | Proxy 到数据节点的写命令平均执行时延 | 统计采集周期内写命令的平均执行耗时 |
其他命令平均时延 | latency_other | ms | Proxy 到数据节点的读写命令之外的命令平均执行时延 | 统计采集周期内其他类型命令的平均执行耗时 |
P99 时延 | latency_p99 | ms | Proxy 到数据节点的执行时延 99% 水位线 | MAX: MAX(所有 Proxy 节点的 latency_p99) |
二、数据节点监控指标(数据节点)
数据节点节点指标覆盖所有主节点和副本节点。
2.1 CPU 监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
CPU 使用率 | cpu_util | % | 平均 CPU 使用率 | 直接读取 Redis INFO 中的 CPU 使用率(实时状态采集) |
2.2 网络监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
连接数量 | connections | 个 | Proxy 连接到节点的连接数 | 直接读取当前连接数(实时状态采集) |
连接使用率 | connections_util | % | 节点连接数使用率 | 当前连接数 / 最大连接数 × 100% |
2.3 内存监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
内存使用量 | mem_used | MB | 实际使用内存容量,包含数据和缓存部分 | 直接读取 Redis INFO 中的 used_memory(实时状态采集) |
内存使用率 | mem_util | % | 实际使用内存和申请总内存之比 | used_memory / maxmemory × 100% |
内存倾斜率 | mem_slope_util | % | 统计每个分片主节点的内存使用量与所有分片主节点内存占用平均值的比值 | 节点 mem_used / AVG(所有主节点 mem_used) × 100%说明: 监控指标大于100%,说明该节点存在倾斜。 |
Key 总个数 | keys | 个 | 实例存储的总 Key 个数(一级 Key) | 直接读取 Redis INFO 的 db0:keys(实时状态采集) |
Key 过期数 | expired | 个 | 时间窗内被淘汰的 Key 个数 | 增量计算: 当前 expired_keys - 上次 expired_keys |
Key 驱逐数 | evicted | 个 | 时间窗内被驱逐的 Key 个数 | 增量计算: 当前 evicted_keys - 上次 evicted_keys |
Key 设置过期时间数 | expires | 个 | 实例中设置过期时间的 Key 数量(一级 Key) | 直接读取 Redis INFO 的 db0:expires(实时状态采集) |
复制延迟 | repl_delay | Byte | 副本节点的相对主节点命令延迟长度 | 条件采集(仅 Master 采集,归属 Slave): master_repl_offset - slave_offset |
2.4 请求监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
总请求 | commands | 次/秒 | QPS,命令执行次数 | 速率计算: (当前 total_commands_processed - 上次值) / 采集间隔 |
读请求 | cmd_read | 次/秒 | 读命令执行次数 | 速率计算: (当前读命令累计数 - 上次值) / 采集间隔 |
写请求 | cmd_write | 次/秒 | 写命令执行次数 | 速率计算: (当前写命令累计数 - 上次值) / 采集间隔 |
其他请求 | cmd_other | 次/秒 | 读写命令之外的命令执行次数 | 速率计算: (当前其他命令累计数 - 上次值) / 采集间隔 |
总请求倾斜率 | qps_slope_util | % | 统计每个分片的请求数量与实例内参与聚合的节点请求量平均值的比值 | 节点请求量 / AVG(参与聚合的节点请求量) × 100%。说明: 如果开启副本只读,统计将包含副本只读节点读请求的数量。 监控指标大于100%,说明该节点存在倾斜。 |
2.5 响应监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 计算方式 |
慢查询 | cmd_slow | 次 | 执行时延大于 slowlog-log-slower-than 配置的命令请求次数 | 增量计算: 当前慢查询累计数 - 上次慢查询累计数 |
读请求命中 | cmd_hits | 次 | 读请求 Key 存在的个数(keyspace_hits) | 增量计算: 当前 keyspace_hits - 上次 keyspace_hits |
读请求 Miss | cmd_miss | 次 | 读请求 Key 不存在的个数(keyspace_misses) | 增量计算: 当前 keyspace_misses - 上次 keyspace_misses |
读请求命中率 | cmd_hits_ratio | % | 缓存命中率 | 衍生计算: cmd_hits / (cmd_hits + cmd_miss) × 100%。当访问为0时,该值为 null |
三、实例监控指标
实例级指标由监控中台从所有节点数据聚合而成,每个指标标注了聚合算法。
3.1 CPU 监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 聚合算法及计算方式 |
CPU 使用率 | cpu_util | % | 实例内所有数据节点(包括主节点和副本节点)的 CPU 使用率平均值 | AVG: SUM(所有数据节点的 cpu_util) / 数据节点总数(含主节点+副本节点) |
节点最大 CPU 使用率 | cpu_max_util | % | 实例中节点(分片或副本)最大 CPU 使用率 | MAX: MAX(所有数据节点的 cpu_util) |
3.2 内存监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 聚合算法及计算方式 |
内存使用量 | mem_used | MB | 实际使用内存容量,包含数据和缓存部分 | SUM: SUM(所有主节点的 mem_used) |
内存使用率 | mem_util | % | 实际使用内存和申请总内存之比 | SUM(所有主节点 mem_used) / 实例 maxmemory × 100% |
节点最大内存使用率 | mem_max_util | % | 实例中节点(分片或副本)最大内存使用率 | MAX: MAX(所有数据节点的 mem_util) |
Key 总个数 | keys | 个 | 实例存储的总 Key 个数(一级 Key) | SUM: SUM(所有主节点的 keys) |
Key 过期数 | expired | 个 | 时间窗内被淘汰的 Key 个数 | SUM: SUM(所有主节点的 expired) |
Key 驱逐数 | evicted | 个 | 时间窗内被驱逐的 Key 个数 | SUM: SUM(所有主节点的 evicted) |
Key 设置过期时间数 | expires | 个 | 实例中设置过期时间的 Key 数量(一级 Key) | SUM: SUM(所有主节点的 expires) |
3.3 网络监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 聚合算法及计算方式 |
连接数量 | connections | 个 | 连接到实例的 TCP 连接数量 | SUM: SUM(所有 Proxy 节点的 connections) |
连接使用率 | connections_util | % | 实际 TCP 连接数量和最大连接数比 | SUM(所有 Proxy 的 connections) / 实例最大连接数 × 100% |
节点最大连接数使用率 | connections_max_util | % | 所有 Proxy 节点中,各节点连接数占比的最大值 | MAX: MAX(各 Proxy 节点的 connections / 该节点最大连接数) × 100% |
入流量 | in_flow | Mb/s | 每秒流入数据库的流量 | SUM: SUM(所有 Proxy 节点的 in_flow) |
入流量使用率 | in_bandwidth_util | % | 内网入流量实际使用和最大带宽的占比 | SUM(所有 Proxy 的 in_flow) / 实例最大入带宽 × 100% |
节点最大入流量使用率 | in_bandwidth_max_util | % | 所有 Proxy 节点中,各节点入流量使用率的最大值 | MAX: MAX(各 Proxy 节点的 in_flow / 该节点最大入带宽) × 100% |
入流量限流触发 | in_flow_limit | 次 | 入流量超过最大带宽的次数 | SUM: SUM(所有 Proxy 节点的 in_flow_limit) |
出流量 | out_flow | Mb/s | 每秒流出数据库的流量 | SUM: SUM(所有 Proxy 节点的 out_flow) |
出流量使用率 | out_bandwidth_util | % | 出流量实际使用和最大带宽的占比 | SUM(所有 Proxy 的 out_flow) / 实例最大出带宽 × 100% |
节点最大出流量使用率 | out_bandwidth_max_util | % | 所有 Proxy 节点中,各节点出流量使用率的最大值 | MAX: MAX(各 Proxy 节点的 out_flow / 该节点最大出带宽) × 100% |
出流量限流触发 | out_flow_limit | 次 | 出流量超过最大带宽的次数 | SUM: SUM(所有 Proxy 节点的 out_flow_limit) |
3.4 时延监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 聚合算法及计算方式 |
平均执行时延 | latency_avg | ms | Proxy 到 数据节点的执行时延平均值 | AVG: SUM(所有 Proxy 的 latency_avg) / Proxy 节点数 |
最大执行时延 | latency_max | ms | Proxy 到数据节点的执行时延最大值 | MAX: MAX(所有 Proxy 节点的 latency_max) |
读平均时延 | latency_read | ms | Proxy 到数据节点的读命令平均执行时延 | AVG: SUM(所有 Proxy 的 latency_read) / Proxy 节点数 |
写平均时延 | latency_write | ms | Proxy 到数据节点的写命令平均执行时延 | AVG: SUM(所有 Proxy 的 latency_write) / Proxy 节点数 |
其他命令平均时延 | latency_other | ms | Proxy 到数据节点的读写命令之外的命令平均执行时延 | AVG: SUM(所有 Proxy 的 latency_other) / Proxy 节点数 |
P99 时延 | latency_p99 | ms | Proxy 到数据节点的执行时延 99% 水位线 | MAX: MAX(所有 Proxy 节点的 latency_p99) |
3.5 请求监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 聚合算法及计算方式 |
总请求 | commands | 次/秒 | QPS,命令执行次数 | SUM: SUM(所有主节点的 commands + 所有从节点的 cmd_read) |
读请求 | cmd_read | 次/秒 | 读命令执行次数 | SUM: SUM(所有主节点的 cmd_read + 所有从节点的 cmd_read) |
写请求 | cmd_write | 次/秒 | 写命令执行次数 | SUM: SUM(所有主节点的 cmd_write) |
其他请求 | cmd_other | 次/秒 | 读写命令之外的命令执行次数 | SUM: SUM(所有主节点的 cmd_other) |
大 Value 请求 | cmd_big_value | 次/秒 | 请求命令大小超过 32KB 的执行次数 | SUM: SUM(所有 Proxy 节点的 cmd_big_value) |
Key 请求数 | cmd_key_count | 个/秒 | 命令访问的 Key 个数 | SUM: SUM(所有 Proxy 节点的 cmd_key_count) |
Mget 请求数 | cmd_mget | 个/秒 | Mget 命令执行次数 | SUM: SUM(所有 Proxy 节点的 cmd_mget) |
慢查询 | cmd_slow | 次 | 执行时延大于 slowlog-log-slower-than 配置的命令次数 | SUM: SUM(所有主节点的 cmd_slow + 所有从节点的 cmd_slow) |
读请求命中 | cmd_hits | 次 | 读请求 Key 存在的个数(keyspace_hits) | SUM: SUM(所有主节点的 cmd_hits + 所有从节点的 cmd_hits) |
读请求 Miss | cmd_miss | 次 | 读请求 Key 不存在的个数(keyspace_misses) | SUM: SUM(所有主节点的 cmd_miss + 所有从节点的 cmd_miss) |
执行错误 | cmd_err | 次 | 命令执行错误的次数 | SUM: SUM(所有 Proxy 节点的 cmd_err) |
读请求命中率 | cmd_hits_ratio | % | 所有数据节点的读请求 Key 命中总数 /(命中总数 + 未命中总数)。当访问为 0 时,该值为 null | 加权平均: SUM(所有节点的 cmd_hits) / (SUM(所有节点的 cmd_hits) + SUM(所有节点的 cmd_miss)) × 100% |
3.6 响应监控
指标中文名 | 指标英文名 | 单位 | 指标说明 | 聚合算法及计算方式 |
慢查询 | cmd_slow | 次 | 执行时延大于 slowlog-log-slower-than 配置的命令次数 | SUM: SUM(所有主节点的 cmd_slow + 所有从节点的 cmd_slow) |
读请求命中 | cmd_hits | 次 | 读请求 Key 存在的个数(keyspace_hits) | SUM: SUM(所有主节点的 cmd_hits + 所有从节点的 cmd_hits) |
读请求 Miss | cmd_miss | 次 | 读请求 Key 不存在的个数(keyspace_misses) | SUM: SUM(所有主节点的 cmd_miss + 所有从节点的 cmd_miss) |
执行错误 | cmd_err | 次 | 命令执行错误的次数 | SUM: SUM(所有 Proxy 节点的 cmd_err) |
读请求命中率 | cmd_hits_ratio | % | 所有数据节点的读请求 Key 命中总数 /(命中总数 + 未命中总数)。当访问为 0 时,该值为 null | 加权平均: SUM(所有节点的 cmd_hits) / (SUM(所有节点的 cmd_hits) + SUM(所有节点的 cmd_miss)) × 100% |