【问题标题】:Kafka JMX Metric Current Rate of Messages InKafka JMX 度量当前消息的速率
【发布时间】:2017-04-28 10:12:51
【问题描述】:

我已经使用 jmx_prometheus_javaagent 作为 java 代理在本地启动了 Kafka 代理实例。

我对给定主题的当前消息速率感兴趣,并在 Grafana 仪表板中呈现相同的消息。在 jconsole 中探索 MBean,我可以看到一个名为 kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,topic=ABCD 的对象,它具有 MeanRate、OneMinuteRate、Count 等属性,这似乎符合我的目的:-

为了尝试我的设置,我使用一个简单的 KafkaProducer 向本地 kafka 代理发送非常小的消息,该 KafkaProducer 能够在 5 秒内发送 100 万条消息然后停止。对于这个实验,我期望看到这 5 秒的 MeanRate 会出现峰值,然后又回到 0。

问题

即使没有消息进入(生产者已停止),在生产者停止发送消息很久后,我仍看到 MeanRate 的非零高值:-

在普罗米修斯图中反映为:-

普罗米修斯配置:-

- pattern : kafka.server<type=(.+), name=(.+)PerSec\w*, topic=(.+)><>MeanRate
  name: kafka_server_$1_$2_mean_rate
  labels:
    topic: "$3"

普罗米修斯查询 - floor(kafka_server_brokertopicmetrics_messagesin_mean_rate)

什么是正确的方法/prometheus-query/mbean 来获得消息的准确率?

【问题讨论】:

    标签: java apache-kafka jmx prometheus


    【解决方案1】:

    您应该使用 Count 并在 Prometheus 端使用 rate()。 JMX 导出器附带的example config file 已经为您选择了正确的指标。

    MeanRate 是自二进制文件启动以来每秒的平均速率,因此它不是很有用。 OneMinuteRate、FiveMinuteRate 和 FiveMinuteRate 是指数移动平均线,因此也会随时间衰减。

    https://www.youtube.com/watch?v=67Ulrq6DxwA 提供有关不同仪器/监控系统处理计数器的各种方式的更多信息。

    【讨论】:

    • sum without(instance)(rate(kafka_server_brokertopicmetrics_messagesin_total{job="kafka-vir",topic!="__consumer_offsets",topic!=""}[25s] )) 是的。这对我来说很好。谢谢
    • 该指标是来自生产者的事件计数还是还包括来自其他生产者的复制事件
    猜你喜欢
    • 2023-03-07
    • 2012-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 2018-02-18
    相关资源
    最近更新 更多