ICSESEIP21-MicroHECL- MicroHECL High-Efficient Root Cause Localization in Large-Scale Microservice Systems

总结

  • 作者认为现有方法不行

    • 现有基于图(服务依赖图)的方法,检测不准确,效率低
    • 现有基于trace分析的方法,需要大量计算,做不到
  • 提出一种动态图构建的方法,从可观测异常服务起,根据三种异常,扩展构建异常相关图。对图节点遍历排序,找出相关根因

摘要

  • 现有方法对异常检测不准确以及对服务依赖图遍历低效
  • 基于动态构造的服务调用图,分析可能的异常传播链,基于相关性分析对根因进行排序
  • 结合机器学习和统计方法,设计定制模型检测不同类型的服务异常(性能、可靠性、流量)设计剪枝消除异常传播中不相干的服务调用

Intro

  • 微服务系统特点

    • 动态+复杂

      • 服务有众多实例调用链异步交互
    • 异常沿着调用链传播,最终导致业务问题

  • 过去的工作

    • 基于trace分析:基于跟踪分析的方法需要昂贵的跟踪数据收集和处理,因此不能有效地用于大规模系统。
    • 基于依赖图分析:基于服务依赖图的方法基于服务调用和因果关系(例如,服务位于同一台机器上)构建服务依赖图。这些方法通过遍历服务依赖关系图并通过服务的质量度量(例如,响应时间)检测可能的异常来定位根本原因。这些方法的局限性在于,它们对服务异常的检测不准确,对服务依赖关系图的遍历效率低下,尤其是当系统有许多服务和依赖关系时。

背景

  • 三种异常

    • 性能异常:RT-响应时间
    • 可用性异常:EC-error counts
    • 流量异常:QPS-queries per second

整体流程

  1. 构建服务调用图

    重点为图结构以及数据如何存储

  2. 异常传播链分析

    分析方法是沿着异常服务调用边缘遍历服务调用图,从初始异常服务开始,沿着可能异常传播方向的相反方向进行。

    用了一个剪枝方法

  3. 候选根因排序

    初始异常:业务异常(订单若干次不成功)

    根因异常:RT, EC, QPS

    使用皮尔逊相关系数计算异常之间的相关性,并排序

异常传播链分析(上文第二点)

  • 性能异常、可靠性异常:下游->上游流量异常: 上游->下游

  • 流程

    1. 入口点分析,对每种异常分析
    2. 异常节点扩展,上下游检测
    3. 得到候选根因

  • 节点异常检测 - 检测节点是否存在异常

    • 性能异常-RT:

      有周期性波动,选择OCSVM(一种支持向量机)

    • 可靠性异常-EC:

      EC可能随着流量变化(流量大就G,流量小又恢复),所以选择随机森林

    • 流量异常

      3-sigma原则

  • 剪枝

    • 两个连续的边在对应的度量中有相似的变化趋势
    • 使用相关系数判断,如果相关系数低于阈值,则新边不被加入

ICSESEIP21-MicroHECL- MicroHECL High-Efficient Root Cause Localization in Large-Scale Microservice Systems

https://www.fireknight.tech/2023/01/12/ICSESEIP21-MicroHECL-MicroHECL-High-Efficient-Root-Cause-Localization-in-Large-Scale-Microservice-Systems/

作者

FireKnight

发布于

2023-01-12

更新于

2023-01-12

许可协议

评论