统计维度

统计维度页把总览指标拆成可解释的维度:用户、群组、群消息、聊天室、聊天室消息、消息与在线。每个维度都标明数据来源与口径;聊天室消息因不落盘而固定为 0,并在 notes 中如实说明。

概念​

维度 / 字段口径来源
users应用下注册用户数用户表计数
groups群与超级群总数群表计数
groupMessages落盘的群消息条数消息池按 {app}:g:* 聚合
chatrooms活跃聊天室数聊天室表计数
chatroomMessages聊天室消息条数(固定 0)聊天室消息为 ephemeral 广播,不落盘
messages落盘消息总数(含单聊/群/系统)消息池计数
online当前在线用户数连接表去重
trend[]按天 dau/messages/groupMessages/chatroomMessages/onlinePeak/errors内存按 UTC 日聚合
  • days 支持 1–90,默认 7;日期键为 UTC YYYY-MM-DD。
  • DAU 按当日活跃去重,单应用单日上限 10000 条去重记录;超出后不再新增。
  • 错误率 = errors / (messages + errors),是演示级近似,不等同于 HTTP 5xx 比例。
  • 统计为单实例内存聚合;多实例部署不合并,重启后从快照恢复。

前置条件​

  • 服务端已启动(默认 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} 的接口都按应用隔离。
  • 自托管版无购买、计费、套餐、续费与发票流程(不适用项);本页只覆盖配置、查询与治理接口。

步骤​

  1. 选择窗口

    按排障或运营周期设置 days;短期波动看 1–3 天,容量规划看 30–90 天。

  2. 读总量

    先看 totals,确认各维度量级;聊天室消息为 0 属预期。

  3. 读趋势

    对比 DAU、消息量与在线峰值;只有在线峰值下降通常是连接层问题。

  4. 交叉核对

    用全局 /stats 与 Open API stats.app 交叉核对单应用口径。

参数表​

操作方法与路径参数
维度统计GET /api/admin/apps/{appkey}/stats/dimensionsdays(1–90)
应用概览GET /api/admin/apps/{appkey}/metrics/overview—
全局统计GET /api/admin/stats—
全局趋势GET /api/admin/stats/trenddays、appkey
Open API 统计POST /im/v2/stats/app、/stats/trend{days?}

示例​

近 30 天维度统计​

Shell
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/stats/dimensions?days=30" \
  -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' | jq '{totals, notes, last: .data.trend[-1]}'

常见问题​

和「概览仪表盘」有什么区别?​

概览强调健康判断与全局对比;本页强调每个维度的口径与趋势字段,便于解释数据。

聊天室消息为什么是 0?​

聊天室消息只对在线成员广播、不落盘,无法按天统计;服务端如实返回 0 并写 notes。

群消息和消息总量是什么关系?​

消息总量包含单聊、群、系统通知等所有落盘消息;群消息是其中一个子集。

能按用户/群下钻吗?​

不能。统计只到应用维度;下钻请用消息检索、群详情或连接明细。

数据能保留多久?​

随服务端状态快照保留;没有独立 TTL 或数据仓库,长期分析请自行导出落库。

相关链接​