如何访问 Kafka 中使用者的特定指标



我正在与Java生产者和消费者合作,我正在尝试可视化我的Java应用程序的消费者滞后(我的目的滞后(。我想将该滞后记录为标准输出。我尝试使用JMX,但我无法在java应用程序中使用它。 我已经使用了这个(只是一个片段,消费者的设置是在应用程序中完成的(

private KafkaConsumer<String, String> consumer
Map<MetricName, ? extends Metric> metrics = consumer.metrics();
System.out.println(metrics);

但它只给了我指标的描述,而不是值。 我在我的 Kafka CLI 中看到,它显示了该消费者的正确滞后。

首先确定您对使用文档或打印所有指标感兴趣的指标,就像您的问题一样。

然后从使用者那里找到指标。例如,如果您对request-latency-avg感兴趣:

// Find the metrics you are interested in
Metric requestLatencyAvgMetric = null;
for (Entry<MetricName, ? extends Metric> entry : consumer.metrics().entrySet()) {
if ("request-latency-avg".equals(entry.getKey().name())) {
requestLatencyAvgMetric = entry.getValue();
}
}

然后,您可以在需要时使用以下方法检索该值:

requestLatencyAvgMetric.metricValue()

最新更新