我在 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导出器/JMX导出器来监控Kafka。我不是在寻找 kafka 监控,而是发送存储在主题中的时间序列数据,并利用 Prometheus 查询语言和 Grafana 进行分析。
我遇到了“Kafka Connect Prometheus Metrics Sink 连接器”,它从多个 Apache Kafka® 主题导出数据,并使数据可用于由 Prometheus 服务器抓取的端点。它是融合平台中的商业产品。
https://docs.confluence.io/kafka-connect-prometheus-metrics/current/index.html#prometheus-metrics-sink-connector-for-cp https://docs.confluent.io/kafka-connect-prometheus-metrics/current/index.html#prometheus-metrics-sink-connector-for-cp
我坚持使用现有的时间序列数据库。为了使用 Grafana,请编写自定义数据源。实现 PROMQL 可能是另一种选择。
Update:
了解了 OpenTelemetry。可以使用 Opentelemetry 标准将指标转换为 OTLP 格式,并让 Opentelemetry 收集器从 Kafka 读取它。 OpenTelemetry 收集器有一个 prometheus 远程写入导出器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)