Prometheus + InfluxDB:奥斯汀监控聚会后的思考
作者:Paul Dix / 产品, 用例, 开发者
2017 年 4 月 21 日
导航至
昨晚在 奥斯汀监控聚会 上,很高兴看到 Prometheus 和 InfluxDB 如何一起使用。我将重点介绍我演讲中的一些细节,但首先我想指出 Julius Volz(Prometheus 的创建者之一)昨晚展示的一些工作,我认为这非常令人兴奋。
Julius 就 Prometheus 发表了演讲,介绍了该项目、数据模型、查询语言和警报系统。他还谈到了他们关于基于拉取监控方法的理念,以及 Prometheus 为什么偏爱它们。我点头同意了他的许多观点。任何系统都可以连接并拉取指标(我的笔记本电脑、生产监控、暂存、新监控等)。很容易拉起 /metrics
端点来大致了解正在公开的内容。服务不需要了解监控系统。实际上,我一直对基于拉取的方法持积极态度,我们将在几周内引入对拉取的支持,以及我们传统的基于推送的方法。但我有点超前了。
在 Julius 演讲结束时,他展示了 Prometheus 和 InfluxDB 的演示——使用 InfluxDB 作为 Prometheus 的远程存储后端。Prometheus 一直能够将指标推送到其他存储后端一段时间,但通过这项新工作,它现在增加了从远程存储后端读取的能力。他连接好了一切,然后展示了一个带回数据的查询。然后他删除了本地 Prometheus 数据存储并重新启动了它。再次查询时,它仍然显示所有数据,因为它正在从 InfluxDB 实时拉取数据。
对 InfluxDB 的支持 是如何发生的?我最近给 Julius 发送电子邮件,询问他关于 他在几周前在 CNCFCon 上做的远程存储系统演讲。经过一个周末的黑客马拉松,Julius 添加了这个功能。我很高兴看到这两个项目协同工作,并且我们可以在近期做一些事情来改善 Prometheus + InfluxDB 用户的体验。首先,我们将把远程网关引入 InfluxDB,以便可以配置和使用远程存储,而无需运行和管理额外的软件。当我们展望 InfluxDB 2.0 的改进时,我们将密切关注使 Prometheus 和 InfluxDB 更好地协同工作的功能和集成。
在昨天的演讲中,我介绍了 Graphite、OpenTSDB、Prometheus 和 InfluxDB 的数据模型的外观。我使用这些材料作为我想让 InfluxDB 支持的新数据模型的介绍。我还介绍了每个项目的查询语言以及 InfluxQL 未来发展的一些高级想法。简而言之,我正在考虑我们需要简化我们的数据模型,并公开一种功能更强大、可扩展且更具表现力的函数式查询语言。我将发布一个 PR,其中包含冗长的文档和对拟议更新的理由,以尝试在我们开始初步实施之前收集社区反馈和改进意见。
这是我的演讲幻灯片。在更详细的信息之前,这里有一些高级要求
- 必须能够支持 InfluxDB 1.x 数据模型
- 必须能够支持 InfluxDB 1.x 查询
- 支持 Prometheus 数据模型
- 新的函数式查询语言
- 丰富的查询构建器 UI(用户无需学习查询语言即可获得洞察力和可见性)
- 查询完成 CLI
- 可能支持 PromQL 查询?
我认为我们将在未来 12 个月内迎来一些重大改进。我正在推动在 0.8 InfluxDB 到 1.x 水平上的进步,但这次不会有重大更改。新的 InfluxDB 将是 1.x 的直接替代品。它可能需要数据迁移,但它应该为 InfluxDB 1.x 用户提供清晰的路径,以便获得更高级的功能。这项工作可能需要今年剩余时间和更长时间才能为生产做好准备,但我们将发布早期原型,并继续推进 1.x 的发展,并持续发布功能。