前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >RUM、APM 强强联手实现全链路监控

RUM、APM 强强联手实现全链路监控

作者头像
腾讯云可观测平台
发布于 2025-02-11 06:17:06
发布于 2025-02-11 06:17:06
1730
举报

导语:文章主要讲解如何让前端性能监控(RUM)和应用性能监控(APM)串联起来,在腾讯云可观测平台实现全链路高效监控。

RUM 与 APM 面临的挑战

1、行业挑战

监控行业的友商们陆续都提供了全链路能力;

链路追踪无法闭环,查错能力不足。

2、用户挑战

用户使用腾讯云可观测平台 RUM 无法查看链路详情;

用户在腾讯云可观测平台 APM 上无法查看前端链路部分。

基于此,结合 RUM 和 APM 的腾讯云可观测平台全链路方案亟待落地,本文将手把手教你实现全链路监控

高效快速改造现有业务实现全链路监控

RUM SDK在原有基础上进行了升级改造,通过配置参数实现 TraceId 的透传,并且在用户选择 APM 实例时,无感知地绑定 APM 实例,以实现 APM 反查前端链路第一跳的相关信息,使用户前后端链路彻底打通。

在 RUM 日志页面,用户可在当前页面通过选中 Trace 字段来打开右侧抽屉查看全链路信息。在 APM 侧,您也可以查看到包含前端第一跳的完整链路信息。而以上的新功能,您只需在 RUM- SDK 中配置几个简单参数即可拥有,让我们一起跟着步骤来看看吧!

步骤一:前端接入 RUM SDK

1. 登陆 腾讯云可观测平台-前端性能监控。

2. 在左侧菜单栏中单击数据总览

3. 在数据总览页中单击应用接入,根据提示填写配置信息。

4. 配置完后单击下一步,进入应用接入页面。根据页面提示接入 RUM SDK,并初始化 SDK。

5. 开启下图对应配置参数,前端方面即已完成链路配置。

(建议前后端均使用 OpenTelemetry 协议的上报方式。)

关键配置

字段 injectTraceHeader 会使 Aegis SDK 给所有监控的接口注入对应的请求头,并

且自动生成相关协议字段。目前支持 Traceparent、sw8、b3、Sentry-Trace。

协议字段

说明

Traceparent

OpenTelemetry 的约定字段(推荐使用)

sw8

SkyWalking 的约定字段

b3

Zipkin 跟踪约定字段

Sentry-Trace

Sentry 的约定字段

步骤二:后端使用 OpenTelemetry 接入 APM

1.在腾讯云可观测平台 应用性能监控 > 资源管理 页面,单击新建,创建业务系统。

2.进入 应用列表 页面接入应用,选择对应的业务系统,选择对应的语言和 OpenTelemetry 方式接入应用。

说明:目前支持 Java、Go、Python、PHP 等应用接入方式。

步骤三:使用方法

当接口发生请求且产生历史日志时,您可在 前端性能监控 > 日志查询 > 历史日志 页面选择字段 Trace,若该日志有 TraceID,可左键单击 TraceID。在弹框中单击自定义跳转配置,绑定 APM 业务系统。

绑定后,可在当前页面查看该条请求在整个链路下的状态。

也可以单击相关链接即可跳转到 APM 链路详情页。

实现调用链路追踪,排查后端链路异常原因,快速定位异常信息。

最佳实践--Trace 打通原理剖析

1、Trace 是如何打通的

接入 OpenTelemetry 后所有打桩的接口都会带上一个请求头,Traceparent 或者 b3,这个请求头是 Trace 打通的核心,它主要由 TraceId 和 SpanId 组成,TraceId 会跟随这个接口一直向下,所有的内部服务和请求都带有该字段,每层服务生成对应的 Span,最后根据 TraceId 把所有 Span 连起来形成了 Trace 数据链。

如果 Aegis SDK 根据用户协议生成对应的 Trace 关键字,并且带入到请求的 header 中,其实也可以实现这个效果:我们在项目验证中,去掉了所有 OpenTelemetry 的引入,并在 Aegis SDK 中 mock 了一个 Traceparent,发现上报正常,Trace 也可以正常生成。

不过对比这个 Trace 的图发现这里 Trace 起点是 tomcat,不是前端的 HTTP 请求,所以可以判断这里是缺少了前端的 Span。

由于没有在前端接入 OpenTelemetry 的 sdk,因此这里也不难理解为什么 Trace 中少了前端的 Span 了。

那么如果用户可以接受忽略 Trace 缺少前端 Span 这种情况,其实当前的方案已经可以满足 90% 的问题查询 case 了,缺点可能就是如果请求链路在网络层或者 CLB 层断掉的话,就没办法发现断掉的原因。除此之外,前端的数据可以在 RUM 上看,后端的链路可以在 APM 上查看。

