跳到主要内容

故障注入使用指南

最后 更新

故障注入平台部署了train-ticket业务系统的两条完整业务流程,查询余票查询最便宜票,并对两个业务通过入口接口每秒产生一次访问。以这种形式来模拟真实用户访问情况。

  • 正常情况下,系统正常运行,不存在任何故障。
  • 可以通过在任意节点注入故障来感知故障根因推导的能力。用户可以在调用链路拓扑图中选择任意节点注入已经支持的故障,同时界面会显示故障已经注入成功。见「图1:业务调用链路拓扑」

图1:业务调用链路拓扑

在已经支持的故障案例种类中,可以在任意节点选择任何故障进行注入,但是故障不一定会对业务造成影响,例如对一个IO密集型业务注入「增加处理每个请求的CPU消耗」故障,对业务影响并不会特别明显。因此在故障注入成功以后,可以主要通过观察该业务延时是否有上升来判断该业务节点对被注入的故障是否敏感。 图2:故障信息选择

Kindling-OriginX 的使用

当故障注入完成之后,通过 Kindling-OriginX 可以看到 SLO 违约的情况。 在 Grafana 中可以在 Kindling App 中的「SLO实时异常检测」Tab 中看到以服务入口进行分类的近30分钟实时 SLO 违约检测情况列表,见「图3:SLO 实时异常检测」。 在 「SLO近48小时异常检测」中可以对最近48小时内的异常情况进行回溯和总览,见「图4:SLO 近48小时异常检测」。 图3:SLO 实时异常检测

图4:SLO 近48小时异常检测

Kindling-OriginX 排障处置流程

SLO 发生违约

  1. 查看违约情况

当发生 SLO 违约时,在对应服务入口的 Timeline 中点击选择对应的违约时段,此时可以在「异常诊断」下看到该违约的具体情况,包括发生违约的具体时间段、请求成功率与 SLO 的可用性目标、违约时段 P90 数值与 SLO 延迟性目标。在「异常根节点占比」下可以看到该违约中异常根节点占比具体情况。在「图5:SLO 违约检测」中该次违约中 SLO 延迟性目标是 1200ms,违约时段 P90 为 1960ms,超过目标值,发生违约,同时定位到异常根节点占比最大的为「ts-route-service」节点。 图5:SLO 违约检测

  1. 查看诊断报告

针对该 SLO 违约,点击诊断后可进入该次违约对应的诊断报告列表页,列表中的内容为 Kindling-OriginX 针对本地违约所生成的全部诊断报告,见「图6:诊断报告列表」。其中包括该报告对应的TraceID、耗时、请求时间、故障服务名、入口服务等信息。 图6:诊断报告列表

  1. 查看故障根因分析

选择故障报告查看报告详情,这里以第一条报告为例。在「图7:诊断报告详情」中从上至下,从左到右,三个面板主要为:故障根因推导基本信息、调用链路根因分析、故障节点根因分析及推导详情。其中在报告基本信息中可以看到本次调用的基本情况与本次调用时长和P90的对比情况;在调用链路根因分析中可以看到本次调用链路情况,每个节点的调用耗时详情;在故障节点根因分析及推导详情中可以直接得到本次故障的根因,以图为例,该示例的根因为「Runq耗时高,存在CPU抢占」,即说明该 SLO 违约是由于 CPU 资源不足导致,应当考虑调整资源分配或增加资源。下方是针对该推导结论的论证数据,包括排障北极星指标、runq等具体指标数据情况。关于排障北极星指标与runq等内容可参考什么是北极星排障指标体系? 图7:诊断报告详情

进行排障处理

完成故障定位及确定故障根因后,即可根据所在组织处理流程,进行排障工作。例如该示例中确认该违约的根因为 CPU 发生抢占,即资源不足,那么根据组织实际情况就决策即可,例如调整资源分配或增加资源。

复盘回溯

Kindling-OriginX 提供详细的故障根因分析与推导过程,并且已自动关联相关的监控与各类指标数据,这些都能够帮助使用者在复盘阶段进行更完整的总结与分析,彻底解决隐患预防类似故障再次发生。可以通过:

  • 完整的故障根因分析推导报告,进行完整的故障现场还原。
  • Trace List会智能化筛选出有代表性的故障请求,其中包括 Slow 与 Error 两类,能够方便进行阶段性总结与系统优化。

图8:Trace List 同理,在列表中选择任意一个代表性故障请求,Kindling-OriginX 都会呈现对应的故障根因报告。

Kindling-OriginX 故障判定原理简介

故障判定

根据将请求调用时长与历史 P90 数据相对比,发现其远大于历史 P90 数据,将其判定为慢故障。 图9:故障根因推导基本信息

故障节点判定

在判定有慢故障的情况下,通过对调用链路的分析后,裁剪旁支,聚焦故障传播主链路,最终定位故障节点。 图10:故障调用链路分析

故障根因结论

故障根因节点之所以产生故障的原因可以从故障根因结论中找到 图11:故障根因结论

故障根因推导过程

如果需要理解完整的故障根因推导过程,可以从故障节点分析中以及后续的推论中找到故障根因推导的完整过程以及佐证数据。 Kindling-OriginX 会根据专家经验,智能化采集针对此次故障的指标和日志,将其关联分析。 在使用 Kindling-OriginX 如需要更详细的指标进行分析和探索或对数据存有疑虑,可点击 cpu、net、runq 等分类指标,跳转至 Grafana 对应的 Dashboard 页面查看对应指标的详细数据,同时用户也可以在 Granfana 中建立新的数据源关联其他指标 Dashboard。 图12:故障根因推导过程(部分)