背景

在分布式系统中,请求链路追踪(Trace) 是诊断性能瓶颈、定位故障的核心能力。近期,阿里云函数计算的 Tracing 能力由 2.0 的 Jeager 升级为 OpenTelemetry 标准的 W3C 协议,通过打通 FC 函数计算与可观测链路 OpenTelemetry 版的全链路观测能力,彻底打通了函数执行的全路径观测,这不仅让用户能够清晰、直观地透视函数内部执行细节、上下游依赖关系及整个系统的交互行为,更关键的是打破了传统 Serverless 架构中的“黑盒”困境,清晰界定函数与外部服务(云服务、自建系统等)的业务边界,从而在复杂业务场景下显著提升问题排查效率与根因定位精度。

全链路透明化

  • FC系统级span透传:将FC内部组件(如调度器、冷启动模块)的关键生命周期事件以Span形式上报,覆盖函数调用全流程(调度→初始化→执行→释放)。
  • 业务Span与系统Span自动拼接:用户自定义业务逻辑(函数代码)的Span与FC系统Span自动拼接,形成端到端Trace视图,暴露潜在性能瓶颈(如冷启动耗时、资源争抢)。

跨环境互通

  • 标准化协议支持:兼容 traceparenttracestate、baggage 等Header,确保FC函数与下游服务(如数据库、消息队列)的上下文无损传递。
  • 多环境互通:支持跨函数、跨服务、跨云厂商的Trace上下文透传,无缝集成已有OpenTelemetry生态工具链。

动态成本控制

  • 灵活的采样率控制:支持通过函数配置调整采样率(如1%低负载采样,100%故障排查采样),平衡数据量与资源开销。

使用场景

函数计算集成链路追踪后,可以快速定位 Serverless 场景下的性能瓶颈。以一个langchain作为mcp-client端,高德天气查询作为mcp-server端为例。一次查询天气的调用链路如下:可以清晰的看到冷启动信息、sse连接,message连接,以及Agent的调用信息。

分析冷启动时间,优化代码

开启链路追踪后,开发者可以在FC控制台以及链路追踪控制台查看函数执行情况,请求在函数计算的时间消耗对开发者完全透明可见。

查看冷启动时间,如果 PrepareCode 时间比预期时间长,需要精简代码包;

使用自定义运行时和自定义镜像时,函数执行环境完全由用户自定义,RuntimeInitialization 时间比预期时间长则需要优化启动代码。

快速定位异常请求根因

当有异常请求时,定位到对应trace可查看异常信息,并利用AI运维助手分析Trace。



作为分布式链路的一环,追踪链路

当函数计算作为分布式链路中的一环时,函数计算链路追踪可以串联上下游服务,看到请求在各个步骤的延时。串联mcp-client和mcp-server端。

使用Arms Python探针监控LLM应用

为LLM(Large Language Model)应用安装Python探针后,调用链分析功能将会对大模型应用的调用链信息进行分析,您可以在调用链分析页面查看大模型调用链中不同类型的Span耗时、以及Span的关联信息,例如Input、Output、Token消耗等。

效果对比

场景 升级前 升级后
冷启动耗时分析 依赖日志拼凑,无法区分系统/业务耗时 可视化Span分段,精准定位瓶颈环节
跨服务调用追踪 上下文断裂,无法关联上下游 W3C Header透传,完整链路还原

总结

通过本次升级,FC 函数计算与 OpenTelemetry 的深度融合实现了全链路透明化,覆盖从系统层到业务层的完整追踪,并基于统一的 W3C 协议标准打破数据孤岛,确保跨环境一致性。同时,动态采样策略的引入有效平衡了性能与成本,为可观测性提供经济高效的解决方案。

未来,我们计划进一步扩展无侵入式监控能力,同时持续丰富可观测诊断工具集,通过智能分析和自动化诊断功能提升故障排查效率,助力用户构建更敏捷、更智能的运维体系。

