论文部分内容阅读
对于互联网企业而言,服务质量保障是极其重要的,尤其是在服务突发异常后进行快速的根因定位及故障恢复,是互联网企业需具备的基本能力之一。为此,企业需要对服务及系统进行实时监控,定期收集各个维度的监控指标。当服务出现异常时,运维人员可以通过分析所收集到的数据来实现根因定位。然而,当前互联网巨头企业的服务规模庞大且业务场景多样,需要跟踪监控的指标繁多,所收集的监控数据量巨大。如何从海量多维监控指标所产生的巨大搜索空间中,快速定位根因组合,成为一个极具挑战性的问题。针对这一问题,一些自动根因定位方法被提出,代替了繁琐的人工排查。其主要思想是基于监控指标构建根因树,从粗粒度的单维度指标到细粒度的多维度指标组合,依次进行异常检测及根因判断。这一过程也可被看为是根因树从上往下的遍历。虽然这类方法能有效找出根因组合,但也存在一定缺陷,例如:只能针对幅度较大的异常进行根因定位,而忽略幅度较小但很重要的异常;只能处理有特定规律的数据;需要频繁调参,又或者是时效性太差,等等。为弥补现有方法的不足,本文提出了一种新的根因定位思路。与现有方法不同,我们针对根因树进行从下往上的遍历来定位根因。主要思想是通过对多维度指标数据进行异常筛选,来缩减根因搜索空间;再结合基于根因树的统计划分方法,快速准确地定位出根因组合。本文主要工作包括以下两个方面:(1)提出一种自下而上的统计根因定位算法Bitdict。为了克服现有算法的缺陷,Bitdict算法主要依据根因树原理,采用自下向上的搜索策略,来搜索根因组合。首先,检测根因树中最细粒度的叶子节点是否异常。然后,基于异常叶子节点中各属性出现的频度进行统计划分。最后,分层级地逐个定位出根因属性组合。(2)为了更好的发挥Bitdict算法的性能,设计了一个根因定位系统原型。其核心是结合了基于移动均值的预测方法和自动阈值选定方法,来更好地处理叶子节点的异常分类,给Bitdict算法提供更准确的异常叶子集合,从而提高根因定位的效率和精度。本文的验证实验是使用本领域的公开数据集进行算法评测。实验结果表明,本文提出的根因定位算法Bitdict拥有出色的根因定位能力和较强的鲁棒性,且通过设计特定的根因定位系统,该方法能获得更好的性能。