NOMS20-MicroRCA-Root Cause Localization of Performance Issues in Microservices
总结
使用属性图来模拟微服务系统的异常传播
使用图和权重、PageRank的方法来定位问题
已知的性能问题表现在权重上(异常症状和资源关联)
PageRank对可能的问题节点进行排序,很新颖
能够更准确得定位问题,能够从症状明显的服务和症状不明显的服务中准确得找出根因,这是别的方法做不到的地方(作者言)
权重、图的数据来源仍然是默认的调用信息、调用结构、时间等
MicroRCA: 将性能症状于相关资源利用率相关联,推断出根本原因
Intro:
微服务挑战
- 复杂的依赖(很多服务)2. 大量的监控数据 3. 异构的服务 4. 频繁的更新
提出MicroRCA
- 收集应用(响应时间)和系统层级(cpu、内存)的数据,检测服务级别(service)的异常
- 一旦检测到,构造包含服务和host的属性图(不仅包含异常路径,还包含host上的所有服务)
- MRCA将异常和资源利用率相关,并排序根因
优点:通过业务异常与资源利用率的相关性,MicroRCA可以识别出异常且服务异常症状不明显的非计算密集型服务,减轻虚警对定位根本原因的影响。
贡献:
提出属性图来模拟微服务系统的异常传播
提出一种方法,能够将异常症状和资源关联,从而定位问题
总览
MicroRCA
检测到异常 -> 构建相关服务和节点的属性图 -> 构建子图 -> 排序问题
数据收集:
服务网格+系统监控
异常检测
无监督学习: Distance-Based online clustering BIRCH
检测慢响应时间作为异常
根因定位三步曲:属性图构建、异常子图构建、错误服务定位
根因定位
属性图构建
构造一个属性图来表示微服务环境中的异常传播
选中的服务:不仅包含错误路径涉及的服务(异常在同一节点的服务间扩散)
基础架构:正常运行时的框架
异常子图构建
s1->s2: s2为异常节点
节点附加属性:平均异常响应时间rt_a
异常服务定位
edge 权重赋值
权重1:异常程度,
越异常越大
权重2:异常节点对正常节点的影响,corr(t(E
i,j), t(rt_a(i)))权重3:异常响应时间和主机资源利用率的最大相关度
最后一项为入度为异常的所有边的平均值
共有三个属性
服务异常打分
节点平均权重 * 最大[资源和异常延时之间的相关系数]
定位
PageRank
- v: 最终排序
- p: 移动概率(根据权重计算)
- 1-c: 继续传播, c: 随机跳跃
- u: 节点的异常分数
实验
两个指标
PRk:topk包含真实故障的概率,k越小,精度越高
平均PRk: 整体性能
实验看来,top1大多数情况能找到问题
NOMS20-MicroRCA-Root Cause Localization of Performance Issues in Microservices