写点什么

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:263538

评论

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

文心大模型助力企业级NLP模型快速定制

百度开发者中心

人工智能 nlp 文心大模型

交大安泰行研五周年,“第六届中国行业发展高峰论坛”成功举行

科技热闻

Pinduoduo API丨Pinduoduo commodity details data interface丨Pinduoduo commodity data interface

tbapi

拼多多API接口 pinduoduo API 拼多多商品详情数据接口

展位火爆!TDengine 受邀参加EDT2023中国能源化工数字科技峰会

TDengine

tdengine 时序数据库

MySQL运维6-Mycat垂直分库

快乐非自愿限量之名

多家公司荣获Autodesk Design & Make大中华区杰出贡献奖

E科讯

软件测试/测试开发/人工智能丨GraphWalker自动化测试用例生成

测试人

人工智能 软件测试

制造业进项税额转出全场景数智化管理

用友BIP

用友出席操作系统大会,携手麒麟软件深度服务企业数智化

用友BIP

外贸各个大洲客户的特点

九凌网络

手把手入门MO | 如何通过通过 FineBI 实现 MatrixOne 的可视化报表

MatrixOrigin

分布式数据库 云原生数据库 MatrixOrigin MatrixOne HTAP数据库

数云100|神州数码X浙江联通:以算力支撑面向“互联网+”的隐私保护系统,保护用户的隐私数据安全

科技热闻

Curve 文件系统为 AI 业务降本增效

OpenCurve

云计算 大数据 AI 分布式 文件存储

4种Python中基于字段的不使用元类的ORM实现方法

华为云开发者联盟

Python 开发 华为云 华为云开发者联盟

聊聊kube-scheduler如何完成调度和调整调度权重

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟

神州数码(Digital China)与跬智信息(Kyligence)签署合作协议

Kyligence

数字分析 数智驱动

Taobao purchasing system丨Taobao purchasing system丨Chinese purchasing system丨Chinese goods purchasing

tbapi

taobao agent taobao agent system 1688 agent 1688 agent system taobao buyer

突破!金淑杰成功研发中空纤维纳滤膜技术,助力全民健康饮水!

科技热闻

Google SEO服务的常见坑人套路

九凌网络

理解 Paimon changelog producer

不在线第一只蜗牛

大数据 Data

前端框架如何帮助开发者构建应用程序?

互联网工科生

软件开发 前端框架 应用开发 JNPF

软件测试/测试开发/人工智能丨模型通过什么原理帮助业务解决问题

测试人

人工智能 软件测试

统一门户开发框架—小程序技术

Geek_2305a8

软件测试/测试开发/人工智能丨机器学习特征,离散特征和连续特征

测试人

人工智能 软件测试

大型媒体网站霸占86.1% Google首位排名:普通网站如何突围?

九凌网络

【.NET】控制台应用程序的各种交互玩法

EquatorCoco

.net 控制台 项目开发 开发设计

Python在人工智能领域的应用案例分析

技术冰糖葫芦

API

Taobao api丨Taobao API interface丨 Taobao product data interface丨Taobao product details interface

tbapi

淘宝商品详情数据接口 淘宝API接口 淘宝商品数据接口 淘宝数据采集

腾讯捐赠编译器基础软件,为中国开发者“添了双筷子”

腾讯云大数据

大数据

Tmall API 丨Tmall commodity list data interface丨Tmall commodity details data interface

tbapi

天猫商品详情数据接口 天猫API接口 天猫商品数据接口 tmall api

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