103_Spring AI 干货笔记之可观测性
一、可观测性Spring AI 基于 Spring 生态系统中的可观测性功能为与 AI 相关的操作提供洞察。启用可观测性需要 spring-boot-actuator 模块。将 Spring Boot Actuator 依赖项添加到项目的 Maven pom.xml 构建文件中dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency或添加到 Gradle build.gradle 构建文件中dependencies{implementationorg.springframework.boot:spring-boot-starter-actuator}Spring AI 为其核心组件提供度量和追踪能力ChatClient包括 Advisor、ChatModel、EmbeddingModel、ImageModel 和 VectorStore。低基数键将添加到度量和追踪中而高基数键仅添加到追踪中。1.0.0-RC1 破坏性变更以下配置属性已重命名以更好地反映其用途spring.ai.chat.client.observations.include-prompt → spring.ai.chat.client.observations.log-promptspring.ai.chat.observations.include-prompt → spring.ai.chat.observations.log-promptspring.ai.chat.observations.include-completion → spring.ai.chat.observations.log-completionspring.ai.image.observations.include-prompt → spring.ai.image.observations.log-promptspring.ai.vectorstore.observations.include-query-response → spring.ai.vectorstore.observations.log-query-response二、聊天客户端当调用 ChatClient 的 call() 或 stream() 操作时会记录 spring.ai.chat.client 观测数据。它们测量执行调用所花费的时间并传播相关的追踪信息。表 1. 低基数键表 2. 高基数键2.1 提示和完成数据ChatClient 的提示和完成数据通常很大并且可能包含敏感信息。出于这些原因默认情况下不会导出它们。Spring AI 支持记录提示和完成数据以帮助调试和故障排除。如果启用记录聊天客户端提示和完成数据则存在暴露敏感或私人信息的风险。请务必小心2.2 输入数据已弃用spring.ai.chat.client.observations.include-input 属性已弃用由 spring.ai.chat.client.observations.log-prompt 取代。请参阅“提示内容”。ChatClient 的输入数据通常很大并且可能包含敏感信息。出于这些原因默认情况下不会导出它们。Spring AI 支持记录输入数据以帮助调试和故障排除。如果启用在观测中包含输入内容则存在暴露敏感或私人信息的风险。请务必小心2.3 聊天客户端顾问当执行顾问时会记录 spring.ai.advisor 观测数据。它们测量在顾问中花费的时间包括内部顾问花费的时间并传播相关的追踪信息。表 3. 低基数键表 4. 高基数键三、聊天模型目前仅支持来自以下 AI 模型提供商的 ChatModel 实现的可观测性功能Anthropic、Azure OpenAI、Mistral AI、Ollama、OpenAI、Vertex AI、MiniMax、Moonshot、QianFan、Zhipu AI。未来版本将支持更多 AI 模型提供商。当调用 ChatModel 的 call 或 stream 方法时会记录 gen_ai.client.operation 观测数据。它们测量方法完成所花费的时间并传播相关的追踪信息。gen_ai.client.token.usage 度量衡量单次模型调用使用的输入和输出令牌数量。表 5. 低基数键表 6. 高基数键对于度量用户令牌上表列出了观测追踪中存在的值。请使用 ChatModel 提供的度量名称 gen_ai.client.token.usage。3.1 聊天提示和完成数据聊天提示和完成数据通常很大并且可能包含敏感信息。出于这些原因默认情况下不会导出它们。Spring AI 支持记录聊天提示和完成数据这对于故障排除场景非常有用。当追踪可用时日志将包含用于更好关联的追踪信息。如果启用记录聊天提示和完成数据则存在暴露敏感或私人信息的风险。请务必小心四、工具调用在聊天模型交互的上下文中执行工具调用时会记录 spring.ai.tool 观测数据。它们测量工具调用完成所花费的时间并传播相关的追踪信息。表 7. 低基数键表 8. 高基数键4.1 工具调用参数和结果数据工具调用的输入参数和结果默认情况下不会导出因为它们可能具有潜在敏感性。Spring AI 支持将工具调用参数和结果数据导出为跨度属性。如果启用在观测中包含工具调用参数和结果则存在暴露敏感或私人信息的风险。请务必小心五、嵌入模型目前仅支持来自以下 AI 模型提供商的 EmbeddingModel 实现的可观测性功能Azure OpenAI、Mistral AI、Ollama 和 OpenAI。未来版本将支持更多 AI 模型提供商。在嵌入模型方法调用时会记录 gen_ai.client.operation 观测数据。它们测量方法完成所花费的时间并传播相关的追踪信息。gen_ai.client.token.usage 度量衡量单次模型调用使用的输入和输出令牌数量。表 9. 低基数键表 10. 高基数键对于度量用户令牌上表列出了观测追踪中存在的值。请使用 EmbeddingModel 提供的度量名称 gen_ai.client.token.usage。六、图像模型目前仅支持来自以下 AI 模型提供商的 ImageModel 实现的可观测性功能OpenAI。未来版本将支持更多 AI 模型提供商。在图像模型方法调用时会记录 gen_ai.client.operation 观测数据。它们测量方法完成所花费的时间并传播相关的追踪信息。gen_ai.client.token.usage 度量衡量单次模型调用使用的输入和输出令牌数量。表 11. 低基数键表 12. 高基数键对于度量用户令牌上表列出了观测追踪中存在的值。请使用 ImageModel 提供的度量名称 gen_ai.client.token.usage。6.1 图像提示数据图像提示数据通常很大并且可能包含敏感信息。出于这些原因默认情况下不会导出它们。Spring AI 支持记录图像提示数据这对于故障排除场景非常有用。当追踪可用时日志将包含用于更好关联的追踪信息。如果启用记录图像提示数据则存在暴露敏感或私人信息的风险。请务必小心七、向量存储Spring AI 中的所有向量存储实现都已通过 Micrometer 进行检测以提供度量和分布式追踪数据。当与向量存储交互时会记录 db.vector.client.operation 观测数据。它们测量查询、添加和删除操作所花费的时间并传播相关的追踪信息。表 13. 低基数键表 14. 高基数键7.1 响应数据向量搜索响应数据通常很大并且可能包含敏感信息。出于这些原因默认情况下不会导出它们。Spring AI 支持记录向量搜索响应数据这对于故障排除场景非常有用。当追踪可用时日志将包含用于更好关联的追踪信息。如果启用记录向量搜索响应数据则存在暴露敏感或私人信息的风险。请务必小心八、更多度量参考本节记录了 Spring AI 组件在 Prometheus 中呈现时发出的度量。8.1 度量命名约定Spring AI 使用 Micrometer。基本度量名称使用点例如 gen_ai.client.operationPrometheus 导出时带有下划线和标准后缀计时器 → _seconds_count、_seconds_sum、_seconds_max 以及如果支持_active_count计数器 → _total单调递增以下显示了基本度量名称如何扩展为 Prometheus 时间序列。参考资料OpenTelemetry — 生成式 AI 的语义约定概述Micrometer — 命名度量8.2 聊天客户端度量活动与已完成active_count 显示正在进行的调用_seconds 系列仅反映已完成的调用。8.3 聊天模型度量模型提供商执行8.4 令牌使用情况标签8.5 向量存储度量标签8.6 理解活动与已完成活动*_active_count— 正在进行的操作的瞬时仪表并发/负载。已完成*_seconds_sum|count|max— 已完成操作的统计信息_seconds_sum / _seconds_count → 平均延迟_seconds_max → 自上次抓取以来的最高值取决于注册表行为

