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

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

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

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

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

      MicroHECL High-Efficient Root Cause Localization in Large-Scale Microservice Systems_第1张图片

    • 流程

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

      MicroHECL High-Efficient Root Cause Localization in Large-Scale Microservice Systems_第2张图片

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

      • 性能异常-RT:

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

      • 可靠性异常-EC:

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

      • 流量异常

        3-sigma原则

    • 剪枝

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

你可能感兴趣的:(论文,微服务,故障定位,分布式系统,追踪Trace)