开源监控和度量衡景观
浏览有哪些开源监控标准,它们在生态系统中的位置,以及它们之间的互操作性如何。
作者
CORE -
22年6月27日 - 开源区 -观点
喜欢 (1)
评论
保存
鸣叫
151次浏览
加入DZone社区,获得完整的会员体验。
衡量标准以及管理和理解它们是任何现代复杂应用程序的重要组成部分。与任何活跃和繁忙的技术生态系统一样,竞争性的开源监控标准层出不穷。少数几个出现了最流行的解决方案。慢慢地,社区创建了一个标准,大多数项目以某种方式遵循。
这篇文章的目的是帮助你了解什么是可用的,一个选项填补了生态系统的哪一块拼图,关键是它们之间的互操作性如何。
开源度量衡解决方案有三个主要组成部分。
- 仪表库和/或独立的客户端,对指标的阐述和发布进行编纂和标准化。
- 衡量标准收集应用程序,通过拉动或推送发现和收集来自监测系统的遥测数据。
- 用于长期存储遥测数据的指标存储和聚合,通常使用时间序列数据库(TSDB)和聚合服务或批处理作业。
设定阶段
在开始之前,对生态系统中最近的发展设置一些背景是有用的。这并不是说在度量衡工具方面没有几十年的发展,但在过去的十年里,特别活跃。
普罗米修斯作为开源监控标准的崛起
普罗米修斯创建于2012年,自2015年以来一直是云原生观察能力的最受欢迎的选择。普罗米修斯设计的一个核心部分是它的文本指标阐述格式,称为 "普罗米修斯阐述格式",自2014年以来一直很稳定。它的创造者特别注意使该格式易于生成和被机器摄取,但也能被人类理解。截至2020年,有700多个公开上市的出口商,数量不详的未上市出口商,以及数以千计的使用该格式的本地图书馆集成。在各种开源项目和公司旁边,有几十个兼容的后端,以某种方式支持该格式。
在Prometheus出现之前,有Graphite,甚至在Graphite之前,像Nagios这样的工具也很流行(现在也是如此),它们通过定期向特定的端点发送探针来工作。这个过程通常需要编写自定义代码来发出探测请求,并且只返回 "是"/"否 "类型的答案,通常缺乏用于调试的背景。
开源监控客户端和仪器库
OpenMetrics
OpenMetrics是云原生计算基金会(CNCF)的一个沙盒项目,它致力于开发一个标准的度量格式,将所有的度量和度量类型带到Prometheus的阐述格式中。任何希望被认为是与Prometheus兼容的工具现在都需要通过OpenMetrics的测试套件。该项目希望在采集、存储和查询方面实现度量衡格式的标准化,使度量衡社区能够达到向后兼容和整体上更大的度量衡采用。截至2020年,有几十个导出器、集成器和摄入器都在使用并优先协商OpenMetrics。
与Open Telemetry类似,CNCF的Observability技术咨询小组(TAG)支持/建议采用OpenMetrics,并向所有其他使用非标准阐述格式的项目使用Prometheus的文本阐述格式。
测微计
不出所料,总是有很多提议的标准,Micrometer是Pivotal公司的一个标准化度量衡客户端库项目,尽管主要是在基于JVM的软件领域。它采取了与OpenMetrics不同的方法,作为几十个监控系统之上的应用的抽象层而工作,而不是一个底层标准。现在Micrometer也提供了通过用Prometheus文本格式阐述度量的能力来收集度量。
开源指标数据收集
石墨
Graphite使用一些不同的开源组件收集、存储和可视化度量数据。它比Prometheus要老,但仍然很受欢迎,而且有一个完善的生态系统。Graphite使用 "推送 "模式,这意味着应用程序将指标数据发送到Graphite "Carbon "守护进程,然后将数据存储在 "Whisper "数据库中,并在Graphite Web应用程序或Grafana中对数据进行可视化,"Graphite-Web "充当查询服务。
StatsD
StatsD以简单为目标,作为一个网络守护者,监听通过UDP或TCP发送的统计数据,如计数器和计时器,并将汇总数据发送到一个或多个可插拔的后端服务。StatsD是另一个基于推送的收集器的例子,监听从客户端应用程序发送的兼容消息。你可以用它来发布数据,一旦聚合(即使用StatsD daemon或Statsite)到Graphite "Carbon "处理器或其他兼容的后端。
普罗米修斯
Prometheus(CNCF项目)不仅仅是一种度量标准格式。它还能用客户端库处理应用程序的仪表,同时对度量数据进行存储、查询和报警。它通过一个基本的内置可视化网络应用程序,以及与Grafana的集成,帮助实现其存储数据的可视化。它开创了 "拉模式 "的概念,而不是之前更常用的 "推模式 "的度量工具。在这种模式下,Prometheus从HTTP的源头拉取指标,而不是由源头推送给Prometheus。普罗米修斯还从Graphite和StatsD引入了一种新的表示度量的方式,Graphite和StatsD通常将度量表示为名称、值和时间戳。普罗米修斯以更复杂但更灵活的格式表示度量,为度量的额外元数据添加 "标签"。
Telegraf
Telegraf是一个收集、处理、聚合和编写度量的服务器代理。它是插件驱动的,有四种不同的插件类型,分别用于处理四个任务。它是另一个基于推送的收集器的例子,但从你启用的任何收集插件中接收度量。
开源指标可视化
Grafana
Grafana仪表盘开始是Kibana的分叉(Kibana不再是开源的,而是使用可用的源代码许可),并已发展成为一个流行的开源项目,用于可视化指标和构建仪表盘。最近,Grafana实验室将Grafana的许可证从Apache v2改为不太自由的copyleftAGPLv3许可证。
Chronograf
Chronograf(与Chronosphere没有关系!)是一个专门为可视化InfluxDB时间序列而设计的用户界面。Chronograf是Influx用户为其指标创建仪表盘、警报和自动化规则的主要方式。
用于长期指标存储的开源时间序列数据库
当需要存储指标数据超过几周时,大多数公司都希望通过时间序列数据库来实现长期、可靠和经济的存储。通常情况下,指标数据库是为短期存储而优化的,而一些项目旨在填补这一空白,以提供可扩展的、高性能的长期存储和查询。
许多项目以类似的方式工作,提供Prometheus远程存储兼容性、高可用性、为长期存储优化数据、在各种后端存储数据以及在集群的任何实例中查询相同的数据。不同之处在于实施的细节(内部)以及你如何将解决方案融入你现有的架构。
M3是一个开源项目,最初由Uber创建,专注于高性能和兼容性,默认支持各种摄入格式。Apache v2许可证。
Cortex是一个开源的CNCF孵化项目,最初由Weaveworks创建,被许多不同的企业和部门使用,也是少数SaaS产品的基础。Apache v2许可证。
Thanos是一个开源的CNCF孵化项目,最初由Improbable创建,被许多不同的企业和部门使用。Apache v2许可证。
VictoriaMetrics是一个开源的(但不一定是)数据库。它与Prometheus和其他摄取源兼容,但使用许多自定义组件,如 "MetricsQL",并在其社区和企业版本中提供不同的功能。Apache v2许可证。
InfluxDB是一个指标数据库,也是一个开源的时间序列平台,许多人使用它来获取指标数据。与Telegraf一起,Influx是长期存储的一个好选择。它使用一个开放的核心模型,这意味着你必须为某些功能付费,并使用一个自定义的查询语言来查询数据,称为 "InfluxQL"。社区版为MIT许可,集群版为企业许可。
兼容性等同于灵活性
开源监控生态系统正在迅速向Prometheus兼容性靠拢,但这并不意味着缺乏选择,恰恰相反。把Prometheus看作是你的监控设置的核心或起点,并随着你的需求的增长而建立在它之上。如果你确保你使用的任何东西都与普罗米修斯完全兼容,你就不会有任何损失,只会有收获。
开源 景观(软件) 公制(单位)
经Chris Ward, DZone MVB许可发表于DZone。请看原文。
DZone贡献者所表达的观点属于他们自己。
DZone上的热门文章
评论