当前位置: 首页 > news >正文

SpringAI指标监控

文章目录

  • 1 观测性
  • 2 价值
  • 3 监控属性
    • 1_环境搭建
    • 2_测试
    • 3_监控
  • 4 补充

1 观测性

为什么 Spring AI 应用需要可观测性?

AI 服务成本失控的痛点:

在企业级 AI 应用中,使用 DeepSeek、OpenAI、Google Gemini 或 Azure OpenAI 等服务时,成本是一个严峻的挑战:

  • Token 消耗不透明:无法精确了解每次 AI 调用的成本。
  • 费用增长失控:大规模应用中,AI 服务费用可能呈指数增长。
  • 性能瓶颈难定位:AI 调用链路复杂,问题排查困难
  • 资源使用不合理:缺乏数据支撑的优化决策。

2 价值

Spring AI 的可观测性功能为这些痛点提供了完美解决方案:

  • 精准 Token 监控:实时追踪输入/输出Token消耗,精确到每次调用。
  • 智能成本控制:基于使用统计制定成本优化策略。
  • 深度性能分析:识别 AI 调用瓶颈,优化响应时间。
  • 完整链路追踪:端到端记录请求在 Spring AI 应用中的完整流转

3 监控属性

构建可观测的 Spring AI 翻译应用。

1_环境搭建

集成核心依赖:

<dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

配置监控环境

management:endpoints:web:exposure:include: "*" # 暴露所有断点(不建议)endpoint:health:show-details: always

配置聊天对话模型并创建接口

package com.duration.ai_act.controller;import jakarta.annotation.Resource;
import lombok.*;
import lombok.extern.slf4j.Slf4j;
import org.springframework.ai.chat.client.ChatClient;
import org.springframework.ai.chat.client.advisor.SimpleLoggerAdvisor;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Lazy;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;/*** @author shenyang* @version 1.0* @since 2025-10-01*/
@Slf4j
@Configuration
@RestController
public class AITranslationController {@Lazy@Resourceprivate ChatClient chatClient;@Beanpublic ChatClient chatClient(OpenAiChatModel model) {//模型也可以是 openAIreturn ChatClient.builder(model)// 创建ChatClient工厂.build();// 构建ChatClient实例}@PostMapping("/translate")public TranslationResponse translate(@RequestBody TranslationRequest request) {log.info("AI 翻译请求: {} -> {}", request.sourceLang, request.targetLang);String prompt = String.format("""作为专业的翻译助手,请将以下{%s} 文本翻译成 {%s},保持原文的语气,原文如下:'''{%s}'''直接输出翻译后的文本即可。""",request.getSourceLang(),request.getTargetLang(),request.getText());long currentTimeMillis = System.currentTimeMillis();String translatedText = chatClient.prompt().user(prompt).advisors(SimpleLoggerAdvisor.builder().build()).call().content();long durationMs = System.currentTimeMillis() - currentTimeMillis;return TranslationResponse.builder().originalText(request.text).translatedText(translatedText).durationMs(durationMs).build();}@Data@Builderpublic static class TranslationRequest {/*** 待翻译文本*/private String text;/*** 源语言(可选,例如 "en", "zh", "auto")* 若为 auto 表示自动检测语言*/private String sourceLang;/*** 目标语言(例如 "en", "zh", "fr")*/private String targetLang;}@Data@Builderpublic static class TranslationResponse {/*** 原始文本*/private String originalText;/*** 翻译后的文本*/private String translatedText;/*** 请求耗时(毫秒)*/private Long durationMs;/*** 可选的错误信息(仅在失败时有值)*/private String errorMessage;}}

2_测试

发送请求后查看响应结果:

img

3_监控

metrics 中查看 AI 相关信息

img

随便查看监控 AI 下某一指标的具体信息

img

可以看到调用次数,总耗时和模型等具体信息。

4 补充

具体暴露端点信息可以参考官网:https://docs.spring.io/spring-ai/reference/observability/index.html。

如果想要可视化监控平台,可以参考这篇:https://shenyang.blog.csdn.net/article/details/143510787,目前依赖最新版本为 3.5.5。

http://www.dtcms.com/a/449428.html

相关文章:

  • 在国内网络环境下高效配置与使用 Flutter
  • C++--二叉搜索树
  • dw网站怎么做点击图片放大潍坊建筑公司排名
  • 短视频素材网站免费大推荐淘宝seo 优化软件
  • 超声波图像乳腺癌识别分割数据集647张2类别
  • 【基于MQ的多任务分发体系】
  • DeploySharp开源发布:让C#部署深度学习模型更加简单
  • 网站开发专业就业指导可视化网站制作软件
  • 【MySQL】 SQL图形化界面工具DataGrip
  • PostgreSQL 安装与操作指南
  • iis怎么做网站cho菌主题wordpress
  • 网站大全软件下载淘宝搜索框去什么网站做
  • Python 编程语言介绍
  • 以太网接口
  • OpenHarmony(开源鸿蒙)小白入门教程
  • 光通信|OAM-偏振联合交叉连接
  • 广州建设工程质量安全网站网站数据库怎么备份
  • 【性能优化】帧率优化方法:第一步——量化
  • 【Docker项目实战】使用Docker部署ShowDoc文档管理工具
  • 第13课:成本与性能优化:语义缓存(Semantic Cache)实战
  • 网站搭建备案吗柳州网站seo
  • Witsy: 桌面 AI 助手 / 通用 MCP 客户端
  • 哈尔滨营销网站建设公司哪家好做视频分享网站的参考书
  • 音频焦点学习之AudioFocusRequest.Builder类剖析
  • 国产某能谱仪产品分析
  • 《Vuejs设计与实现》第 5 章(非原始值响应式方案)下 代理数组
  • 网站服务器速度查询北京网站设计公司兴田德润放心
  • 版本控制器git(1)--- git 初识与安装
  • 网站如何收录网络营销策划方案ppt
  • Three.js NodeMaterial 节点材质系统文档