Skip to main content

监控:REDIS数据库监控

对REDIS数据库的通用性能指标进行采集监控。支持REDIS1.0+。

配置参数

参数名称参数帮助描述
监控Host被监控的对端IPV4,IPV6或域名。注意⚠️不带协议头(eg: https://, http://)。
任务名称标识此监控的名称,名称需要保证唯一性。
端口redis对外提供的端口,默认为6379,sentinel节点默认26379
超时时间设置redis info 查询未响应数据时的超时时间,单位ms毫秒,默认3000毫秒。
数据库名称数据库实例名称,可选。
用户名数据库连接用户名,可选
密码数据库连接密码,可选
采集间隔监控周期性采集数据间隔时间,单位秒,可设置的最小间隔为30秒
是否探测新增监控前是否先探测检查监控可用性,探测成功才会继续新增修改操作
描述备注更多标识和描述此监控的备注信息,用户可以在这里备注信息

采集指标

指标集合:server

指标名称指标单位指标帮助描述
redis_versionRedis 服务器版本
redis_git_sha1Git SHA1
redis_git_dirtyGit dirty flag
redis_build_idredis 构建的id
redis_moderedis模式(包括standalone, sentinel, cluster)
osRedis 服务器的宿主操作系统
arch_bits架构(32 或 64 位)
multiplexing_apiRedis使用的事件循环机制
atomicvar_apiRedis使用的原子 API
gcc_version用于编译Redis服务器的GCC编译器版本
process_id服务器进程的PID
process_supervised受监管系统(包括:upstart、systemd、unknown、no)
run_id标识Redis服务器的随机值(由Sentinel和Cluster使用)
tcp_portTCP/IP侦听端口
server_time_usec微秒级精度的基于时间的系统时间
uptime_in_seconds自Redis服务器启动后的秒数
uptime_in_days自Redis服务器启动后的天数
hz服务器的当前频率设置,redis相关定时任务的执行频率(如清除过期key,关闭超时客户端)
configured_hz服务器配置的频率设置
lru_clock时钟每分钟递增,用于LRU管理
executable服务器可执行文件的路径
config_file配置文件的路径
io_threads_active指示I/O线程是否处于活动状态的标志
shutdown_in_milliseconds复制副本在完成关闭序列之前赶上复制的最长剩余时间。此字段仅在停机期间出现。

指标集合:clients

指标名称指标单位指标帮助描述
connected_clients客户端连接数(不包括来自副本的连接)
cluster_connections群集总线使用的套接字数量的近似值
maxclientsmaxclients配置指令的值。这是connected_clients、connected_slave和cluster_connections之和的上限。
client_recent_max_input_bufferbyte当前客户端连接中最大的输入缓冲区
client_recent_max_output_bufferbyte当前客户端连接中最大的输出缓冲区
blocked_clients阻塞呼叫挂起的客户端数(BLPOP、BRPOP、BRPOPLPUSH、BLMOVE、BZPOPMIN、BZPOPMAX)
tracking_clients正在跟踪的客户端数(CLIENT TRACKING)
clients_in_timeout_table客户端超时表中的客户端数

指标集合:memory

指标名称指标单位指标帮助描述
used_memorybyteRedis使用其分配器(标准libc、jemalloc或tcmalloc等替代分配器)分配的总字节数
used_memory_humanGB/MB/KB上一个值的人类可读表示
used_memory_rssbyte操作系统看到的Redis分配的字节数(也称为驻留集大小)。这是top(1)和ps(1)等工具报告的数字
used_memory_rss_humanGB/MB/KB上一个值的人类可读值
used_memory_peakbyteRedis消耗的峰值内存(字节)
used_memory_peak_humanGB/MB/KB上一个值的人类可读值
used_memory_peak_percused_memory_peak 与used_memory百分比
used_memory_overheadbyte服务器分配用于管理其内部数据结构的所有开销的字节总和
used_memory_startupbyteRedis在启动时消耗的初始内存量(字节)
used_memory_datasetbyte数据集的字节大小(used_memory - used_memory_overhead)
used_memory_dataset_perc已用内存数据集占净内存使用量的百分比(used_memory_dataset / (used_memory - used_memory_startup))
allocator_allocatedbyte从分配器分配的总字节数,包括内部碎片。通常与使用的内存相同
allocator_activebyte分配器活动页中的总字节数,包括外部碎片
allocator_residentbyte分配器中驻留的总字节数(RSS),包括可释放到操作系统的页面(通过MEMORY PURGE或仅等待)
total_system_memorybyteRedis主机的内存总量
total_system_memory_humanGB/MB/KB上一个值的人类可读值
used_memory_luabyteLua引擎使用的字节数
used_memory_lua_humanKB上一个值的人类可读值
used_memory_scriptsbyte缓存Lua脚本使用的字节数
used_memory_scripts_humanGB/MB/KB上一值的人类可读值
number_of_cached_scripts缓存的lua脚本数量
maxmemorybytemaxmemory配置指令的值
maxmemory_humanGB/MB/KB上一个值的人类可读值
maxmemory_policy当达到maxmemory时的淘汰策略
allocator_frag_ratioallocator_active 和 allocator_allocated之间的比率这是真实(外部)碎片度量(不是mem_fragmentation_ratio)
allocator_frag_bytesbyteallocator_active 和 allocator_allocated 之间的差值。
allocator_rss_ratio从操作系统角度看, 内存分配器碎片比例
allocator_rss_bytesbyteallocator_resident 和 allocator_active之间的差值
rss_overhead_ratioused_memory_rss和allocator_resident之间的比率,这包括与分配器或堆无关的RSS开销
rss_overhead_bytesbyteused_memory_rss和allocator_resident之间的增量
mem_fragmentation_ratiousedmemory_rss和used_memory之间的比率,注意,这不仅包括碎片,还包括其他进程开销(请参阅allocator* metrics),以及代码、共享库、堆栈等开销。
mem_fragmentation_bytesbyteused_memory_rss和used_memory之间的增量。注意,当总碎片字节较低(几兆字节)时,高比率(例如1.5及以上)不是问题的表现
mem_not_counted_for_evictbyte不应驱逐的内存大小,以字节为单位。这基本上是瞬时复制和AOF缓冲区。
mem_replication_backlogbyte复制backlog的内存大小, 以字节为单位
mem_clients_slaves副本客户端使用的内存-从Redis 7.0开始,副本缓冲区与复制积压工作共享内存,因此当副本不触发内存使用增加时,此字段可以显示0。
mem_clients_normal普通客户端使用的内存
mem_aof_buffer用于AOF和AOF重写缓冲区的临时大小
mem_allocator内存分配器,在编译时选择。
active_defrag_running启用activedefrag时,这表示碎片整理当前是否处于活动状态,以及它打算使用的CPU百分比。
lazyfree_pending_objects等待释放的对象数(使用ASYNC选项调用UNLINK或FLUSHDB和FLUSHOLL)
lazyfreed_objects已延迟释放的对象数。

指标集合:persistence

指标名称指标单位指标帮助描述
loading服务器是否正在进行持久化 0 - 否 1 -是
current_cow_sizebyte运行子fork时写入时复制内存的大小(以字节为单位)
current_cow_size_agesecondcurrent_cow_size值的年龄(以秒为单位)
current_fork_perc当前fork进程的百分比,对于AOF和RDB的fork,它是current_save_keys_processed占current_save_keys_total的百分比
current_save_keys_processed当前保存操作处理的key的数量
current_save_keys_total当前保存操作开始时的key的数量
rdb_changes_since_last_save离最近一次成功生成rdb文件,写入命令的个数,即有多少个写入命令没有持久化
rdb_bgsave_in_progress服务器是否正在创建rdb文件 0 - 否 1 - 是
rdb_last_save_timesecond最近一次创建rdb文件的时间戳,单位秒
rdb_last_bgsave_status最近一次rdb持久化是否成功 ok 成功
rdb_last_bgsave_time_secsecond最近一次成功生成rdb文件耗时秒数
rdb_current_bgsave_time_sec如果服务器正在创建rdb文件,那么这个字段记录的就是当前的创建操作已经耗费的秒数
rdb_last_cow_sizeRDB过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等)
aof_enabled是否开启了AOF 0 - 否 1 - 是
aof_rewrite_in_progress标识aof的rewrite操作是否在进行中 0 - 否 1- 是
aof_rewrite_scheduledrewrite任务计划,当客户端发送bgrewriteaof指令,如果当前rewrite子进程正在执行,那么将客户端请求的bgrewriteaof变为计划任务,待aof子进程结束后执行rewrite
aof_last_rewrite_time_sec最近一次aof rewrite耗费的时长
aof_current_rewrite_time_secsecond如果rewrite操作正在进行,则记录所使用的时间,单位秒
aof_last_bgrewrite_status上次 bgrewrite aof 操作的状态 ok 成功
aof_last_write_status上次aof写入状态
aof_last_cow_sizeAOF过程中父进程与子进程相比执行了多少修改(包括读缓冲区,写缓冲区,数据修改等)
module_fork_in_progress指示fork模块正在进行的标志
module_fork_last_cow_size上一次fork操作期间写入时复制内存的字节大小

