4

我在 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 进行分析。

4

2 回答 2

2

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

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

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

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

于 2020-05-17T12:57:07.510 回答
0

我遇到了“Kafka Connect Prometheus Metrics Sink 连接器”,它从多个 Apache Kafka® 主题导出数据,并使数据可用于由 Prometheus 服务器抓取的端点。它是融合平台上的商业产品。

https://docs.confluent.io/kafka-connect-prometheus-metrics/current/index.html#prometheus-metrics-sink-connector-for-cp

我坚持使用现有的时间序列数据库。为了使用 Grafana,改为编写自定义数据源。实施 PROMQL 可能是其他选择。

于 2021-02-09T16:40:22.713 回答