基于“异常”的线索,来进行调查破解数据库的“性能问题”,这个思路令人感叹!
之前一直基于各种 KPI 的经验套路来“查案”的,自己熟悉的系统,处理起来还好。但是对于不熟悉的系统,那就有些力不从心了,毕竟千人千面,系统也一样,某个KPI在不同系统上的正常值范围也不同。“异常检测算法”很创意地解决了这个问题!
关于 “指标关系分析”,如何进行各个“异常线索”之间的关联,以及快速智能地锁定“嫌疑人”?
大量的历史性能数据其实存在很高的运维价值有待挖掘。指标关系分析就是这样一种方式。这应该算是智能运维的一个亮点,是传统运维做不到的一件事情。当我们监控的指标非常多,这些指标之间是有联系的。相关的指标应该放在一起来分析,它们可能是因果关系,可能是包含关系,可能是伴生关系,也可能是对立关系。机器学习能帮我们找到这些有关系的指标组合,然后我们再进一步提炼这些组合,解析指标间的关系。不仅更深入了解数据库,还能够监控这种关系,检测关系被打破的异常,也就是多指标异常检测。
我在分析指标关系的时候一共采用了两种相关性算法。
1. 皮尔森相关系数。 度量两个变量 X 和 Y 之间的 相关 (线性相关),其值介于 -1 与 1 之间。该系数广泛用于度量两个变量之间的相关程度。 这种算法很好理解,如果指标 X 和 Y 都同时变大变小或者刚好相反,那么算法的结果就越是靠近 1 或者 -1 。基于原始数据就可以计算指标的相似度。
2. Apriori 算法 。这种算法需要基于异常检测的结果来计算,不能直接拿原始数据计算。简单解释就是如果指标 X 和 Y 总是同时出现异常,那么彼此是相关性比较高的。
拿到这些指标相关性关系,再加上对产品指标的解读,将监控指标串联起来,最终会形成一个指标关系网。异常的出现会展示这张关系网的点(指标)或者是线(关系)出现了异常,这样就能快速智能的锁定“嫌疑人 ” 了。
收起