稳定性专题 | 通过链路追踪快速发现和定位业务问题的实践

  • 时间:
  • 浏览:1

Jaeger 中打上去 Tag 信息

许多人歌词 接下来做其他业务场景举例。

Java 代码最好的妙招:

本文作者:徐建伟,花名竹影,阿里云技术专家,多年系统架构,性能调优经验, 目前主要从事链路跟踪,应用监控相关工作。

随后们每次调用远程接口完成后,对返回的异常打上去 Tag,类似于于调用优惠时返回系统异常加 Tag: tracer.activeSpan().setTag("bizErr", “1-PromotionSysExcep”); ,调用库存返回库存缺陷,须要打上去tracer.activeSpan().setTag("bizErr", “5-InventoryNotEmpty”);

生成订单时,会调用优惠,库存,物流,商品等系统接口。哪些地方地方接口都在由于 会返回异常,其他异常其他比较重要,其他可是我用于展示。许多人歌词 为什么快速识别当前应用的异常严重程度呢?须要通过加 Tag 的最好的妙招来实现。许多人歌词 对异常进行分 1~5 级,1 级表示非常严重。

在中台应用中,各个业务使用同一有六个 交易系统,通过订单中的一有六个 业务类型字段来区分不同的业务。通过在链路上的标签,须要查看得人不同业务线的下单成功和失败曲线。比如大盘上须要展示天猫,聚划算,盒马生鲜等业务的订单情況。一旦有异常就须要分析链路的明细信息来查找由于 。

Skywalking 中打上去 Tag 信息,

不插入代码的最好的妙招:

https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/Customize-enhance-trace.md

中台系统中各个业务的创建订单大盘。

精细化分析,全链路数据,快速发现和定位哪些地方的问提。

导读

通用的监控系统主可是我对操作系统,分布式调用,数据库组件进行监控。由于 对业务监控,那就须要开发同学对调用链分类整理打上去业务属性(用 tag 来记录各种业务属性)。通过对 tag 标签进行过滤和统计聚合,达到业务分析和监控的效果。

在传统的 APM 分析中,主可是我关注各种接口的响应时间,对业务缺陷贴切,随后会带来其他哪些地方的问提:

Tag 功能主可是我业务开发同学用来进行业务监控的, 通过在链路上写入 Tag,须要把业务和链路打通,从而很好的发现,定位,跟踪哪些地方的问提。

指定 Tag 进行聚合,分析 Tag 聚合的统计。如下图查看每个入口(PC 和 Mobile)的请求数,响应时间,异常查询。须要识别是不同业务的对比情況。

用 OpenTracing 插入代码最好的妙招

须要通过筛选 Tag 进行过滤,寻找所须要的链路。如下图,查看手机端下单的请求的变化趋势,详情等。

在介绍业务分析功能随后,先简单提有六个 哪些地方的问提,许多人歌词 发散思考下为什么处置这有六个 哪些地方的问提。

1、某个应用的对外接口流量突增,是都在由于 某个用户由于 地域流量暴涨?

2、应用再次出现 比较多空指针异常,哪些地方地方异常对业务有多大的影响?

传统的 ELK 最好的妙招,用户通过插入代码,将业务的属性都打到日志上端。通过数据聚合,须要生成各种 Metrics,打上去告警等。随后做监控是至少的,有过后须要更高度次的挖掘哪些地方的问提说说,还须要和链路打通。将监控的内容上下游的信息都串起来,须要更方便的定位哪些地方的问提。

『StabilityGuide』是阿里多位阿里技术工程师一起去发起的稳定性领域的知识库开源项目,含有性能压测、故障演练、JVM、应用容器、服务框架、流量调度、监控、诊断等多个技术领域,以更特性化的最好的妙招来打造稳定性领域的知识库,欢迎您的加入。

比如:更新库存失败,发现异常都在上游某个业务的某台机器上,而这条机器是灰度机器,使用了非稳定版本的。

Java 注解最好的妙招

业务分析是在链路上标注其他业务数据,以下许多人歌词 用 Jaeger 和 Skywalking 为例子讲解业务分类整理。

同一有六个 接口被什么都有业务方调用,某一有六个 重要业务调用出了哪些地方的问提,由于 某种业务占比不高,无法通过平均数由于 p90 分析出来。类似于于创建订单中重要客户,哪些地方地方客户订单占比不高,有过后重要性比较高,须要重点分析和监控。

其他用户反馈下单由于 付款再次出现 哪些地方的问提,有过后某种情況只占据 几瓶用户,重现比较困难。由于 把用户的异常和链路关联起来,分析异常用户的链路数据,比如出入参数,用户属性等,须要发现其他线索。类似于于查看用户 ID 对应的失败订单,分析订单上链路,发现失败订单的来源都在某个旧版的客户端调用。

Tag 信息就好比给图书打上编号分类信息,你须要们须要在图书馆海量的图书中找到许多人歌词 须要图书。通过 Tag 来进行分类、查找、统计,须要快速找到许多人歌词 须要的数据。

✅ @GitHub :

https://github.com/StabilityMan/StabilityGuide✅ @钉钉群:

以 Java 语言为例,

业务排查的哪些地方的问提最好的妙招有什么都有种,调用链和业务信息打通由于 是某种行之有效的最好的妙招。通过在调用链写入业务信息,由于 给调用链配上显微镜,快速发现隐藏在链路数据中的各种哪些地方的问提。而业务数据关联调用链,也给业务排查插上翅膀,从链路的上下文信息中快速找到线索。

将 UserId 用 Tag 最好的妙招写入到 Span 中,须要统计到都这么用户的数据,类似于于访问量,响应时间。许多人歌词 随后遇到一有六个 哪些地方的问提,Web 的流量老会 变大,响应先要。从监控来看流量比较大,但为哪些地方流量会比较大呢,通过 UserId 分组统计后,发现某个用户的流量暴涨,由于 整个后台响应先要,对某种用户进行限流后,web流量和相应时间恢复正常。

在可观察性领域,Metrics,Tracing 和 Logging 的介绍由来已久。某种之间的边界都这么模糊。OpenTracing 中由于 支持 LogEvent,OpenTelemetry 由于 把 OpenMetric 和 OpenTracing 整合到一块。今天许多人歌词 要介绍的链路追踪的业务分析功能,通过对链路数据进行聚合统计,须要查看各种业务报表。

??

都这么通过 Tag bizErr 进行聚合,对数量进行排序下,由于 1-** 开头的比较多,那表示当前系统比较严重,须要紧急处置。查看哪些地方地方异常链路的请求参数由于 返回值,许多人歌词 须要快速定位哪些地方的问提。