'Customize Spring boot Kafka listener metrics

We have a microservice architecture on the project and we use Prometheus and Grafana for monitoring. The services are implemented using Spring Boot and the integration with Prometheus is through spring-boot-actuator. There are some Kafka consumers in the project, and for each @KafkaListener spring is generating some metrics. Here is a sample of the Prometheus time series for the metric spring_kafka_listener_seconds_count

spring_kafka_listener_seconds_count{exception="ListenerExecutionFailedException", instance="192.168.100.4:8001", job="spring-actuator", name="org.springframework.kafka.KafkaListenerEndpointContainer#0-0", result="failure"} 2
spring_kafka_listener_seconds_count{exception="none", instance="192.168.100.4:8001", job="spring-actuator", name="org.springframework.kafka.KafkaListenerEndpointContainer#0-0", result="success"} 2   
spring_kafka_listener_seconds_count{exception="none", instance="192.168.100.4:8001", job="spring-actuator", name="org.springframework.kafka.KafkaListenerEndpointContainer#1-0", result="success"} 4

org.springframework.kafka.KafkaListenerEndpointContainer#0-0 - doesn't give much info regarding the @KafkaListener method of interest. Is it possible to configure more meaningful value for the name label of these metrics?



Solution 1:[1]

Give the listener a meaningful id.

@KafkaListener(id = "someId", ...)

Note that, by default, the id will be used as the consumer group.id, unless you also specify group, or set idIsGroup to false.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Gary Russell