feat(analytics-health): 新增埋点/上报成功率看板(super_admin) (#42)

功能明细
总览卡:埋点成功率、上报成功率两大率居前(<90% 标红并打「偏低」标);attempted / drop_capture / delivered / drop_undelivered 四原子量次之(drop_* > 0 橙色提示),每项带 tooltip 口径说明。
按天双折线趋势:埋点率(蓝)/ 上报率(橙),Y 轴锁 [0,1] 显示百分比。
维度下钻表:event / app_ver / oem 三档切换,后端已按上报率升序返回(最差在前),率 <90% 标红。
顶部「刷新」+「数据更新于」时间戳;日期区间支持 今天 / 近 7 天 / 近 30 天 预设。

上线依赖(部署顺序)
页面依赖后端 feat/analytics-success-rate 分支的三个只读端点 /admin/api/analytics-health/{overview,trend,breakdown}。后端须先合并部署,否则前端会 404。

---------

Co-authored-by: guke <guke@autohome.com.cn>
Reviewed-on: #42
This commit was merged in pull request #42.
This commit is contained in:
2026-07-09 17:31:19 +08:00
parent 557348bd6b
commit 03d1003c3c
3 changed files with 376 additions and 0 deletions
+24
View File
@@ -727,3 +727,27 @@ export interface CpsStats {
total_est_commission_cents: number;
total_settled_commission_cents: number;
}
// ===== 埋点 / 上报成功率大盘(analytics_selfstat 快照差分聚合)=====
// 后端 feat/analytics-success-rate 分支的三个只读端点(/admin/api/analytics-health/*)。
// rate 分母为 0 时后端给 null(前端显示 "-",不是 0%)。
/** 一组区间聚合指标:两大率 + 四原子量。 */
export interface HealthMetrics {
attempted: number; // track 被调用次数(埋点段分母)
drop_capture: number; // 采集时异常丢弃(队列/序列化失败)
delivered: number; // 成功送达后端
drop_undelivered: number; // 已落盘但久未送达被队列淘汰
track_success_rate: number | null; // 埋点成功率 ∈ [0,1]:(attempted drop_capture) / attempted
report_success_rate: number | null; // 上报成功率 ∈ [0,1]:delivered / (delivered + drop_undelivered)
}
/** 趋势点:某北京天的指标(trend 端点,按北京天升序)。 */
export interface HealthTrendPoint extends HealthMetrics {
day: string; // 北京日期 "YYYY-MM-DD"
}
/** 下钻行:某维度值的指标(breakdown 端点,已按上报率升序,最差在前)。 */
export interface HealthBreakdownRow extends HealthMetrics {
key: string; // 维度值(event 名 / app_ver / oem);缺失为 "(unknown)"
}