写点什么

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

  • 2019-11-12
  • 本文字数:2749 字

    阅读完需:约 9 分钟

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

Netflix 开源了自己开发的 Mantis 平台,该平台能让开发者在最小化观察和操作系统的成本的情况下,实时地监控并分析运维事件,并将故障平均检测时间从几十分钟减少到了几秒钟。


2019 年 10 月 21 日,我们很高兴地宣布,Netflix 将Mantis(螳螂)开源了,这个平台能够帮助 Netflix 的工程师们更好地理解他们所开发的应用程序的各种行为,以确保为 Netflix 的会员提供最高质量的体验。而且我们相信,我们在 Netflix 所遇到的种种挑战并不一定是 Netflix 所独有的,这就是为什么我们要在更广泛的开发社区来分享这个平台。


作为一个流媒体微服务生态系统,在不影响运维判断力的情况下,Mantis 平台为开发工程师提供了让观察和操作复杂分布式系统的成本降至最低的能力。开发工程师们已经基于 Mantis 平台构建了性价比颇高的应用程序,以实现快速识别问题、触发警报、以及实施补救措施,从而最大程度地降低 Netflix 服务的宕机时间,甚至完全避免发生宕机事故。而遇到类似的指标故障,其他系统可能需要花上十多分钟才能完成精确处理,而 Mantis 将这一过程从几十分钟减少到了几秒钟,卓然有效地减少了我们的故障平均检测时间。这点是至关重要的,因为任何宕机时间对于 Netflix 都是致命的,并且会对我们的订阅用户产生非常大的负面影响,因此,宕机过程中每流逝的一秒对我们来说都很重要。


随着 Netlix 在全球日益增长的会员基数,以及随着这些会员越来越多地使用 Netflix 提供的服务,我们对 Netflix 的系统运营健康状况如何进行经济适用、便捷快速且精确无误的监控分析就变得越来越重要。例如,距离我们发表上一篇关于Mantis博客文章(2016 年 3 月)已经有两年半的时间,今日 Netflix 五分钟的宕机的影响体量已经相当于那时候两小时的宕机。

Matins 让回答未知问题变得容易

对于规模巨大又日益增长的系统而言,只使用指标度量和日志分析的传统方法已不能满足当前的系统需求。指标衡量和日志分析方法的前提是,在事故发生之前你预先就知道需要回答什么样的问题。而另一方面,Mantis 让我们完全避开这个缺点,这个平台让我们能够回答事先并未预料到的新问题,且不需要添加任何新的工具或配置。Mantis 并没有使用日志或度量指标,而是支持将事件普遍化,开发人员可以根据需要从任何能收集数据的应用程序对事件流实现访问。通过这种“按需消费”的模式,你就可以自由地将所有数据发布给 Mantis。

Matins 以经济合算的方式回答问题

如果为了能够在未来回答新的问题就发布 100%的运维数据,这么做在传统意义上成本会是非常昂贵的。而 Mantis 使用了一种随需应变的、响应式的模型,在这些事件被订阅成为事件流之前,你并不需要为这些事件付出任何成本。而为了进一步降低成本,Mantis 会为等效的订阅者重新发布相同的数据。通过这种方式,Mantis 与其他系统的显著不同之处在于,Mantis 允许我们对事件实现基于流的可观察性,同时允许开发工程师使用工具来降低成本,否则过高的成本将有害于业务。


从一开始构建 Mantis,我们就把这个指导原则准确无误地铭记于心:让我们确保最小化观察和操作系统的成本,同时也保证了不会牺牲那些必要的和机遇性的监控要点。

构建 Mantis 的指导原则

以下是构建 Mantis 平台背后的指导原则。


  1. 我们应该保证能够对原始事件进行访问。将事件发布到 Mantis 中的应用程序应该可以自由地发布每个事件。如果我们在这个阶段过早地把原始事件转换为其他形式,那么在洞察事件原因方面可能就已经处于劣势了,因为这样一来已经丢失了原始形式的数据。

  2. 我们应该能够做到实时访问这些事件。很多运维性用例在本质上是时间敏感的。而传统的方法采用发布、存储、然后批量聚合事件等步骤,这样处理起来太慢了。与之相反的是,我们应该在事件到达时逐个地对它们进行处理和服务。随着系统规模的扩张,更短的时间内事件的影响会变得更显著,实时处理这一点会变得越来越重要。

  3. 我们应该在不需要向应用程序添加新的工具和配置的情况下,基于这些收集的数据回答那些未知的新问题。无论怎么为系统打造足够的弹性,我们都不可能做到事先悉知系统可能会遇到的每一种可能的故障模式。所以,当这些未知故障不可避免地发生时,最重要的是我们可以从这些收集的数据中获取针对未知问题的新见解。因此,你应该做到能够发布具有任意上下文、任意大小的事件。这样,当你未来某次想起要向系统询问一个未知的新问题时,可以运用这些数据来回答这些新问题。

  4. 我们应该能够以一种经济适用的方式来实现上述所有这些需求。随着 Netflix 这个业务关键系统规模不断扩大,我们需要确保为该业务关键系统所打造的支撑性系统,其最终的成本不会超过业务关键系统本身。


请记住这些指导原则,接下来让我们来看看 Mantis 是如何为 Netflix 带来更多价值的。

Mantis 如何为 Netflix 带来更多价值

Mantis 投入生产的实际应用已经超过四年了。在此期间,在 Mantis 平台上已经构建了几个关键的运维洞察性应用程序。


