队列总数 / 活跃消费者 / 消费者节点
数据来源:Redis Hash funboost_queue__consumer_parmas
每个消费者启动时会将自身的队列参数写入此 Hash。
活跃消费者通过心跳 Set 中 hearbeat_timestamp 判断是否在线(15秒超时)。
消费者节点数统计心跳数据中 computer_ip 字段的去重 IP 数量。
消息积压总量
数据来源:Redis Hash funboost_queue__msg_count_map
各队列当前待消费消息数量之和。由消费者心跳周期性采集并更新(每10秒)。
当前总吞吐
数据来源:消费者心跳中的 all_consumers_last_x_s_execute_count 字段
每个消费者周期性上报自己在最近 10 秒内的总执行次数(含成功和失败),后端汇总该队列下所有活跃消费者的值,得出队列级吞吐。
总吞吐 = 所有队列吞吐之和,单位:次/10秒。
队列积压 Top / 队列吞吐 Top
积压排行:取 funboost_queue__msg_count_map 中所有队列的待消费数量,降序排列。
吞吐排行:汇总每个队列下所有活跃消费者的 QPS,降序排列。
图表展示 Top 10,列表展示 Top 15。
系统资源概览 (CPU / 内存 / 磁盘)
数据来源:Redis Sorted Set funboost:funweb:monitor:{ip}:metrics
由 system_monitor 后台线程每 10 秒采集一次 psutil 指标,写入 Redis。
Dashboard 取各 IP 的最新一条记录(ZREVRANGE 0 0)展示。
已知 IP 列表来自 Redis Set funboost_all_ips(消费者启动时自动注册)。
需要至少一个节点运行 psutil 采集器才有数据。
数据刷新频率
Dashboard 前端每 10 秒 自动拉取一次 /api/dashboard/summary 接口。
后端数据实时性取决于消费者心跳上报间隔(默认 10 秒)。
所有数据来源均为 Redis,不依赖 MongoDB。