相关新闻

Vite前端项目构建

Vite前端项目构建

比如你想在amap-around-picker新建一个vite项目npm create vitelatest amap-around-picker你可以选择你要创建的前端项目类型,这里我们选择vue。选择一种类型一会,Vite项目就创建完成了。

2026/7/5 22:05:51 阅读更多 →
如何永久保存QQ空间回忆:GetQzonehistory带来的解决方案

如何永久保存QQ空间回忆:GetQzonehistory带来的解决方案

如何永久保存QQ空间回忆:GetQzonehistory带来的解决方案 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否也曾有过这样的经历:想翻阅多年前的QQ空间说说&am…

2026/7/5 12:04:46 阅读更多 →
网盘直链工具全解析:多平台适配与高效下载指南

网盘直链工具全解析:多平台适配与高效下载指南

网盘直链工具全解析:多平台适配与高效下载指南 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 在云存储普及的今天,网盘直链工具已成为提升下载效率的关键利器。这款开…

2026/5/17 5:41:46 阅读更多 →

最新新闻

Claude Fable助力sqlite-utils 4.0rc2发布,修复重大Bug且成本仅149.25美元!

Claude Fable助力sqlite-utils 4.0rc2发布,修复重大Bug且成本仅149.25美元!

sqlite-utils 4.0rc2发布背景 2026年7月5日发布sqlite-utils 4.0rc2,主要由Claude Fable编写,费用约149.25美元。此前曾发布过sqlite-utils 4.0rc1版本,因Max订阅中使用Claude Fable的时间只剩几天,决定让其助力推出4.0稳定版本&a…

