请参与 Prometheus 用户调研(2026 年 3 月版) ,帮助社区确定未来开发工作的优先级!

Prometheus 一致性计划:第一轮测试结果

2021年10月14日作者 Richard "RichiH" Hartmann

今天,我们启动了 Prometheus 一致性计划 (Prometheus Conformance Program),旨在确保 Prometheus 监控领域中不同项目和供应商之间的互操作性。虽然法律文书工作仍需完成,但我们已经进行了测试,并将以下内容视为我们的第一轮测试结果。作为此次发布的一部分,Julius Volz 更新了他的 PromQL 测试结果 

简单回顾一下:该计划被称为 Prometheus 一致性 (Conformance),软件可以符合 (compliant) 特定测试,从而获得兼容性 (compatibility) 评级。术语可能看起来比较复杂,但它使我们能够讨论这个话题,而无需使用冗长晦涩的措辞。

序言

新类别

我们发现,要理清哪些测试适用于哪些软件是非常困难的。为了帮助梳理思路,我们创建了一份概览 ,引入了四个新的类别,以便我们将软件进行分类:

  • 指标暴露端 (Metrics Exposers)
  • 代理/采集器 (Agents/Collectors)
  • Prometheus 存储后端 (Prometheus Storage Backends)
  • Prometheus 完全兼容 (Full Prometheus Compatibility)

行动呼吁

非常欢迎提供反馈。或许有点反直觉的是,我们希望社区(而不仅仅是 Prometheus 团队)来推动这项工作。为此,我们将在 Prometheus 内启动一个“一致性工作组 (WG Conformance)”。正如 文档工作组 (WG Docs) 存储工作组 (WG Storage)  一样,这些工作组是公开的,我们积极邀请大家参与。

正如我们最近提到的那样 ,Prometheus 的维护者与采用者比例低得令人惊讶,甚至是令人震惊。换句话说,我们希望围绕 Prometheus 兼容性的经济激励能够吸引供应商投入资源与我们一起构建测试。如果您一直想在工作时间为 Prometheus 做贡献,这可能是一个途径;而且这个途径将让您接触到 Prometheus 许多高度相关的方面。有多种方式可以与我们取得联系

注册参与测试

如果您希望注册参与测试,可以使用相同的沟通渠道与我们联系。一旦文书工作就绪,我们将把联系信息和合同运营移交给 CNCF。

测试结果

Prometheus 完全兼容

我们知道要构建哪些测试,但目前尚未完成。正如之前宣布的那样,以此为难项目或供应商是不公平的。因此,测试补丁 (test shims) 被定义为“已通过”。例如,Julius 本周运行的 PromQL 测试  目前具有半自动性质,这意味着在大多数情况下,作为 PromQL 测试的一部分,Julius 测试了通过 Prometheus 远程写入 (Remote Write) 发送数据的情况。我们在这里以多种方式复用了他的结果。这种情况很快就会理顺,更多来自不同角度的测试将不断提高要求,从而提升最终用户的信心。

将项目和 aaS(即服务)产品分为两组来看是有意义的。

项目

已通过

  • Cortex 1.10.0
  • M3 1.3.0
  • Promscale 0.6.2
  • Thanos 0.23.1

未通过

VictoriaMetrics 1.67.0 未通过,且无意通过测试 。本着为最终用户建立信心的精神,我们决定追踪他们的结果,同时他们将自己定位为 Prometheus 的直接替代品。

aaS (服务)

已通过

  • Chronosphere
  • Grafana Cloud

未通过

  • Amazon Managed Service for Prometheus
  • Google Cloud Managed Service for Prometheus
  • New Relic
  • Sysdig Monitor

注:由于 Amazon Managed Service for Prometheus 与 Grafana Cloud 一样基于 Cortex,我们预计他们在下一次更新周期后会通过测试。

代理/采集器

已通过

  • Grafana Agent 0.19.0
  • OpenTelemetry Collector 0.37.0
  • Prometheus 2.30.3

未通过

  • Telegraf 1.20.2
  • Timber Vector 0.16.1
  • VictoriaMetrics Agent 1.67.0

注:我们测试的是 Vector 0.16.1 而不是 0.17.0,因为 0.17.0 没有二进制下载包,而我们的测试工具链目前需要二进制文件。