模型监控设计
监控按供应商连接与实际上游模型统计;相同别名合并到同连接的实际模型。供应商身份优先使用凭据连接名,内联地址移除认证信息及查询参数。下拉目录来自授权部署配置,并合并可见历史记录,不依赖查询窗口内是否有调用。
接口 options 按当前调用方的实际授权生成:虚拟密钥使用组织、团队、项目和密钥交集;会话省略 team_id 时实时查询账号当前团队及组织。显式团队先经 UsageScope 校验可见性,再读取团队模型范围。平台管理员保留全量目录;授权读取失败时拒绝请求,不能回退为不限制。历史统计继续使用原有用量权限,撤销模型不会抹去本人历史用量,页面仍可筛选这些可见的历史组合。
写入与查询
账单与监控桶在同一 PostgreSQL 事务提交。账单幂等插入成功后才累计统计;任务结算减去旧值、加上新值。请求先进入现有 Redis 账单队列,监控在账单落库后可见,存在刷盘周期的延迟。
15 分钟 UTC 桶保留组织、团队、项目、用户、密钥、计费归属、供应商及实际模型维度。批次内相同桶先合并,再按稳定键序执行增量 UPSERT,减少数据库操作及并发锁冲突。查询只读预聚合桶,使用时间及授权维度索引,不扫描 usage_events。单条 GROUPING SETS 查询返回汇总、模型明细与日趋势,保证同一快照。窗口限制 1 至 90 天,时区偏移按 15 分钟对齐。
开销随不同维度桶数增长;精细授权维度意味着高基数用户及密钥仍会增大存储和查询量。热点桶存在行锁竞争。测试验证 5000 条同维度记录压缩为 1 桶,未进行生产规模负载基准。
性能口径
TTFT 记录首个上游响应字节或数据段的耗时,可能只是元数据,不保证等于首个可见文本 Token。TPS 使用输出 Token × 1000 /(总耗时毫秒 − 首字节耗时毫秒),仅成功、非缓存、输出为正且生成区间有效的流式文本请求计入样本。输入 Token 不参与生成速度;同步响应的读尾时间不能表示模型生成区间,因此无 TPS 样本。跨桶均值按有效样本数加权,请求数、Token 与费用仍汇总全部已记录的终态请求。
启动升级在与账单写入共用的事务中,根据仍保留的原始用量事件一次性重建输出 TPS。新指标列与旧口径独立,避免旧版本写入污染修正后的速度;仅修正 TPS 累加和与样本数,不改写账单、费用、请求数、Token 或其他指标。原始事件已清理的桶保留原有统计但显示无 TPS 样本。完成标记保证重复启动幂等;修正失败整体回滚并拒绝启动。
界面与部署
图表采用 Recharts(MIT),支持 TPS、TTFT、Token、费用、请求数与响应耗时,最多展示 8 条序列,明细表保留所有组合。控件复用现有组件,提供中文与英文翻译。
部署使用匹配版本的前后端与数据库结构;接口结构缺失时页面显示可重试错误。实现不会自动删除现有数据库。
请求日志金额与推理强度
日志表、会话视图、指标与费用明细共用美元金额格式,保留 API 提供的数值精度。非零小额费用不会被舍入成 $0.00;真实零费用显示 $0.00,缺失值保持未知。该调整只影响展示,不改变定价或计费。
日志字段 reasoning_effort 记录请求明确指定的 Chat reasoning_effort、Responses reasoning.effort 或 Messages output_config.effort,独立于提示词保存开关持久化。未指定及升级前未记录的值保持未知,不推断模型默认值、思考预算或供应商实际执行强度。启动时幂等补列,不重放账单。