指标集合:stats

指标名称指标单位指标帮助描述
total_connections_received服务器接受的连接总数
total_commands_processed服务器处理的命令总数
instantaneous_ops_per_sec每秒处理的命令数
total_net_input_bytesbyte从网络读取的字节总数
total_net_output_bytesbyte写入网络的总字节数
instantaneous_input_kbpsKB/S网络每秒的读取速率(KB/秒)
instantaneous_output_kbpsKB/S网络每秒的写入速率(KB/秒)
rejected_connections由于maxclients限制而拒绝的连接数
sync_full具有副本的完整重新同步数
sync_partial_ok接受的部分重新同步请求数
sync_partial_err被拒绝的部分重新同步请求数
expired_keys过期的key总数
expired_stale_perc可能过期key的百分比
expired_time_cap_reached_count活动过期周期提前停止的次数
expire_cycle_cpu_milliseconds活动到期周期所花费的累计时间
evicted_keys由于最大内存限制而收回key的数量
keyspace_hits在主dict 中成功查找key的次数
keyspace_misses在主dict 中未查到key的次数
pubsub_channels客户端使用 pub/sub 频道的总和
pubsub_patterns客户端使用 pub/sub 模式的全局数量
latest_fork_usec最后一次fork操作的持续时间(以微秒为单位)
total_forks自服务器启动以来的fork操作总数
migrate_cached_sockets为MIGRATE目的打开的socket数量
slave_expires_tracked_keystrace key 到期的数量(仅适用于可写副本)
active_defrag_hits主动碎片整理命中次数
active_defrag_misses主动碎片整理未命中次数
active_defrag_key_hits主动碎片整理key命中次数
active_defrag_key_misses主动碎片整理key未命中次数
tracking_total_keyskey 查询的总数
tracking_total_itemsitem查询的总数
tracking_total_prefixes前缀查询的总数
unexpected_error_replies意外错误回复数,即AOF加载或复制中的错误类型
total_error_replies发出的错误回复总数,即被拒绝的命令(命令执行之前的错误)和失败的命令(在命令执行过程中的错误)的总和
dump_payload_sanitizations参考sanitize-dump-payload配置
total_reads_processed正在读取的请求数
total_writes_processed正在写入的请求数
io_threaded_reads_processed正在读取的线程数
io_threaded_writes_processed正在写入的线程数

