写点什么

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

评论

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

PHP调用API接口的方法及实现

Noah

Go代码优化实用指南

俞凡

golang

数字化与敏捷的关系(第2部分)

ShineScrum

那位拿了多个Offer的大佬分享了最新Go面经

王中阳Go

Go 后端 Go 面试题 面经 后端 大厂

与鲸同行,智领未来!和鲸科技高校市场渠道招募启动会顺利召开

ModelWhale

人工智能 软件 数据科学 渠道招募 高校市场

云手机:实现便携与安全的双赢

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 电商云手机

SpringBoot如何优雅的进行参数校验

不在线第一只蜗牛

Java 后端 springboot

Web3 游戏周报(3.17-3.23)

Footprint Analytics

Web3 游戏

深度|庖丁解InnoDB之Buffer Pool

阿里云瑶池数据库

数据库 云计算 阿里云 polarDB

保姆级教程:教你UniMRCP对接华为云ASR(Linux版)

华为云开发者联盟

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

一文带你完整了解Go语言IO基础库

百度Geek说

go语言

使用云手机提升WhatsApp使用体验

Ogcloud

云手机 海外云手机 云手机海外版 国外云手机 电商云手机

基于 NVIDIA Megatron-Core 的 MoE LLM 实现和训练优化

阿里云大数据AI技术

人工智能 模型训练 大模型 LLM

macOS Sonoma 14.4.1 (23E224) 正式版发布,ISO、IPSW、PKG 下载

sysin

macos Sonoma macOS Sonoma

网心科技入选“2023年广东省名优高新技术产品”名单

网心科技

云计算 边缘计算 网心科技

AI时代来临我们要如何面对?

小魏写代码

u-blox 面向多个大众应用市场推出最新 Wi-Fi 6 模块NORA-W4

科技之家

有了这 4 款脚本工具, 再也不怕写烂SQL了!!!

Java技术精选

NFTScan 正式上线 Polygon zkEVM NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT\ NFTScan

How Big Data Works

Jackchang234987

HashData的湖仓一体思考:非结构化数据支持(Directory Table等)讲解及演示

酷克数据HashData

postgresql AI 湖仓一体

网心科技入选“2023年中国云生态创新应用技术产品”

网心科技

云计算 边缘计算 网心科技

青亦学爬虫:根据淘宝天猫商品链接封装淘宝天猫商品详情数据接口

tbapi

淘宝API接口 淘宝商品详情接口 天猫商品详情接口 淘宝数据爬虫 天猫数据爬虫

云手机为什么能避免海外社媒账号被封?

Ogcloud

TikTok 云手机 海外云手机 tiktok云手机 云手机海外版

如何培养高质量应用型医学人才, “课-训-赛”育人才系列第二场直播活动圆满结束

ModelWhale

人才培养 数据科学 复合型人才 医学 应用型人才

野心、梦想与科幻——浅谈外星殖民与软件工程

博文视点Broadview

软件测试学习笔记丨Allure2 失败重试功能应用场景

测试人

软件测试

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