微软开源 Python 库 Lumos,用于自动监控 web 应用程序指标

image.png

技术编辑:芒果果丨发自 思否编辑部
SegmentFault 思否报道丨公众号:SegmentFaultweb

微软最近开源了 Lumos,这是一个 Python 库,用于自动检测和诊断“ web 规模”应用程序中的度量回归。segmentfault

在一篇技术论文中,公司研究人员声称,Lumos 已经在 Skype 和微软的开发团队的数百万次会话中进行了部署,从而使工程师可以检测到数百项指标变化,并拒绝数千个由异常检测器检测出的错误警报。网络

Lumos 优化检测过程,将误报率下降90%以上

在线服务的运行情况一般是经过随时间跟踪关键性能指标(KPI)来监测的。这些方面的回归须要跟进,由于它们可能代表存在重大问题,从而致使成本增长和潜在的用户流失。可是,跟踪每一个 KPI 回归的根本缘由很是耗时,由于单个异常可能须要数天或数周的时间进行调查。 异步

Lumos 是一种新颖的方法,它包含了现有的特定领域的异常检测器,但将误报率下降了90%以上。它经过提供最重要变量的优先列表来解释度量值的变化,从而消除了肯定变化是因为人口变化仍是产品更新的过程。 工具

该库还具备更普遍的目的,即经过比较对照和治疗数据集,同时又与时间序列成分保持不可知关系,从而了解任意两个语料之间的度量差别(包括偏见)。性能

该论文的合著者表示:“ (Lumos)为产品全部者提供了有关其应用程序的人口统计变化的关键看法,而且……它为服务全部者肯定了改善其工程系统的机会。(Lumos)使工程师花费在诊断度量回归上的时间更少,而将更多的时间用于构建使人兴奋的功能。”测试

对比数据集,提供诊断度量回归的假设

Lumos 利用 A / B 测试的原理来比较成对的数据集。 每一个数据集都是表格数据集,其中行对应于样本,列值包括感兴趣的度量,如表示 KPI 的变量,描述整体(如平台、设备类型、网络类型和国家) ,并提供诊断度量回归的假设。 附带的配置文件指定了运行工做流的超参数(变量)和数据集中哪些列对应于度量、不变量和假设列的详细信息。大数据

Lumos 首先验证数据集之间度量中的回归是否具备统计意义。 而后进行整体误差检查和整体误差归一化,以考虑两个数据集之间的整体变化。 若是在数据被归一化以后,度量中没有统计上显著的回归,度量中的回归能够用整体的变化来解释。 可是若是度量中的增量具备统计学意义,那么这些特征就会根据它们对目标度量中增量的贡献进行排名。优化

微软的研究人员说,Lumos 做为主要的工具,用于监测与微软的电话、会议和公共交换电话网服务(PSTN)的可靠性相关的数百项指标。 它运行在 Azure Databricks 上,该公司的基于 Apache spark 的大数据分析服务,根据优先级、复杂性和度量类型配置了多个工做。 而且做业异步完成,以致于每当检测到异常时,它都会触发 Lumos 工做流,若是库肯定异常是合法问题,就会引起事件警报。spa

开发时间节省 65% 至 95%,Lumos 不能保证捕捉全部服务回归

参与研究的成员称:“ Lumos 将开发时间节省了 65% 至 95%。咱们有 15 个主要指标,每一个指标都根据关键维度进行监控,好比平台、租户、会议类型(链接、拨号和建立呼叫) ,结果是咱们为一个指标跟踪了数千个时间序列。 咱们天天有数百万个呼叫分支,每一个分支都会产生数百个遥测字段,做为 Lumos 的输入。”

微软的研究人员也提出了警告,Lumos 并不能保证捕捉全部服务回归,而且若是没有足够的数据量就没法提供意见。为了解决这个问题,他们计划专一于扩展对连续度量的支持,使用多变量特征进行特征排序,并引入特征聚类以解决特征排名中的多重共线性问题。

segmentfault 思否

相关文章
相关标签/搜索