概览仪表盘
概览仪表盘回答“这个应用现在健康吗”。它把应用级指标(metrics/overview)、维度统计(stats/dimensions)、连接峰值(connections/stats)与全局统计(/stats、/stats/trend)组合成一张看板;数据按 UTC 自然日聚合,是运营级近似值,不是计费账单。
概念
| 指标 | 来源 | 口径 |
|---|---|---|
| 用户数 / 群组数 / 聊天室数 / 消息数 / 在线数 | GET /api/admin/apps/{appkey}/metrics/overview | 当前应用的内存态计数;聊天室为活跃房间数。 |
| DAU | 同上 today.dau / trend[].dau | 当日活跃去重用户;单应用单日上限 10000 条去重记录。 |
| 消息量 | messagesToday / trend[].messages | 落盘消息计数;聊天室消息不落盘,单独统计为 0。 |
| 在线峰值 | onlinePeakToday | 当日在线用户数峰值,来自连接维护周期采样。 |
| 错误率 | errorRate | errors / (messages + errors) 的 0–1 比例,演示级近似。 |
| 全局对比 | GET /api/admin/stats、/stats/trend?days=7 | 跨应用汇总;appkey 可选。 |
- 趋势默认 7 天,
trend?days支持 1–90;日期键为 UTCYYYY-MM-DD。 - 维度统计额外返回群组数、群消息量、聊天室数、聊天室消息量与
notes;聊天室消息固定为 0 并标注原因。 - 指标来自内存聚合,进程重启后当日累计从快照恢复;不做跨实例聚合。
看板不是账单
自托管版没有计费口径。这里的“消息量”是落盘消息条数(含系统通知、群消息),不等于 Open API 调用次数,也不按推送/长连接重复计费。
前置条件
- 服务端已启动(默认
http://127.0.0.1:8080),控制台入口http://127.0.0.1:8080/console/#stats(tab#stats:统计)。 - 请求头
X-Admin-Secret与服务端IM_ADMIN_SECRET一致(本地默认dev-admin)。 - 已在控制台选中应用;带
{appkey}的接口都按应用隔离。 - 自托管版无购买、计费、套餐、续费与发票流程(不适用项);本页只覆盖配置、查询与治理接口。
步骤
- 先看应用级概览
确认
today的 DAU、消息量、在线峰值与错误率;错误率明显抬升时优先查告警事件与回调失败。 - 对比 7 天趋势
用
days调整窗口,观察消息量与在线峰值是否同步变化;只掉在线不掉消息,通常是客户端连接问题。 - 下钻维度
打开
stats/dimensions,区分群消息与聊天室消息;聊天室消息为 0 属预期。 - 与全局看板对照
/api/admin/stats给出跨应用汇总;单应用异常但全局正常时,问题通常在该应用的配置或密钥。
参数表
| 操作 | 方法与路径 | 参数 |
|---|---|---|
| 应用概览 | GET /api/admin/apps/{appkey}/metrics/overview | —(today + days 两段) |
| 维度统计 | GET /api/admin/apps/{appkey}/stats/dimensions | days(1–90,默认 7) |
| 连接统计 | GET /api/admin/apps/{appkey}/connections/stats | —(onlineUsers/sessions/peakToday) |
| 全局统计 | GET /api/admin/stats | — |
| 全局趋势 | GET /api/admin/stats/trend | days(1–90)、appkey(可选) |
示例
应用概览 + 7 天趋势
Shell
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/metrics/overview" \
-H 'X-Admin-Secret: dev-admin'
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/stats/dimensions?days=7" \
-H 'X-Admin-Secret: dev-admin'全局对比
Shell
curl -sS -X GET "http://127.0.0.1:8080/api/admin/stats" \
-H 'X-Admin-Secret: dev-admin'
curl -sS -X GET "http://127.0.0.1:8080/api/admin/stats/trend?days=7" \
-H 'X-Admin-Secret: dev-admin'
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/connections/stats" \
-H 'X-Admin-Secret: dev-admin'常见问题
为什么聊天室消息量恒为 0?
聊天室消息是 ephemeral 广播,不落盘;维度统计如实返回 0 并在 notes 标注,不是采集失败。
DAU 与“在线数”有什么区别?
DAU 是当日出现过活动(登录/收发消息)的去重用户;在线数是当前仍有 WS 会话的用户。
错误率为什么不是百分比?
errorRate 返回 0–1 的比例,前端负责乘以 100;分母是消息数 + 错误数。
重启后当日数据会清零吗?
不会。统计随服务端快照持久化;但演示级实现不做跨实例合并,多实例部署时各实例只统计自己处理的部分。
趋势日期为什么和本地日期差一天?
日期键按 UTC 划分;东八区凌晨 0–8 点会落到前一个 UTC 日期。