MS-Rank
MS-Rank: Multi-Metric and Self-Adaptive Root Cause Diagnosis for Microservice Applications
ICWS 2019
主要贡献:
根据一系列的metrics,构建一个调用图
基于随机游走算法提出了根因定位算法
为了提高定位的准确性,用一种自适应的方法调整metrics的权重
2 RW
提到了Microscope和Sieve
论文里居然还提到了SRE…hh
3 Solution
3A Framwork
针对不同的情景,选择的metric也不一样。UI相关的,一般更在意latency;计算相关的比如hadoop,更在意cpu负载。文章把微服务系统看成是一个黑盒,那么metric的权重这样的概念就出来了。
3B Metric
latency适合短连接服务,但不适合长连接服务。
常见的metric:latency、throughput、CPU、MEM、disk、I/O,power。power = throughput / latency
Gradient相关重要的metric:
Gradient(t) = Mj,i(t) - Mji(t-1)
Gradient ratio(t) = Gradient(t) / Mj,i(t)
还有两个没列出来
3C Graph Construction
基于PC算法,依旧是一个DAG。额,这部分看得我一头雾水
3D Random Walk Diagnosis
一个最直观也是最常用的根因定位方法是计算某个服务的metric和Anomaly服务的metric的相似度。我看的其他论文里也大致是这个思想
同样这篇论文用皮尔逊相似度,不过添加了权重的部分。可以得到vi和vj的关系(相似度)
Transition(游走):向前(遇到高相似度)、向内(前后都是低相似度,则停留在自身)、向后(遇到低相似度)
3E Weight Update
P(M) Precision Function,计算定位结果的准确性。还有更新权重,都是一个公式带过。
3F Example
收集了2小时(7200s)的数据,每5s一次收集,对于每个metric都有1440个记录。
示例的这个图画得挺好的,体现出了不同的metric在trace中的表现。但是这图看不懂原理啊
4 Evaluation
4.1 Benchmark
有两个小问题:1. 没有考虑数据库 2. 并不是真正意义上的ms,是把一个api视为一个ms。所以没有用到k8s等
Benchmark:TBAC、MonitorRank、NetMedic和Gestalt我只听说过MR
在一台16G Windows Server上进行实验
比较了Precision、Adaptability和domain knowledge(领域知识能增强准确性)
最后还有不同的参数对实验的影响。
5 Final
他们和Pengfei Chen是一个圈子里的啊,中山大学和清华深研院应该有交易的hh。我感觉我们不在这个圈子里啊。