首页 > 其他分享 >深入解析 Spring AI 系列:分析 Spring AI 可观测性

深入解析 Spring AI 系列:分析 Spring AI 可观测性

时间:2025-01-17 14:21:12浏览次数:1  
标签:zipkin AI Spring Zipkin micrometer io 解析

今天我们将讨论之前略过的可观测性部分的代码。在这里,我想简单说明一下,当时这部分代码属于必须编写的固定模板,因此在最初的讨论中我们直接跳过了它。虽然这部分代码乍看之下可能显得比较复杂,但实际上它的核心功能只是链路追踪的实现而已。既然如此,接下来我们就不再赘述,直接来看一下这部分关键代码,如图所示:

image

我们今天的目的也很明确,那就是不必过于纠结于其底层源码是如何运转和注入解析的。我们更关注的是这段代码在Spring AI框架中所发挥的实际作用。

micrometer

如果当时你点击了该引用,你是可以找到与之相关的包依赖信息的。如果你希望获取更多的详细信息,建议访问其官方文档,详细内容请见:https://docs.micrometer.io/micrometer/reference/observation.html

JMX观测

为了更清晰地理解micrometer的具体工作原理,今天我们将通过两个实际的例子带领大家快速了解其运作方式。第一个例子是关于许多Java编程开发者都非常熟悉的工具——jconsole。如果你不熟悉该工具,也不必担心,你可以直接前往jdk的bin目录进行查找,具体位置如图所示。

image

剩下的就需要在我们的demo聊天示例的项目依赖中添加相关依赖。代码如下:

<groupId>io.micrometer</groupId>
    <artifactId>micrometer-observation</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-jmx</artifactId>
</dependency>

剩下的部分我们基本上不需要进行修改了。接下来,只需直接双击启动 jconsole 工具,并连接到我们的本地程序即可。然后,进入 MBean 标签页,我们就可以轻松地查看到相关的配置信息和监控数据。不过,需要注意的是,这些信息简洁明了并不够全面。具体情况可以参见下图所示:

image

在这里,我们并没有看到源码中所添加的那些特定 key 被纳入观测范围。如下所示:

image

所以目前,分布式链路追踪在系统监控和性能调优中得到了广泛应用。为了便于演示,我们简单地展示了轻量级的 Zipkin 进行链路追踪观测的基本功能。当然,除了 Zipkin,还可以选择使用其他工具,如 Prometheus 与 Grafana 的组合,或者更为全面的 SkyWalking 等方案

zipkin观测

在这里,我将直接在服务器上使用 Docker 容器进行运行。请确保在启动容器时,暴露出相关的端口,以便我们的 demo 程序能够通过这些端口与容器进行通信并上传信息。以下是具体的命令:

docker run --name zipkin -d -p 9411:9411 openzipkin/zipkin

然后需要添加部分依赖,如下所示:

<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-observation</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-bridge-brave</artifactId>
</dependency>
<dependency>
    <groupId>io.zipkin.reporter2</groupId>
    <artifactId>zipkin-reporter-brave</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

由于 Zipkin 在使用过程中需要配置一些关键的项目信息,例如指定我们的 Zipkin 服务器地址,以及其他相关的服务端点和连接参数,因此需要在配置文件中加入这些必要的信息。具体的项目信息配置如下:

management.endpoints.web.exposure.include=*
management.endpoint.health.show-details=always

management.zipkin.tracing.endpoint=http://ip:9411/api/v2/spans
management.tracing.sampling.probability=1.0

在正常启动我们的项目之后,可以执行一次接口调用,并直接访问 Zipkin 以查看当时的接口调用情况。通过这种方式,你将能够清晰地观察到与该接口调用相关的可观测性信息,包括所有的 key 和 value。具体的结果如图所示:

image

这部分看下即可,不做重要解析。

总结

通过今天的讨论,我们简单探讨了可观测性部分的代码及其在 Spring AI 框架中的实际作用。尽管底层实现可能显得复杂,但其核心功能无非是链路追踪的实现,帮助我们更好地理解和优化系统性能。通过实际示例,我们演示了如何利用工具如 jconsole 和 Zipkin 来观察系统的行为及性能指标。这些工具的使用能够提供清晰的监控数据,帮助开发者更有效地进行系统诊断和性能调优。在未来的工作中,合理运用这些工具将极大提升我们的可观测性实践。


我是努力的小雨,一个正经的 Java 东北服务端开发,整天琢磨着 AI 技术这块儿的奥秘。特爱跟人交流技术,喜欢把自己的心得和大家分享。还当上了腾讯云创作之星,阿里云专家博主,华为云云享专家,掘金优秀作者。各种征文、开源比赛的牌子也拿了。