于是我们对当前 Aegis SDK 进行优化,可以适配不同全链路协议的请求头。

目前适配的协议有:Traceparent、b3、sw8、Sentry-Trace,请根据下游应用选择对应的协议。

2、SDK 全新接入方案

通过 injectTraceHeader 参数,Aegis SDK 会给所有监控的接口注入对应的请求头,并且自动生成相关协议字段。

对比之前需要几十行的接入代码,并且需要非常复杂的 Nginx 转发配置,当前方案极大地减少了开发者的使用负担。

从性能的角度来看,当前方案上报的数据量也远远少于之前的方案,开发者也不需要详细理解 Trace 协议的原理,只需要配置即可,可以说是比较方便地实现了“无侵入接入”。

3、最终方案

上述方案可以解决90%的查询 case 以及“无侵入接入”,但我们终究还是要实现“真全链路”,核心思路就是把缺失的前端第一跳信息补齐,为此我们通过改造 SDK 上报“第一跳请求”发生的时间,APM 展示链路时反查询绑定的 RUM 实例对应 TraceId 的第一跳起始时间,从而形成前端到后台的完整链路信息。

至此,您即可以在 APM 上查看到包含前端第一跳的详细链路信息,也可以在 RUM 本地快捷查看链路信息。

效果:RUM 查看全链路

效果:APM 查看全链路

(框中绿色部分为前端应用第一跳的链路信息。)

联系我们

如有任何疑问,欢迎加入官方技术交流群

关于腾讯云可观测平台

