首页 > 解决方案 > 如何将数据从 Kafka 导出到 Prometheus?

问题描述

我在 kafka 主题中获得 300K+ 指标/分钟作为时间序列。我想存储和查询数据。满足我要求的可视化工具是 Grafana。为了有效地存储和查询,我正在考虑将这些时间序列存储在 Prometheus 中。

具有大量时间序列的 Kafka 主题 -> Prometheus -> Grafana

我不太确定,我怎么能做到这一点,因为 Prometheus 是基于 Pull 的抓取方法。即使我编写了一个拉取服务,它是否允许我拉取 300K/分钟的指标?

SYS 1, UNIX TIMESTAMP, CPU%, 10
SYS 1, Processor, UNIX TIMESTAMP, CPUCACHE, 10
SYS 2, UNIX TIMESTAMP, CPU%, 30
.....

大部分文章都在讨论 Kafka exporter/JMX exporter 来监控 Kafka。我不是在寻找 kafka 监控,而是发送存储在主题中的时间序列数据,并利用 Prometheus 查询语言和 Grafana 进行分析。

标签: apache-kafkatime-seriesprometheusexporter

解决方案


我强烈建议不要使用这种方法,Prometheus 导出器主要用于基于指标的分析和监控:例如,您想检查每 10 秒有多少消息通过主题/分区。

可以按照您的描述进行操作,但如果您根据集群规格不断抓取大量数据,则可能会对您的 Prometheus 集群和存储造成严重压力。

如果您真的想存储和查询基于时间序列的事件,我建议您将它们记录到Elasticsearch。您可以将 Grafana 连接到 Elasticsearch 并将其用作查询的数据源。

另一种选择是在 Grafana 的网站上搜索基于社区的 Kafka 仪表板,这些仪表板由 Prometheus 数据源填充,并查看其中是否有您需要的指标。这样您就可以确定哪个出口商适合您: https ://grafana.com/grafana/dashboards?dataSource=prometheus&direction=desc&orderBy=reviewsCount&search=kafka


推荐阅读