推送统计

推送统计聚合 push_logs 的真实投递结果:发送、送达、失败与按天趋势。当前没有厂商通道级拆分(channelStatsAvailable=false),也不包含厂商下发(因为下发未实现)。

概念​

字段含义
sent推送尝试数
deliveredwebhook 返回成功的次数
failed失败次数(网络/非 2xx)
trend[]按天 {date,sent,delivered,failed}
source数据来源说明(push_logs)
channelStatsAvailable恒为 false:无通道级拆分
notes[]口径说明(含未实现的厂商下发)
  • 管理端:GET /api/admin/apps/{appkey}/push/stats?date&days。
  • Open API:push.stats.day 按日期、push.stats.byId 按 pushId 查询。
  • 统计只覆盖通过 webhook 的推送;厂商通道配置不产生发送记录。
  • 推送日志保留在应用状态中,随快照持久化;不做长期数据仓库。

前置条件​

  • 服务端已启动(默认 http://127.0.0.1:8080),控制台入口 http://127.0.0.1:8080/console/#push(tab #push:推送通道)。
  • 请求头 X-Admin-Secret 与服务端 IM_ADMIN_SECRET 一致(本地默认 dev-admin)。
  • 已在控制台选中应用;带 {appkey} 的接口都按应用隔离。
  • 自托管版无购买、计费、套餐、续费与发票流程(不适用项);本页只覆盖配置、查询与治理接口。

步骤​

  1. 看整体

    按天查看 sent/delivered/failed;失败率突增时先查 webhook 可达性。

  2. 定位单次推送

    用 Open API 的 push.stats.byId 查具体 pushId。

  3. 关联配置

    失败持续时检查推送 webhook 与「回调服务」的投递日志。

  4. 解释口径

    向业务方说明:没有厂商通道级数据,也没有厂商下发。

参数表​

操作方法与路径参数
管理端统计GET /api/admin/apps/{appkey}/push/statsdate(YYYY-MM-DD)、days
Open API 按天POST /im/v2/push/stats/day{date?}
Open API 按 IDPOST /im/v2/push/stats/by-id{pushId}
推送日志POST /im/v2/push/log/list分页参数

示例​

最近 7 天推送统计​

Shell
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/push/stats?date=2026-10-27" \
  -H 'X-Admin-Secret: dev-admin'

常见问题​

为什么 delivered 总是 0?​

如果没有配置推送 webhook 或没有触发推送,就没有记录;厂商通道配置不会产生记录。

能按 APNs/FCM 拆分吗?​

不能。channelStatsAvailable=false,当前不采集通道维度。

统计和消息量一致吗?​

不一致。推送只针对离线通知,且依赖 webhook 投递结果。

历史数据保留多久?​

随应用状态保存,没有独立 TTL;长期分析请在接收方落库。

相关链接​