跳转至

Redis

Redis 是一个开源、支持网络、基于内存、键值对存储数据库,使用 ANSI C 编写。根据月度排行网站 DB-Engines.com 的数据显示,Redis 是最流行的键值对存储数据库。

Cloud Insight 通过收集 Redis 连接访问情况来监控,可视化 Redis 性能。


性能指标

Cloud Insight 采集 Redis 以下性能指标:

指标 单位 具体含义
redis.aof.buffer_length bytes AOF 缓冲区大小
redis.aof.last_rewrite_time seconds 上次 AOF 重写(rewrite)的持续时间
redis.aof.rewrite AOF 重写(rewrite)的次数
redis.aof.size bytes AOF 当前文件大小(aof_current_size)
redis.clients.biggest_input_buf 当前客户端连接的最大输入缓存
redis.clients.blocked connections 等待阻塞调用的连接数
redis.clients.longest_output_list 当前客户端连接的最长输出列表
redis.cpu.sys seconds Redis 服务器消耗的系统 CPU
redis.cpu.sys_children seconds 后台进程消耗的系统 CPU
redis.cpu.user seconds Redis 服务器消耗的用户 CPU
redis.cpu.user_children seconds 后台进程消耗的用户 CPU
redis.expires keys 已过期的 key 数量
redis.expires.percent percent 已过期的 key 百分比
redis.info.latency_ms milliseconds Redis info 命令的延迟
redis.key.length 给定 key 中元素的数量
redis.keys keys Key 的总数量
redis.keys.evicted keys 由于最大内存限制被驱逐(evict)的 key 的总数量
redis.keys.expired keys 数据库中过期的 key 的总数量
redis.mem.fragmentation_ratio fractions used_memory_rss 和 used_memory 的比率
redis.mem.lua bytes Lua 引擎使用的内存量
redis.mem.peak bytes Redis 使用的内存的峰值
redis.mem.rss bytes 系统给 Redis 分配的内存
redis.mem.used bytes 已经被 Redis 分配的内存量
redis.net.clients connections 连接的客户端数 (不包括 slaves)
redis.net.commands commands 服务器运行的命令数
redis.net.rejected connections 被拒绝的连接数
redis.net.slaves connections 连接的 slave 数
redis.perf.latest_fork_usec microseconds 最新 fork 的持续时间
redis.persist keys 持久化的 key 数(redis.keys - redis.expires)
redis.persist.percent percent 持久化的 key 的百分比
redis.pubsub.channels 活跃的发布/订阅的频道数量
redis.pubsub.patterns 活跃的发布/订阅的模式数量
redis.rdb.bgsave 一个标志值,记录了服务器是否正在创建 RDB 文件,正在进行中是 1,否则是 0
redis.rdb.changes_since_last 上次后台保存后,RDB 的改动
redis.rdb.last_bgsave_time seconds 最近一次 bg_save 操作的持续时间
redis.replication.backlog_histlen bytes 积压在同步缓冲区的数据量
redis.replication.delay offsets 复制延迟的偏移
redis.replication.last_io_seconds_ago seconds 距离最近一次与主服务器行通信已经过去了多少秒钟
redis.replication.master_link_down_since_seconds seconds 主从服务器连接断开了多少秒
redis.replication.master_repl_offset offsets 从 master 报告的复制偏移量
redis.replication.slave_repl_offset offsets 从 slave 报告的复制偏移量
redis.replication.sync 一个标志值,如果同步正在进行,则为 1,否则为 0
redis.replication.sync_left_bytes bytes 距离同步完成还剩多少数据量
redis.slowlog.micros.95percentile microseconds 在慢日志中,查询报告的持续时间的第 95 百分位值
redis.slowlog.micros.avg microseconds 在慢日志中,查询报告的持续时间平均值
redis.slowlog.micros.count queries/second 在慢日志中,报告的查询速率
redis.slowlog.micros.max microseconds 在慢日志中,查询报告的持续时间最大值
redis.slowlog.micros.median microseconds 在慢日志中,查询报告的持续时间中位值
redis.stats.keyspace_hits keys 在数据库中查找 key 成功的次数
redis.stats.keyspace_misses keys 在数据库中查找 key 失败的次数

配置 Redis 监控

编辑配置文件

编辑配置文件 conf.d/redisdb.yaml,使 Cloud Insight Agent 可以与 Redis 通信。

init_config:

instances:
  - host: localhost
    port: 6379
    password: mypassword
    tags:
      - tag_key1:tag_value1
      - tag_key2:tag_value2
    keys:
      - queue1

重启 Agent

重启 Cloud Insight Agent,使配置生效。 您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功'。

Checks
======

[...]

redisdb
-------
  - instance #0 [OK]
  - Collected 8 metrics & 0 events

有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作


默认标签

Cloud Insight 采集 Redis 以下默认主机标签:

标签种类 标签含义
redis_host 主机名称(例如 "redis_master")
redis_port 主机端口(例如 "6379")
redis_db 数据库实例(例如 "db0")
key 键名(例如 "test")

5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题