指标集合:replication

指标名称指标单位指标帮助描述
role节点角色 master 主节点 slave 从节点
connected_slaves连接的从节点数
master_failover_state正在进行的故障切换的状态(如果有)
master_replid实例启动的随机字符串
master_replid2故障切换后用于PSYNC的辅助复制ID
master_repl_offset主从同步偏移量
second_repl_offset接受从服务ID的最大偏移量
repl_backlog_active表示从服务挤压处于活动状态
repl_backlog_sizebyte从服务积压缓冲区的总大小(字节)
repl_backlog_first_byte_offset复制缓冲区里偏移量的大小
repl_backlog_histlen此值等于 master_repl_offset - repl_backlog_first_byte_offset,该值不会超过repl_backlog_size的大小

指标集合:cpu

指标名称指标单位指标帮助描述
used_cpu_sysRedis主进程在内核态所占用CPU时钟总和
used_cpu_userRedis主进程在用户态所占用CPU时钟总和
used_cpu_sys_childrenRedis子进程在内核态所占用CPU时钟总和
used_cpu_user_childrenRedis子进程在用户态所占用CPU时钟总和
used_cpu_sys_main_threadRedis服务器主线程消耗的内核CPU
used_cpu_user_main_threadRedis服务器主线程消耗的用户CPU

指标集合:errorstats

指标名称指标单位指标帮助描述
errorstat_ERR错误累计出现的次数
errorstat_MISCONF

指标集合:cluster

指标名称指标单位指标帮助描述
cluster_enabled集群是否开启 0 - 否 1 - 是

指标集合:commandstats

指标名称指标单位指标帮助描述
cmdstat_setset命令的统计信息,calls: 累计调用该命令的次数;usec: 调用该命令的累计耗时,单位微秒;usec_per_call: 调用该命令的平均耗时;rejected_call: 拒绝执行的次数;failed_calls: 调用失败的次数
cmdstat_getget命令的统计信息
cmdstat_setnxsetnx命令的统计信息
cmdstat_hsethset命令的统计信息
cmdstat_hgethget命令的统计信息
cmdstat_lpushlpush命令的统计信息
cmdstat_rpushrpush命令的统计信息
cmdstat_lpoplpop命令的统计信息
cmdstat_rpoprpop命令的统计信息
cmdstat_llenllen命令的统计信息