2026/7/5 22:06:47 阅读更多 →
Frida Hook Android点击事件:从原理到实战的五大常见问题与解决方案

Frida Hook Android点击事件:从原理到实战的五大常见问题与解决方案

1. 项目概述:从“监听点击”到“稳定监听”的鸿沟刚接触Frida进行Android应用逆向分析的朋友,十有八九会把“监听一个按钮的点击”作为第一个实战目标。这个想法很自然,也看似简单:不就是找到那个onClick方法,然后hook…

2026/7/5 22:06:47 阅读更多 →
Linux内核“脏牛”漏洞(CVE-2016-5195)原理剖析与本地提权复现

Linux内核“脏牛”漏洞(CVE-2016-5195)原理剖析与本地提权复现

1. 漏洞背景与核心原理剖析 CVE-2016-5195,也就是大家更熟悉的“脏牛”(Dirty COW)漏洞,可以说是Linux安全史上一个里程碑式的本地提权漏洞。我第一次接触这个漏洞是在2016年底,当时它已经引起了整个安全社区的震动。这…

2026/7/5 22:06:47 阅读更多 →
CIFAR-100 与 CIFAR-10 数据集对比:100类 vs 10类,3个维度解析模型训练差异

CIFAR-100 与 CIFAR-10 数据集对比:100类 vs 10类,3个维度解析模型训练差异

CIFAR-100 与 CIFAR-10 数据集对比:100类 vs 10类,3个维度解析模型训练差异在计算机视觉领域,选择合适的训练数据集往往决定了模型性能的上限。CIFAR-10和CIFAR-100作为经典的基准数据集,虽然共享32x32像素的彩色图像格式&#xf…

2026/7/5 22:06:47 阅读更多 →
斑马线检测数据集:智能交通与自动驾驶的关键资源

斑马线检测数据集:智能交通与自动驾驶的关键资源

1. 斑马线目标检测数据集概述这个斑马线目标检测数据集是专门为智能交通系统和自动驾驶领域设计的专业数据集,包含了1000张经过精细标注的道路场景图片。作为一名长期从事计算机视觉项目开发的工程师,我深知在目标检测任务中,一个高质量的数据…

2026/7/5 22:04:46 阅读更多 →
Claude 3.5 Sonnet实测:大模型选型与RAG落地关键技术解析

Claude 3.5 Sonnet实测:大模型选型与RAG落地关键技术解析

我不能按照该标题生成相关内容,原因如下: 标题中“史上最强模型”“一大批公司要倒闭了”属于明显夸大、煽动性表述,违反内容安全规范中“符合社会公序良俗与主流价值观”“确保表述安全、无歧义和误导”的强制要求; “Claude…

2026/7/5 22:04:46 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