MCP Server 之旅第 7 站:助力 MCP 打破“黑盒困境”的更多相关文章

  1. Sql Server之旅——第五站 确实不得不说的DBCC命令

    原文:Sql Server之旅--第五站 确实不得不说的DBCC命令 今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣...人生何尝不是这样呢???正好 ...

  2. (转)Sql Server之旅——第八站 复合索引和include索引到底有多大区别?

    索引和锁,这两个主题对我们开发工程师来说,非常的重要...只有理解了这两个主题,我们才能写出高质量的sql语句,在之前的博客中,我所说的 索引都是单列索引...当然数据库不可能只认单列索引,还有我这篇 ...

  3. Sql Server之旅——第四站 你必须知道的非聚集索引扫描

    非聚集索引,这个是大家都非常熟悉的一个东西,有时候我们由于业务原因,sql写的非常复杂,需要join很多张表,然后就泪流满面了...这时候就 有DBA或者资深的开发给你看这个猥琐的sql,通过执行计划 ...

  4. Sql Server之旅——第十三站 对锁的初步认识

    终于这个系列快结束了,马上又要过年了,没什么心情写博客...作为一个开发人员,锁机制也是我们程序员必须掌握的东西,很久之前 在学习锁的时候,都是教科书上怎么说,然后我怎么背,缺少一个工具让我们眼见为实 ...

  5. Sql Server之旅——第十一站 简单说说sqlserver的执行计划

    我们知道sql在底层的执行给我们上层人员开了一个窗口,那就是执行计划,有了执行计划之后,我们就清楚了那些烂sql是怎么执行的,这样 就可以方便的找到sql的缺陷和优化点. 一:执行计划生成过程 说到执 ...

  6. Sql Server之旅——第十站 看看DML操作对索引的影响

    我们都知道建索引是需要谨慎的,当只有利大于弊的时候才适合建,我们也知道建索引是需要维护成本的,这个维护也就在于DML操作了, 下面我们具体看看到底DML对索引都有哪些内幕.... 一:delete操作 ...

  7. Sql Server之旅——第八站 复合索引和include索引到底有多大区别?

    周末终于搬进出租房了,装了宽带....才发现没网的日子...那是一个怎样的与世隔绝呀...再也受不了那样的日子了....好了,既然网 安上去了,还得继续我的这个系列. 索引和锁,这两个主题对我们开发工 ...

  8. Sql Server之旅——第七站 为什么都说状态少的字段不能建索引

    我们在学sqlserver的时候,大多教科书和前辈们都说状态少的字段不要建索引,由此带来的开销还不如不建索引,但是这句话有多少人真的知道, 或者说有多少人真的对此有比较深刻的理解,而不是听别人道听途说 ...

  9. Sql Server之旅——第六站 使用winHex利器加深理解数据页

    这篇我来介绍一个winhex利器,这个工具网上有介绍,用途大着呢,可以用来玩数据修复,恢复删除文件等等....它能够将一个file解析成 hex形式,这样你就可以对hex进行修改,然后你就可以看到修复 ...

  10. Sql Server之旅——第五站 确实不得不说的DBCC命令(文后附年会福利)

    今天研发中心办年会,晚上就是各自部门聚餐了,我个人喜欢喝干红,在干红中你可以体味到那种酸甜苦辣...人生何尝不是这样呢???正好 ceo从美国带了干红回来,然后我就顺道开心的过了把瘾....一个字.. ...

随机推荐

  1. 文字像素(.NET)

    无图言* 代码实现 新建一个控制台应用程序, 调整 Program.cs 文件内容如下: using System; using System.Drawing; namespace ConsoleAp ...

  2. STM32 DMA中的DMA_BufferSize和DMA_MemoryDataSize   

    示例代码1 采集2通道ADC数据 查看代码 extern uint16_t ADC3ConvertedValue[2]; /* DMA2 Stream0 channel2 配置 *********** ...

  3. Echarts服务端渲染以及客户端懒加载实现方案

    为了提升首屏的加载速度,考虑先用服务端渲染快速输出首屏图表,然后等待 echarts.js 加载完后,通过注水操作(Hydration),重新在客户端渲染同样的图表 tips:在客户端渲染的时候,应开 ...

  4. 如何在 MySQL 中监控和优化慢 SQL?

    如何在 MySQL 中监控和优化慢 SQL? 在 MySQL 中,慢 SQL 查询是指那些执行时间较长的查询,通常会影响数据库的性能和响应时间.通过监控和优化这些慢 SQL 查询,可以提高数据库的效率 ...

  5. DPDI(Dispatch PDI)kettle调度管理平台之介入前后的对比剖析

    DPDI(Dispatch PDI)kettle调度管理平台 --介入前后的对比剖析 引言 在数据处理领域,Kettle(Pentaho Data Integration)作为一款广受欢迎的开源ETL ...

  6. 2.3K star!5分钟搭建专属网课平台?这个开源项目强得离谱!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 在线视频会议,在线教育和辅导变得越来越普及.而一款优秀的视频会议系统对于在线辅导来说至关重要 ...

  7. 浅谈log4j2 CVE-2021-44228

    致谢:此问题由阿里云安全团队的 Chen Zhaojun 发现. 什么是Log4j2 Apache Log4j2 <=2.14.1 版本提供的 JNDI 特性用于配置.日志信息.参数位置时,无法 ...

  8. golang+gin实现api接口开发

    一.简介: Gin是Go语言的一个微框架,也是是一个用 Go (Golang) 编写的 HTTP Web 框架,封装比较优雅,API相对友好.Gin具有性能优异和灵活快速等优点.它具有类似 Marti ...

  9. RPC实战与核心原理之异常重试

    异常重试:在约定时间内可靠的重试 回顾 在 RPC 框架中如何设计自适应的负载均衡,其关键点就是调用端收集服务端每个节点的指标数据,再根据各方面的指标数据进行计算打分,最后根据每个节点的分数,将更多的 ...

  10. GDI+中的Region的集合关系

    string content=""; GraphicsPath c1 = new GraphicsPath(); c1.AddEllipse(0, 20, 50, 50); Gra ...