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

今天,我们正式推出Prometheus 一致性计划,旨在确保 Prometheus 监控领域不同项目和供应商之间的互操作性。虽然法律文件仍在最终确定中,但我们已运行了测试,并将其结果视为第一轮结果。作为此次发布的一部分,Julius Volz 更新了他的 PromQL 测试结果

快速提醒:该计划称为 Prometheus Conformance(一致性),软件可以compliant(符合)特定测试,从而获得compatibility(兼容性)评级。这个术语可能看起来复杂,但它允许我们讨论这个主题而无需使用冗长的描述。

引言

新类别

我们发现很难理清哪些测试适用于哪种软件。为了帮助整理思路,我们创建了一个概览,引入了四种新的软件分类

  • 指标暴露器
  • 代理/收集器
  • Prometheus 存储后端
  • 完整的 Prometheus 兼容性

行动呼吁

非常欢迎反馈。可能有些反常的是,我们希望由社区而非仅由 Prometheus 团队来塑造这项工作。为此,我们将在 Prometheus 内部启动一个 WG Conformance(一致性工作组)。就像WG Docs(文档工作组)WG Storage(存储工作组)一样,这些工作组将是公开的,我们积极邀请大家参与。

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

注册接受测试

如果您想注册接受测试,可以使用相同的沟通渠道与我们联系。一旦文件准备就绪,我们将把联系信息和合同操作移交给 CNCF。

测试结果

完整的 Prometheus 兼容性

我们知道我们想要构建哪些测试,但目前还没有完全实现。如之前宣布的,将此作为评判项目或供应商的标准是不公平的。因此,当前测试垫片被定义为已通过。目前,例如Julius 本周运行的 PromQL 测试是半手动的,这意味着 Julius 在大多数情况下是通过 Prometheus Remote Write 发送数据来测试 PromQL 的。我们在此以多种方式重用了他的结果。这种情况很快就会理顺,来自不同角度的更多测试将不断提高要求,从而增强最终用户的信心。

将项目和即服务 (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 没有提供二进制下载,而我们的测试工具链目前需要二进制文件。