-
太多滚动浏览的仪表盘
-
太多的配置
-
过多的维护
Telltale
我们的流媒体团队需要一个全新的监控系统,可以让团队成员快速地诊断和修复问题;因为在系统告警的紧急情况下,每一秒都至关重要!
我们的 Node 团队 需要一个仅需一小撮人就能运维大型集群的系统。因此,我们构建了 Telltale。
Telltale 的特性如下:
汇集监控数据源,创建整体监控视图:
Telltale 汇集了各种监控数据源,从而能创建关于应用程序运行状况的整体监控视图。
多维度判断应用程序的健康状况:
Telltale 可以通过多个维度判断一个应用程序的健康情况,而无需根据单一指标频繁调整告警阈值。
及时告警:
因为我们知道应用程序在什么情况下是正常的,所以能在应用程序有异常趋势时及时通知应用程序的所有者。
显示关键数据:
指标是了解应用程序运行状态的关键。但很多时候,你拥有太多的指标、太多的图表以及太多的监控仪表盘。而 Telltale 仅显示应用程序中有用的相关数据及其上游和下游服务的数据。
用颜色区分问题的严重程度:
我们使用不同的颜色来表示问题的严重程度(除选择颜色之外,还可以让 Telltale 显示不同的数字),以便运维人员一眼就能判断出应用程序的运行状况。
高亮提示:
我们还会对一些监控事件进行高亮提示,比如局部区域的网络流量疏散及就近的 服务部署,这些信息对于全面了解服务的健康情况至关重要,尤其是在真正发生系统故障的情况下。
这就是我们的 Telltale 监控。它现已成功运行并提供监控服务,监控着 Netflix 100 多个生产应用程序的运行状况。
应用程序健康评估模型
微服务并非是孤立存在和运行的。它需要特定的依赖,与其他服务进行数据交互,甚至位于不同的 AWS 区域。
上面的调用图是一个相对简单的图,其中涉及许多服务,实际的调用链可能会更深更复杂。
一个应用程序是系统生态的一部分,它的运行状态可能会受到相关属性变化的微弱影响,也有可能会受到区域范围内某些事件的影响从而发生根本性改变。
canary 的启动可能会对应用程序产生一定影响。在一定程度上,上游或下游服务的部署同样也可以带来一定的影响。
Telltale 通过使用多个维度的数据源构建一个不断自我优化的模型来监控应用程序的健康度:
-
Atlas 时序指标
-
区域网络流量疏散
-
Mantis 实时流数据
-
基础架构变更事件
-
Canary 部署及使用
-
上、下游服务的运行状况
-
表征 QoE 的相关指标
-
告警平台发出的报警
不同的数据源对应用程序健康度的影响权重不同。例如,与错误率增加相比,响应时间的增加对应用程序的影响要小很多。
错误代码有很多,但是某些特定的错误代码的影响要比其他错误代码的影响大。在服务下游部署 canary 可能不如在上游部署带来的效果明显。
区域网络流量转移意味着某个区域的网络流量降为零而另一个区域的网络流量会加倍。
你可以感受下不同的指标对于监控的影响。监控指标的具体含义决定了我们应该如何科学有效地使用它来进行监控。
在构建应用程序健康状况视图时,Telltale 考虑了所有这些因素。应用程序健康评估模型是 Telltale 的核心。
智能监控
每个服务运维人员都知道告警阈值调整的难度。将阈值设置得太低,你会收到大量虚假告警。
如果过度补偿并放宽告警阈值,就会错过重要的异常警告。这样导致的最终结果是对告警缺乏信任。Telltale 可以帮助你免除不断调整相关配置的繁琐工作。
通过提供准确的和严格管理的数据源,我们能让应用程序所有者的设置和配置过程变得更加容易。
这些数据源通过按照一定的组合应用到程序的配置中,以实现最常见的服务类型配置。
Telltale 可以自动追踪服务之间的依赖关系,以构建应用程序健康评估模型中的拓扑。
通过数据源管理以及拓扑监测,在不用付出很大的努力情况下就能使配置保持最新状态。那些需要手动实践的一些场景仍然支持手动配置和调整。
没有任何一个独立的算法可以适用我们所有的监控场景。因此,我们采用了混合算法,包括统计算法、基于规则的算法和机器学习算法。
不久后,我们将在 Netflix Tech Blog 上发表一篇针对我们监控算法的文章。
Telltale 还具有分析器,可用于趋势探测或内存泄漏监测。智能监控意味着我们的用户可以信赖我们的监控结果。
这表明故障发生时,用户能更快地定位和解决系统异常问题。
智能告警
智能监控必然会促进智能告警。当 Telltale 检测到应用程序中的运行异常时,就会产生异常事件。
团队可以选择通过 Slack、电子邮件或 PagerDuty(均由我们的内部告警系统提供支持)进行告警。
如果该异常问题是由上游或下游系统引起的,则 Telltale 的上下文感知路由会提醒服务对应的维护团队。
智能告警还意味着运维团队针对特定异常只会收到一个通知,也就是说,告警风暴已经成为过去式。
在系统出现问题时,掌握准确的信息至关重要。我们的 Slack 告警程序还会启动一个包含有关事件上下文信息的线程,提供 Telltale 识别到的异常问题信息及问题产生的原因。
最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
资料预览
给大家整理的视频资料:
给大家整理的电子书资料:
如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!