数据产品说明
本项目没有独立的“北极星/数据中台”产品;可用的数据能力内嵌在控制台与 Open API 中:运营看板(metrics/overview、stats/dimensions)、全局/按天趋势、推送统计、消息检索与轨迹、告警事件、回调投递与操作审计。本页说明每个数据产品的口径、时效、可导出性与限制,避免把它当成计费账单或 BI 数仓。
概念
数据产品清单
| 数据产品 | 入口 | 回答的问题 | 时效 / 保留 |
|---|---|---|---|
| 运营看板 | GET /api/admin/apps/{appkey}/metrics/overview | 今天/近 7 天 DAU、消息、在线峰值、错误率 | 事件驱动;按 UTC 日聚合 |
| 维度统计 | GET /api/admin/apps/{appkey}/stats/dimensions | 用户/群/群消息/聊天室/消息/在线及按天趋势 | 同上;days 1–90 |
| 全局统计 | GET /api/admin/stats、/stats/trend | 跨应用汇总与趋势 | 同上 |
| 统计 Open API | POST /im/v2/stats/app、/stats/trend | 应用服务器侧拉取统计 | 同上 |
| 推送统计 | GET /apps/{appkey}/push/stats、push.stats.day/byId | 推送发送/送达/失败与按天趋势 | push_logs 聚合;无通道级拆分 |
| 消息检索/轨迹 | /apps/{appkey}/messages、/{messageId}/trace | 单条消息是否入库/投递/离线/路由 | 落盘消息;聊天室不落盘 |
| 告警事件 | /apps/{appkey}/alerts/events | 限流/回调失败/掉线/5xx 触发记录 | 内存环 1000/指标 |
| 回调投递 | /apps/{appkey}/callbacks/deliveries | 事件投递结果与重试 | 内存 10000 条 |
| 操作审计 | /apps/{appkey}/audit | 管理端写操作谁/何时/对什么 | 内存环 5000 条 |
指标口径
| 指标 | 定义 | 注意 |
|---|---|---|
| DAU | 当日活跃去重用户 | 单应用单日去重上限 10000;UTC 日界 |
| 消息量 | 落盘消息条数(单聊/群/系统通知等) | 不含聊天室 ephemeral 消息;不等于 API 调用数 |
| 群消息量 | 落盘群消息条数 | 消息量的子集 |
| 聊天室消息量 | 固定 0 | 聊天室消息不落盘,无法统计 |
| 在线峰值 | 当日在线用户数峰值 | 由维护周期采样 |
| 错误率 | errors / (messages + errors) | 演示级近似,不是 HTTP 5xx 比例 |
| 推送 sent/delivered/failed | webhook 推送尝试/成功/失败 | 厂商通道未实现,无通道维度 |
自托管版没有计费、账单、发票或用量结算。这里的“消息量/推送量”只用于运营观察,不产生费用,也不保证与任何外部账单一致。
前置条件
- 服务端已启动,Admin API 可达(
http://127.0.0.1:8080);统计随服务端状态持久化。 - 知道要回答的问题属于哪个数据产品(运营、推送、消息、告警、审计),避免用错误口径解释。
- 需要跨系统分析时,由使用方按分页接口拉取并落库;服务端不提供 BI 连接、SQL 查询或数据仓库导出。
- 自托管版无“数据产品购买/订阅”;所有数据能力随服务端提供(不适用项)。
步骤
- 先定义问题与时间窗
区分“现在是否健康”(概览)、“为什么这条没到”(消息轨迹)、“这周趋势”(dimensions/trend)。
- 选数据源并读口径
按下表选择接口;先看
notes与字段说明,特别是聊天室消息为 0、错误率为近似值。 - 交叉核对
单应用异常时对照全局统计;推送失败对照回调投递日志;消息缺失对照轨迹与在线连接。
- 导出与留存
消息用 CSV 导出(limit/beforeSeq);其它数据按分页接口拉取落库,服务端环缓冲会淘汰旧数据。
- 接入告警
把
rate_limited/callback_failure/online_drop/error_5xx配成告警规则,事件通过 HMAC webhook 推送。
参数表
| 数据 | 方法与路径 | 参数 |
|---|---|---|
| 应用概览 | GET /api/admin/apps/{appkey}/metrics/overview | — |
| 维度统计 | GET /api/admin/apps/{appkey}/stats/dimensions | days 1–90 |
| 全局统计 / 趋势 | GET /api/admin/stats、/stats/trend | days、appkey |
| 推送统计 | GET /api/admin/apps/{appkey}/push/stats | date、days |
| 消息检索 | GET /api/admin/apps/{appkey}/messages | userId/conversationType/targetId/keyword/from/to/offset/limit |
| 消息导出 | GET /api/admin/apps/{appkey}/messages/export | limit、beforeSeq |
| 告警事件 | GET /api/admin/apps/{appkey}/alerts/events | metric、分页 |
| 回调投递 | GET /api/admin/apps/{appkey}/callbacks/deliveries | eventType/status/from/to |
| 操作审计 | GET /api/admin/apps/{appkey}/audit | actor/action/object/from/to |
示例
一屏看健康度
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'
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/connections/stats" \
-H 'X-Admin-Secret: dev-admin'推送与回调交叉核对
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/push/stats?days=7" \
-H 'X-Admin-Secret: dev-admin'
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/callbacks/deliveries?status=failed&limit=20" \
-H 'X-Admin-Secret: dev-admin'
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/alerts/events?metric=callback_failure&limit=20" \
-H 'X-Admin-Secret: dev-admin'消息审计与导出
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/messages?userId=alice&limit=20" \
-H 'X-Admin-Secret: dev-admin'
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/messages/export?limit=1000" \
-H 'X-Admin-Secret: dev-admin' | jq -r '.data.csv' > messages.csv
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/audit?action=admin.users.ban&limit=20" \
-H 'X-Admin-Secret: dev-admin'常见问题
有“北极星/数据中台”页面吗?
没有。数据能力分布在控制台看板与 Admin/Open API;本页不虚构不存在的产品入口。
能接 BI 工具直连数据库吗?
不提供。请通过分页接口拉取并落到自己的数仓;PostgreSQL 模式下的日统计表属于内部实现,不是对外契约。
为什么统计和客户端看到的不一致?
统计按 UTC 日界、落盘消息与去重用户计算;客户端本地可能包含未发送/本地消息,聊天室消息也不计入。
数据保留多久?
统计随服务端快照保留;告警/回调/审计是内存环缓冲(1000/10000/5000),重启或淘汰会丢失旧记录。
如何做长期留存?
消息用 CSV 导出;其它数据按接口分页拉取后写自有存储,并自行做脱敏与访问控制。
错误率为什么不是 5xx 比例?
实现按 errors/(messages+errors) 聚合,属于演示级近似;需要精确 HTTP 指标请在网关层采集。
多实例部署统计会合并吗?
不会。当前统计是单实例内存聚合;多实例需要外部汇总。