用途:为 Spring Boot + Spring AI 应用补充 AI 可观测性,覆盖模型调用延迟、Token 用量、成本归因、Advisor 遥测以及受保护的提示词与响应日志。
依赖:需引入 spring-boot-starter-actuator 与 micrometer-registry-prometheus。
主要能力:Spring AI 1.0+ 内置 Micrometer 插桩,自动生成符合 OpenTelemetry GenAI 语义约定的指标,如 gen_ai.client.operation(模型调用延迟,带 provider 与 model 标签)、gen_ai.client.token.usage(输入/输出/总 Token 数)以及 spring.ai.chat.client 计时器/跨度。可通过配置开启提示词与补全日志,但生产环境应关闭以防 PII 泄露。
自定义指标:可用 MeterRegistry 注册 ai.prompt.latency 计时器与 ai.tokens.used 计数器,按 operation、model、type 打标签。
审计 Advisor:GA 版 API 已变更,需实现 CallAdvisor 并使用 ChatClientRequest/ChatClientResponse;Usage 的 getGenerationTokens() 已更名为 getCompletionTokens()。旧接口 CallAroundAdvisor/AdvisedRequest 在 1.0 中已移除,无法编译。
成本归因:价格应放在外部配置中,含生效日期与币种,按 usage 元数据返回的精确模型标识定价;未知模型应拒绝而非套用默认价;保留原始 Token 用量以便价格变动后重算。应用侧估算仅作运营信号,发票以供应商账单导出为准。
审计日志:可将 operation、model、inputTokens、outputTokens、estimatedCostUsd、latencyMs、success、createdAt 存入数据库,并用 @Async 异步保存,且该方法应放在独立 Bean 上,否则代理失效会同步执行。
配置:management.endpoints.web.exposure.include 暴露 health、prometheus、metrics、info;开启 ai.prompt.latency 的百分位直方图以获得 P50/P95/P99;开发环境可设 tracing 采样 1.0 与 org.springframework.ai 日志级别 DEBUG,生产需降低。
限制:资料未提供具体价格数值、部署平台或效果数据;生产环境需注意 PII、异步代理与失败调用单独打错误标签等问题。