标签:zipkin,AI,Spring,Zipkin,micrometer,io,解析
From: https://www.cnblogs.com/guoxiaoyu/p/18669015

相关文章

  • DeepSeek-V3 的 MoE 架构解析:细粒度专家与高效模型扩展
    DeepSeek-V3采用的DeepSeekMoE架构,通过细粒度专家、共享专家和Top-K路由策略,实现了模型容量的高效扩展。每个MoE层包含1个共享专家和256个路由专家,每个Token选择8个路由专家,最多路由至4个节点。这种稀疏激活的机制,使得DeepSeek-V3能够在不显著增加计算成本的......
  • 手把手教你学simulink(80.2)--智能家居语音助手系统场景实例:基于Simulink设计和仿真语音
    目录语音助手集成场景下的命令识别与响应建模项目实例项目背景介绍系统架构1. 语音采集模块(AudioCapture)2. 语音处理模块(SpeechProcessing)3. 命令识别模块(CommandRecognition)4. 响应生成模块(ResponseGeneration)5. 通信模块(Communication)仿真......
  • 惊!AI技术助力,一键免费本地抠图换背景,永久畅享!
     软件介绍        在内容创作这个领域里,图像的背景移除与替换属于打造吸睛视觉效果的关键技术。随着AI技术迅猛发展,过去那些需要专业技能才能完成的操作,现在借助智能软件就能轻松搞定。        今天呢,给大家推荐一款。这是一款由AI技术提供动力的背景移除软......
  • AI产品经理是如何炼成的?青铜逆袭必修课
    一、AI通识1.1AI产业结构AI发展至今大致按照在产业结构上的分工不同产生了三种类型的公司,我们在转型时最好要先明确自己的优势及兴趣,来判断自己适合着眼于哪个层面的工作,从而进行针对性的学习和提升。(1)行业+AI这类公司重在“行业”,本身有着一定的行业积累,给用户提供AI......
  • ThreadPool解析
    Thread_Pool项目解析简介ThreadPool是一个轻量级的C++线程池实现,旨在简化多线程编程。项目分析我们首先上github的项目地址:https://github.com/progschj/ThreadPool,然后克隆项目到本地。点开项目的ThrealPool.h文件,查看源码:#ifndefTHREAD_POOL_H#defineTHREAD_POOL......
  • Python魔法方法深度解析:解密 __call__、__new__ 和 __del__
    《PythonOpenCV从菜鸟到高手》带你进入图像处理与计算机视觉的大门!解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界在Python中,魔法方法(MagicMethods)是一些特殊的方法,它们允许开发者定制对象的行为。这些方法前后由双下划线包围,如__init__、__str__、__call_......
  • 2025毕设springboot 华南地区走失人员信息管理系统论文+源码
    系统程序文件列表开题报告内容研究背景华南地区,作为中国人口密集、流动性大的区域之一,近年来随着社会经济的快速发展,人员流动频繁,这也导致了走失人员事件的频发。无论是因认知障碍、精神健康问题还是意外迷路,每一例走失事件都牵动着无数家庭的心。然而,传统的寻找走失人员的......
  • 壁纸样机神器 搭配 可灵AI:壁纸制作超全教程
    壁纸制作的整体流程构思创意:确定你想要表达的壁纸主题、风格和情感,这是制作壁纸的关键步骤。可以从自然景观、城市风光、动漫人物、抽象艺术等多个方面获取灵感,构思出独特的创意。利用可灵AI生成图像:根据构思好的创意,使用可灵AI输入相关的描述词或关键词,让AI根据你的创意生......
  • 2025毕设springboot 火锅店管理系统论文+源码
    系统程序文件列表开题报告内容研究背景在当今快节奏的社会中,餐饮行业尤其是火锅店作为深受消费者喜爱的餐饮形式之一,面临着日益激烈的市场竞争。传统的火锅店管理方式往往依赖于人工记录与操作,不仅效率低下,还容易出错,难以满足现代餐饮业对高效、准确和个性化服务的需求。随......
  • 2025毕设springboot 婚纱租赁系统论文+源码
    系统程序文件列表开题报告内容研究背景随着婚庆行业的蓬勃发展,婚纱作为婚礼中不可或缺的重要元素,其市场需求日益旺盛。然而,传统购买婚纱的方式不仅成本高昂,而且在婚礼结束后往往面临闲置或处理困难的问题。因此,婚纱租赁作为一种经济、环保且灵活的消费模式逐渐受到新人的青......