我正在与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()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句