mirror of
https://gitcode.com/JianFeeeee/ModelRouter.git
synced 2026-10-03 23:54:06 +00:00
宿主统计页已支持周期,计费页还是终身累计 —— 同一个问题在两个页面重复出现, 且两个页面口径不一致本身就是错。 ## 为什么要补日级维度明细 原来只有 total 和 by_day 带时间维度,by_source/by_model/by_key 是终身累计。 只改 total 的话,页面会显示"今日开销 $0.05",下面三张表还是全量数据 —— 数字对不上,而这正是周期视图要消除的错配。所以在写入时按天折叠成本 (by_day_src/model/key)。成本在写入时就已定价,浏览器只做求和,不重新 定价,显示金额不会与持久化金额漂移。 按天为键的表不随流量增长(一年 365 项/维度),所以不设裁剪。 ## 口径 UTC,与网关 dayKey 和 /api/stats 的周期窗口一致 —— 峰谷小时不会在费用 视图和用量视图落到不同一天。周为 ISO 周(周一起)。降级/未定价没有日级 计数,周期视图下**隐藏**这两张卡而不是显示终身值,那正是要消除的错配。 ## 判据(7 条 + 6 个变异) 判据断言**渲染后的 DOM**,不走 IIFE 内部函数:早先版本加了测试钩子去直接 调 daysInWindow/rescale,结果 harness 里的假 Date 先后两次出问题(整体替换 构造器破坏 toISOString;子类化导致 getUTCDay 返回 NaN),症状都是 "Invalid time value",看起来完全像产品 bug。 变异验证抓到判据本身的缺陷,值得一提: - 捕获「总账不累加」和「周起点改周日」两个变异时**全部判据仍绿**——因为 我断言的是 by_source 表格,而它由维度表独立算出,跟 total 无关。 - 补了 KPI 断言后又漏放「维度折叠不求和」——"页面里存在 60" 太弱, 60 同时出现在 KPI 和 token 列里。改成锚定 srcA 自己的金额单元格 (USD 60.0000),last-day-only 会是 30,才抓得住。 判据报错时先怀疑判据——这次三次都是判据的问题。