Nenad
Nenad

Reputation: 494

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?

Upvotes: 2

Views: 3205

Answers (1)

Gary Russell
Gary Russell

Reputation: 174484

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.

Upvotes: 1

Related Questions