当前位置: 首页 > 科技观察

Netflix 开源实时监控平台 Mantis:故障平均检测时间缩减到秒级

时间:2023-03-13 13:59:16 科技观察

Netflix开源实时监控平台Mantis:平均故障检测时间缩短至秒级分析运维事件,将平均故障检测时间从数十分钟缩短至秒级。2019年10月21日,我们很高兴地宣布Netflix开源了Mantis,该平台可以帮助Netflix工程师更好地了解他们开发的应用程序的各种行为,以确保会员提供最高质量的体验。而且我们相信我们在Netflix遇到的挑战不一定是Netflix独有的,这就是为什么我们希望与更广泛的开发社区共享该平台。作为一个流媒体微服务生态系统,Mantis平台为开发工程师提供了在不影响运维判断的情况下,将观察和运行复杂分布式系统的成本降到最低的能力。开发工程师基于Mantis平台构建了具有成本效益的应用程序,以快速识别问题、触发警报并实施补救措施,以最大限度地减少甚至防止Netflix服务的停机时间。当遇到类似的指标故障时,其他系统可能需要十多分钟才能完成准确的处理,而Mantis将这个过程从几十分钟缩短到几秒,有效减少了我们平均检测故障的时间。这一点至关重要,因为任何停机时间对Netflix来说都是致命的,并对我们的订户产生非常负面的影响,因此停机期间流逝的每一秒对我们来说都很重要。很重要。随着Netflix在全球范围内扩大其会员基础,并且随着这些会员越来越多地使用Netflix提供的服务,我们以经济实惠、快速和准确的方式监控和分析Netflix系统的运行状况变得越来越重要。变得越来越重要。例如,距离我们上一篇关于Mantis的博文(2016年3月)已经两年半了,今天Netflix的五分钟中断相当于当时的两小时中断。Matins可以轻松回答未知问题对于大规模和不断增长的系统,仅使用指标测量和日志分析的传统方法已经不能满足当前的系统需求。Metrics度量和日志分析方法的前提是你在事件发生之前提前知道你需要回答什么样的问题。另一方面,Mantis让我们完全避免了这个缺点,并且该平台让我们能够回答我们事先没有预料到的新问题,而无需添加任何新工具或配置。Mantis不使用日志或指标,而是支持事件的泛化,允许开发人员根据需要从任何可以收集数据的应用程序访问事件流。通过这种“按需消费”的模式,你可以自由地将所有数据发布到Mantis。Matins以经济高效的方式回答问题发布100%的运营数据以便能够在未来回答新问题在传统上是非常昂贵的。虽然Mantis使用按需响应式模型,但您无需为这些事件支付任何费用即可订阅它们成为事件流。为了进一步降低成本,Mantis会为同等订阅者重新发布相同的数据。通过这种方式,Mantis与其他系统的显着不同在于,它使我们能够实现基于流的事件可观察性,同时允许开发工程师使用工具来降低否则会对业务造成损害的成本。从构建Mantis之初,我们就牢记这一明确无误的指导原则:让我们确保在不牺牲必要的和机会主义的监控点的情况下,将观察和操作系统的成本降至最低。构建Mantis的指导原则以下是构建Mantis平台的指导原则。1.我们应该确保对原始事件的访问。将事件发布到Mantis的应用程序应该可以自由发布每个事件。如果我们在这个阶段过早地将原始事件转换为另一种形式,那么在洞察事件原因方面我们可能已经处于劣势,因为原始形式的数据已经丢失。2.我们应该能够实时访问这些事件。许多操作用例本质上是时间敏感的。传统方法采用发布、存储、再批处理事件等步骤,处理速度太慢。相反,我们应该在事件到达时一个一个地处理和服务它们。随着系统规模的扩大,事件在较短时间内的影响会越来越显着,实时处理也越来越重要。3.我们应该能够在不向应用程序添加新工具和配置的情况下,基于收集到的数据来回答未知的新问题。无论系统的弹性如何,都不可能事先知道系统可能遇到的每一种可能的故障模式。所以,当这些未知故障不可避免地发生时,最重要的是我们可以从这些收集到的数据中获得对未知问题的新见解。因此,您应该能够在任何上下文中发布任何规模的事件。这样,当你以后记得问系统一个未知的新问题时,你就可以用这个数据来回答这些新问题。4.我们应该能够以负担得起的方式实现上述所有需求。随着业务关键型系统Netflix的扩展,我们需要确保为其构建的支持系统最终不会比业务关键型系统本身花费更多。牢记这些指导原则,让我们看看Mantis如何为Netflix带来更多价值。Mantis如何为Netflix带来更多价值Mantis已投入生产使用四年多了。在此期间,在Mantis平台上构建了几个关键的运营洞察应用程序。这些富有洞察力的应用程序的一些显着示例包括:NetflixStreamingHealthMonitor,它实时检查所有Netflix流媒体视频流量,并在细粒度级别准确识别那些对观看体验产生负面影响的因素。该系统充当Netflix服务整体健康状况的预警指标,触发警报并在几秒钟内通知相应的团队。上下文警报,一种实时分析数十个Netflix微服务之间的数百万次交互以识别异常并为操作员提供有关异常的丰富上下文信息的应用程序。这些由Mantis驱动的聚合的实时性将异常的平均检测时间从几十分钟缩短到几秒钟。考虑到Netflix的庞大规模,其影响确实是深远的。Raven允许用户使用我们的Mantis查询语言(MQL)对来自数百个流源的实时数据执行各种形式的探测。Cassandra健康检查提供丰富的运维事件实时分析,为Netflix中的每个Cassandra集群生成整体健康状态报告。通过实时处理来自数千台Netflix服务器的日志数据,记录警报以检测应用程序错误。混沌实验监控,实时跟踪混沌实验中的用户体验变化,遇到负面影响时触发混沌实验中断。实时个人身份信息(PII)数据,实时检测所有流媒体源中的PII数据样本,以快速识别敏感数据的传输。欢迎来到开源Mantis如果您想了解更多关于Mantis的信息,可以查看Mantis主页。现在是时候尝试启动并运行您的第一个Mantis集群了,可以在本地使用Docker,也可以在云中使用MantisCLI在AWS中构建一个小型集群。你也可以在Github上获取Mantis的开源代码,通过用户或开发者邮件列表与社区交流,为Mantis做出你的贡献。螳螂主页:https://netflix.github.io/mantis/