Page 16 - 《软件学报》2021年第5期
P. 16
1240 Journal of Software 软件学报 Vol.32, No.5, May 2021
…000001000000−10000000100000−100000…
Fig.6 Performance change series
图 6 性能变化序列
随后,对于因果关系图中的每一条因果关系边,以边上两个性能指标节点的性能变化序列作为输入,计算两
个监控指标之间的皮尔森系数,即可得到性能指标之间的在性能变化上的关联程度.图 7 展示了一条因果关系
边上的两个性能指标根据性能上升下降的变化构建性能变化序列,并以性能变化序列之间的关联系数为因果
关系边赋予权重的整个过程.
Fig.7 Causality edge weight assignment
图 7 因果关系边权重赋值过程
3.4 韧性风险影响链路输出
基于在第 3.2 节中的因果关系图,韧性风险影响链路将通过以下方法生成:将不满足服务韧性目标的服务
性能所对应的节点设为目标节点,在因果关系图中寻找所有直接或间接指向目标节点的性能节点,最后构建出
所有由这些节点组成,并最终指向目标节点的因果关系链路.与现有的使用因果关系图的根因诊断的研究相同,
本文以深度优先遍历的思路实现了路径构建算法,并最终将所有的因果关系链路作为结果输出.
由于在因果关系图中同时包含了有向边和无向边,在因果关系链路构建的过程中,需要对深度优先算法做
出相应的改动,将无向边当作两条方向相反的有向边处理.此外,在因果关系图中进行路径遍历,通常会返回一
条以上的因果关系链路.为了对这些因果关系链路进行排序,以第 3.3 节中设置的因果关系边权重为依据,本文
提出的分析方法对因果关系链路的构建算法进行了如下改进:当算法遍历到因果关系图中的某一个节点时,算
法将优先遍历与该节点相连的权重值较高的边.因此,算法在最后输出韧性风险影响链路的过程中将以可能性
从高到低的顺序依次输出可能的因果关系链路,图 8 为一个基于边权重的因果关系链路排序的样例.
Fig.8 Sort causality chains by weight of causality edges
图 8 根据因果关系边的权重实现因果关系链路的排序