一、为什么要监控 Token 消耗1.1 成本控制大模型 API 按 Token 计费未经监控的调用可能导致费用失控高频调用或异常循环可能在短时间内产生巨额费用预算超支无法预估和规划 AI 服务支出资源浪费低效的 Prompt 设计消耗大量无效 Token1.2 性能优化通过分析 Token 消耗数据可以优化 Prompt识别冗余提示词精简输入内容选择合适模型根据任务复杂度匹配模型避免大材小用控制输出长度合理设置 max_tokens 参数1.3 异常检测监控数据有助于发现调用异常失败率突增、响应时间异常滥用风险异常高频调用、非预期场景使用服务降级API 限流、配额耗尽预警1.4 业务分析Token 消耗数据反映业务使用情况功能使用率各场景 AI 调用频次用户行为高峰时段、热门功能ROI 评估AI 投入产出比分析二、监控指标设计2.1 核心指标指标说明监控目的input_tokens输入 Token 数评估 Prompt 效率output_tokens输出 Token 数控制生成长度total_tokens总 Token 数成本核算duration调用耗时性能监控status调用状态成功率统计2.2 维度划分维度说明分析价值model模型名称不同模型成本对比platform平台标识多平台统一管理scene调用场景业务功能分析created_at时间戳趋势分析、峰值识别三、监控方案3.1 数据采集本系统采用埋点方式在 AI 调用完成后自动记录// AIComponent 中的埋点逻辑privatevoidrecordTokenUsage(GenerationResultresult,Stringscene,Longduration,booleansuccess,StringfailReason){TokenUsageusagenewTokenUsage();usage.setModel(dashScopeConfig.getModel());usage.setPlatform(PLATFORM);usage.setInputTokens(result.getUsage().getInputTokens());usage.setOutputTokens(result.getUsage().getOutputTokens());usage.setTotalTokens(result.getUsage().getTotalTokens());usage.setScene(scene);usage.setDuration(duration);usage.setStatus(success?1:0);usage.setCreatedAt(LocalDateTime.now());tokenUsageService.recordAsync(usage);// 异步写入不影响主流程}3.2 存储设计数据存储于token_usage表支持按时间范围查询按模型/平台聚合统计汇总计算3.3 统计接口方法说明sumTodayTokens()今日 Token 消耗总量countToday()今日调用次数sumTokensByModel(model)按模型统计消耗sumTokensByTimeRange(start, end)时间段消耗统计四、监控实践4.1 日常巡检每日查看 Token 消耗总量与历史数据对比关注失败调用排查异常原因检查调用耗时识别性能瓶颈4.2 告警设置建议配置以下告警告警项阈值建议说明日消耗量超过日均 200%防止异常调用失败率超过 5%及时发现服务问题单次调用 Token超过 10000检查 Prompt 设计响应时间超过 60s性能劣化预警4.3 成本优化基于监控数据的优化建议Prompt 精简移除冗余说明使用简洁指令避免重复上下文模型降级简单任务使用 qwen-turbo复杂分析使用 qwen-plus仅核心场景使用 qwen-max缓存策略相似请求结果缓存减少重复调用五、数据安全5.1 敏感信息保护Token 消耗记录不存储请求/响应内容仅记录统计指标和元数据失败原因脱敏处理5.2 访问控制监控数据仅管理员可访问查询接口需 JWT 认证操作日志审计六、参考资料DashScope 计费规则千问模型接入指南