在这些洞察性应用程序中,一些值得注意的例子包括:


  • 实时监控 Netflix 流媒体健康状况,该应用程序实时地检查 Netflix 的所有流媒体视频流量,并以精细粒度准确地识别那些对观看体验的负面影响。该系统为 Netflix 服务整体健康状况承担了预警指示的作用,并将在几秒钟内触发警告并通知相关团队。

  • 上下文警报,这个应用程序会实时地分析数十种 Netflix 微服务之间数以百万计的互动,从而识别出异常,并为运营商提供与该异常所相关的丰富的上下文信息。这些由 Mantis 在背后支持的聚合具有天然的实时特性,从而使得异常的平均检测时间从几十分钟减少到几秒钟。考虑到 Netflix 如此巨大的规模,这带来的影响确实十分深远。

  • Raven 允许用户使用我们的 Mantis 查询语言(MQL)对来自数百个流媒体源的实时数据进行各种形式的探测。

  • Cassandra 健康检查则提供了对丰富的运维事件的实时分析,并为 Netflix 里每个 Cassandra 集群生成整体性的健康状况报告。

  • 日志警报,通过实时处理来自数千个 Netflix 服务器的日志数据,来检测应用程序错误。

  • 混沌实验监控,实时地跟踪混沌实验中的用户体验变化,并在遇到负面影响时触发中断混沌实验。

  • 实时个人身份信息(PII)数据,跨越所有流媒体源实时地检测个人身份信息数据样本,以快速识别敏感数据的传输。

欢迎尝试开源的 Mantis

如果想要了解更多关于 Mantis 的信息,可以查看 Mantis 的主页。现在,可以尝试让你自己的第一个 Mantis 集群运转起来,可以选择在本地使用 Docker,也可以在云端用 Mantis CLI 在 AWS 中构建一个小集群。你也可以在 Github 上获取 Mantis 的开源代码,通过用户或开发者邮件列表与社区进行交流,为 Mantis 做出你的一份贡献。


Mantis 主页:https://netflix.github.io/mantis/


原文链接:


Open Sourcing Mantis: A Platform For Building Cost-Effective, Realtime, Operations-Focused Applications


2019-11-12 11:263568

评论

发布
暂无评论
发现更多内容

自助洗车或许要比自动洗车更干净

共享电单车厂家

自助洗车 自助洗车加盟 车白兔自助洗车 自动洗车

7月《中国数据库行业分析报告》发布!居安思危,安全先行

墨天轮

数据库 腾讯云 阿里云 国产数据库 数据库安全

单元测试,写起来到底有多痛?你会了吗

C++后台开发

网络编程 单元测试 后端开发 Linux服务器开发 C++开发

SpringBoot到底是什么

华为云开发者联盟

开发 springboot parent

业务出海,灵感乍现前要先「把手弄脏」

融云 RongCloud

视频聊天源码——一对一直播系统源码

开源直播系统源码

软件开发 直播系统源码 开源源码

商城异地多活架构设计

泋清

#架构训练营

如何有效规避代码被“投毒”?

安势信息

许可证 代码安全 开源软件 安全合规检测 开源软件供应链

自助洗车费用居然比雪糕还便宜?

共享电单车厂家

自助洗车加盟 车白兔自助洗车 自助洗车费用 自助洗车价格

深圳web前端技术学习费用是多少?尚硅谷前端培训

小谷哥

CSDN Meetup 回顾 丨从数据湖到指标中台,提升数据分析 ROI

Kyligence

数据分析 指标中台

零基础如何学习大数据开发知识

小谷哥

如何学习好web前端开发技术知识

小谷哥

TMECH发表优必选运控技术最新进展:实现人形机器人高鲁棒性行走

优必选科技

带你认识一下数仓的分区自动管理

华为云开发者联盟

数据库 后端 分区

ES6 类聊 JavaScript 设计模式之创建型模式

devpoint

JavaScript 设计模式 工厂模式 7月月更 创造性模式

大数据开发技术入门学习方法有哪些

小谷哥

李宏毅《机器学习》丨4. Deep Learning(深度学习)

AXYZdong

机器学习 7月月更

LP流动性质押挖矿系统开发详细程序

开发微hkkf5566

ICASSP 2022 | 用于多模态情感识别的KS-Transformer

优必选科技

人工智能 多模态机器学习

自助洗车为洗车行业注入新活力

共享电单车厂家

自助洗车 自助洗车加盟 车白兔自助洗车 洗车行业市场

华为云:一切皆服务,共建全场景智慧金融

Geek_2d6073

直播预告 | 7月22日《开源安全治理模型和工具》线上研讨会

安势信息

开源安全 SCA工具 开源软件供应链 SBOM SLSA

国产操作系统生态建设,小程序技术来帮忙

Speedoooo

小程序 国产操作系统 小程序容器 桌面应用

不懂点儿统计学,《星球大战》白看了

图灵教育

统计学 贝叶斯定理

openGauss内核分析:查询重写

华为云开发者联盟

数据库 后端 查询 SQL语言 openGauss内核

自助洗车加盟要满足什么条件

共享电单车厂家

自助洗车加盟 车白兔自助洗车

到底什么是自助洗车?来科普下

共享电单车厂家

自助洗车加盟 车白兔自助洗车 什么是自助洗车

ModuleNotFoundError_No_module_named通俗的解释和方法

和牛

测试

尚硅谷SSM新版视频教程发布

小谷哥

21条最佳实践,全面保障 GitHub 使用安全

SEAL安全

GitHub 安全

Netflix 开源实时监控平台 Mantis:故障平均检测时间缩减到秒级_数据库_Netflix技术博客_InfoQ精选文章