如何将Kafka数据导出到Prometheus?

Mac*_*Mac 6 time-series exporter apache-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
.....
Run Code Online (Sandbox Code Playgroud)

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

Mac*_*Mac 3

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

\n

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

\n

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

\n

更新:

\n

了解了 OpenTelemetry。可以使用 Opentelemetry 标准将指标转换为 OTLP 格式,并让 Opentelemetry 收集器从 Kafka 读取它。OpenTelemetry 收集器有一个 prometheus 远程写入导出器。

\n