腾讯云可观测平台(Tencent Cloud Observability Platform,TCOP)基于指标、链路、日志、事件的全类型监控数据,结合强大的可视化和告警能力,为您提供一体化监控解决方案。满足您全链路、端到端的统一监控诉求,提高运维排障效率,为业务的健康和稳定保驾护航。功能模块有:

  • Prometheus 监控:开箱即用的 Prometheus 托管服务;
  • 应用性能监控 APM:支持无侵入式探针,零配置获得开箱即用的应用观测能力;
  • 云拨测 CAT:利用分布于全球的监测网络,提供模拟终端用户体验的拨测服务;
  • 前端性能监控 RUM:Web、小程序等大前端领域的页面质量和性能监测;
  • Grafana 可视化服务:提供免运维、免搭建的 Grafana 托管服务;
  • 云压测 PTS:模拟海量用户的真实业务场景,全方位验证系统可用性和稳定性;
  • ......等等
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-12-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 腾讯云可观测 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
构建前后端一体化可观测场景,原来只需5步!
背景 当用户 APP 或小程序购买商品,遇到突然闪退,请求超时或者下单失败,前端页面响应慢等终端问题,可能会直接导致用户流失。 这种看似简单的终端问题,既可能是前端程序问题导致,也可能是因为中间件或数据库故障或者后端服务的错误。有时候在前端排查出异常,也很难直接定位到后端哪个应用或服务导致的,无法明确给出确定性的根因。 前后端一般通过请求进行交互,当服务出现异常时,开发人员需要回溯当时所有操作,进行异常分析与定位。单点监控导致前后端数据无法串联,无法完整回溯所有行为,且定位问题成本较高。 用户终端发起请求
腾讯云可观测平台
2022/09/27
1.1K0
构建前后端一体化可观测场景,原来只需5步!
全链路追踪在腾讯云的落地思考与实践
随着微服务以及容器技术的发展,系统软件的构建方式也随之发生了改变,微服务调用关系错综复杂,传统的监控方案很难满足当下应用场景的需求,指标、链路追踪以及日志目前已经成为了云原生应用的“必备品”,当把它们集成在一起时,需要拥有一个更加成熟的现代化可观测体系来支撑,以便了解应用系统内发生的事情。通过可观测性体系的建立,我们可以更好的去洞察监控数据,从而能够更快速的做问题定界以及根因定位,降低 MTTR。
腾讯云可观测平台
2024/01/03
9041
全链路追踪在腾讯云的落地思考与实践
可观测迁移实战:从自建困境到高效运维的华丽转身
在教育行业数字化转型进程中,某教育头部客户的运维团队面临自建 SkyWalking 监控系统的严峻挑战。随着业务规模扩张,系统运维复杂度呈指数级增长,运维团队每月 20% 以上工作时间都消耗在监控系统自身故障处理且微服务架构下的故障排查效率极低 ,针对这一现状,该团队通过技术架构升级与优化,与腾讯云可观测平台产研团队共创,实现了从传统自建监控体系向腾讯云可观测平台的迁移,同时也为教育行业监控系统转型提供实践范例。
腾讯云可观测平台
2025/06/11
750
可观测迁移实战:从自建困境到高效运维的华丽转身
产品月报|Prometheus 支持一键采集容器指标,APM 新增性能剖析能力...
新增支持一键采集预设监控图表的所有指标,同时支持按照图表种类和预聚合规则筛选指标,提高指标采集的配置效率。
腾讯云可观测平台
2025/02/11
1140
产品月报|Prometheus 支持一键采集容器指标,APM 新增性能剖析能力...
产品月报|Prometheus 支持在控制台快捷查看告警指标图表,APM 新增采样策略...
1.国际站容器服务的集群详情页支持一键开通 Prometheus 监控,开通完可直接查看常用指标监控图表。
腾讯云可观测平台
2025/02/11
950
产品月报|Prometheus 支持在控制台快捷查看告警指标图表,APM 新增采样策略...
Web页面性能优化——前端监控监控
本文分为接入前端性能监控、使用前端性能监控、性能优化三部分,可以通过目录跳转到对应的部分浏览。
Im小泽
2023/09/12
1.1K0
【近期更新】 前后端链路打通,实现端到端全链路故障定位
前端性能监控(RUM) 1. 前后端链路打通,实现端到端全链路故障定位。 在前端 Skywalking 方式接入前端性能监控,后端 Skywalking 方式接入应用性能观测。在前端性能监控页面绑定 APM 相关业务系统,即可实现前后端链路打通,实现端到端全链路故障定位。联动排查前后端异常原因。 详细操作文档:https://cloud.tencent.com/document/product/1464/80520。 2. 增加地域筛选器,方便您分地域查看监控数据,更精准、快速排查异常。 3. 告警新
腾讯云可观测平台
2022/09/19
2.1K0
【近期更新】 前后端链路打通,实现端到端全链路故障定位
【腾讯云应用性能观测x日志服务】:链路日志关联,加速故障定位
顾自然 腾讯云监控产品经理,硕士毕业于墨尔本大学。目前主要负责腾讯云业务层监控相关产品策划工作,对应用监控和运维领域有深刻理解。 前言 随着微服务架构的逐渐流行,在熵增且庞杂的系统中准确的定位一个请求的完整生命周期,逐渐成为了研发同学面对的最大的痛点之一,以研发同学自测过程为例,开发同学往往希望在发起测试的 Http/RPC 请求后,能够通过一个简单的方式获取整个测试请求的上下文信息。这其中通常包括相关的上下游链路、各个服务内部请求的方法堆栈,以及链路上打印的日志等数据,对于指标-链路-日志的一体化监控的需
腾讯云可观测平台
2022/03/24
1.4K0
一文详解腾讯云可观测平台 APM 采样方案
前言:本文直击传统采样方案的痛点,着重介绍腾讯云 APM 新推出的采样策略优势:既能降低 APM 使用成本,又不会对用户的使用体验带来明显影响。
腾讯云可观测平台
2025/02/11
2180
一文详解腾讯云可观测平台 APM 采样方案
客户案例|某车企建设统一监控平台实践
导语:文章主要介绍腾讯云 Prometheus 在监控出行行业的突出优势与解决方案,为客户运维团队降低了很多成本。
腾讯云可观测平台
2025/02/11
3480
客户案例|某车企建设统一监控平台实践
监控产品常见问题(第1期)
Prometheus 监控服务(TMP) 1. TMP 和自建有什么区别吗 TMP 完全兼容开源生态,并与腾讯云监控数据打通,帮助用户快速搭建监控体系(自定义监控,组件监控,基础监控等),支持 Grafana 并预设了常用的监控 Dashboard,支持丰富的 Exporter 并预设了常见的告警模板;很好解决了开源社区 Prometheus 高可用搭建困难, Prometheus 性能可扩展性差,运维消耗人力等痛点。 2. TMP 的监控数据是怎么采集的? 通过 Prometheus agent 拉取
腾讯云可观测平台
2021/11/09
6840
得物云原生全链路追踪Trace2.0-采集篇
2020年3月,得物技术团队在三个月的时间内完成了整个交易体系的重构,交付了五彩石项目,业务系统也进入了微服务时代。系统服务拆分之后,虽然每个服务都会有不同的团队各司其职,但服务之间的依赖也变得复杂,对服务治理等相关的基础建设要求也更高。
得物技术
2022/12/08
1.3K0
得物云原生全链路追踪Trace2.0-采集篇
腾讯蓝鲸 游戏服务全链路、真全栈无盲点可观测实践
本文整理自2023年12月16日于北京清华大学举办的 以《网络为中心的零侵扰可观测性》的技术论坛, 来自蓝鲸观测平台团队的 刘文平 做了题为 《腾讯游戏真全栈观测实践》的演讲。 介绍了腾讯 IEG 蓝鲸观测平台如何运用前沿的 DeepFlow 的 eBPF 技术,结合传统的 APM 体系,实现了对游戏服务全链路、真全栈,无盲点观测。这一跨越系统、网络、应用、基础组件、服务到业务的监控能力,不仅提升了问题诊断的效率,还优化了应用性能,确保了游戏玩家能获得最佳的体验。
DeepFlow
2024/02/06
6580
腾讯蓝鲸 游戏服务全链路、真全栈无盲点可观测实践
腾讯云 APM 应用诊断升级:链路追踪与智能剖析的融合
在某电商平台的监控大屏前,弥漫着紧张的气氛,运维工程师们目不转睛地关注着实时跳动的交易成功率数据,随时准备着系统扩容。
腾讯云可观测平台
2025/04/09
1790
腾讯云 APM 应用诊断升级:链路追踪与智能剖析的融合
如何基于标准化的OpenTelemetry构建APM探针能力
导语 | 本文推选自腾讯云开发者社区-【技思广益 · 腾讯技术人原创集】专栏。该专栏是腾讯云开发者社区为腾讯技术人与广泛开发者打造的分享交流窗口。栏目邀约腾讯技术人分享原创的技术积淀,与广泛开发者互启迪共成长。本文作者是腾讯前端高级开发工程师常敏。 云原生为传统监控带来挑战。云原生场景下,企业大规模地部署容器,应用节点呈指数级增长,故障可能发生在任意节点,无法感知与预测的因素越来越多。业界将“可观测性”能力划分为5个层级,其中告警(Alerting)与应用概览(Overview)属于传统监控的概念范畴。腾讯
腾讯云开发者
2022/09/08
9740
如何基于标准化的OpenTelemetry构建APM探针能力
中秋节~您有一封腾讯云监控的信件待查收......
尊敬的腾讯云监控用户: 您好, 褪去了盛夏的连月燥热,迎来了秋高气爽的日子。在这个充满希望的金黄色季节,我们祝愿您和您的业务也能收获无限可能。 春种一粒粟,秋收万颗子。白露已过,随着露珠一起凝结的,是枝头的硕果累累,回望过去的半年,云监控经历了太多的成长:产品功能不断完善,产品图鉴不断补全,无论如何成长,打造云原生场景下的一体化可观测性平台,是腾讯云监控不变的初心: 在过去的半年里,应用性能观测APM,前端性能监控RUM与日志服务CLS联动,完成指标-链路-日志的打通,实现请求级端到端全链路可观测; 在云
腾讯云可观测平台
2022/09/14
6530
中秋节~您有一封腾讯云监控的信件待查收......
产品月报|Prometheus 支持跨账号采集 ,APM 支持对特定业务系统开启免费模式...
1.支持在容器集群详情页的 Prometheus 监控页面,一键安装集成中心中更多类型的组件监控,缩短用户使用路径。
腾讯云可观测平台
2025/02/11
960
产品月报|Prometheus 支持跨账号采集 ,APM 支持对特定业务系统开启免费模式...
【可观测链路】多语言 Opentelemetry SDK 接入实践
随着时间推移,笔者参与的平台建设已进入稳定的开发迭代版本,目前平台的各模块需要一个通用的、可扩展的问题定位、日志上报、跟踪调用链路的模块
siri
2023/10/04
1.5K1
【可观测链路】多语言 Opentelemetry SDK 接入实践
产品月报|Prometheus 支持新建容器集群时自动开通 Prometheus 监控,APM 支持用户自定义应用健康阈值...
2.Prometheus 国际站采集端架构升级,支持实例诊断、系统健康检查,并提升了采集 Agent 资源利用率和指标采集稳定性。
腾讯云可观测平台
2025/02/11
1220
产品月报|Prometheus 支持新建容器集群时自动开通 Prometheus 监控,APM 支持用户自定义应用健康阈值...
产品月报|Prometheus 优化告警功能,APM 国际站计费上线......
包括:新增支持从告警消息中链接跳转到对应实例、优化告警消息中告警对象的显示、支持告警内容换行、优化 Grafana 告警通道的交互和校验(提高客户配置成功率)、新增支持更多云产品监控等。
腾讯云可观测平台
2024/01/09
2410
产品月报|Prometheus 优化告警功能,APM 国际站计费上线......
推荐阅读
相关推荐
构建前后端一体化可观测场景,原来只需5步!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档