【问题标题】:Kafka Producer Metrics卡夫卡生产者指标
【发布时间】:2019-09-24 17:29:31
【问题描述】:

我正在使用我的 Intellij IDE 在本地机器上运行 Kafka 生产者,生产者将产生一百万条记录。这样做时,我想通过以下方式捕获生产者指标:

我知道 kafka 的 JMX 端口,我确实尝试将 Kafka JMX 端口设置为 9999。 但我不确定我们是否可以按照我所期望的上述方式使用 JConsole 或 JVisualVM 获取指标。

任何人都可以就如何实现这一点提出任何想法吗?

【问题讨论】:

  • @KenrySanchez 我看了帖子。我也在那里添加了评论。只是我无法弄清楚如何启用生产者指标,或者更确切地说如何以上述方式获得它
  • 我认为 Elastic Stack 可以做到这一点。 Kafka + Elastic Stack。

标签: java apache-kafka jmx kafka-producer-api


【解决方案1】:

除了 JMX,官方 Kafka 客户端还通过 Java API 公开其指标,请参阅metrics() 方法来检索所有指标。

例如,打印所有指标的名称和值:

for (Entry<MetricName, ? extends Metric> entry : producer.metrics().entrySet()) {
    System.out.println(entry.getKey().name() + " : " + entry.getValue().metricValue());
}

在所有指标中,您可能对outgoing-byte-raterequest-totalrequest-rate 感兴趣。

【讨论】:

  • 感谢这个 API!我对此一无所知。但是,我正在尝试累积检查 10k 记录的统计信息,然后是 100k 等等,如问题中所述。我尝试打印指标,但它给了我一个整体指标,而我想要它在特定的时间间隔。如何通过 API 实现这一点?
  • 你必须在特定的时间间隔明确地调用它,这很容易统计记录。
  • 如果你能帮我发布一个在特定时间间隔调用它的 sn-p,那就太好了。
  • 有什么方法可以使用 Metrics java API 从kafka.network:type=RequestMetrics,name=TotalTimeMs,request={Produce|FetchConsumer|FetchFollower} 获取Request total time?谢谢
猜你喜欢
  • 2017-02-21
  • 2020-08-27
  • 2019-04-09
  • 2021-01-20
  • 1970-01-01
  • 2020-09-30
  • 2017-11-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多