Используйте микрометрический таймер с ручным приращением счетчика

#spring-boot #spring-kafka #spring-micrometer

Вопрос:

У меня есть KafkaListener, который получает сообщения, содержащие список объектов.

 @KafkaListener(
    id = "dataConsumer",
    topics = "data.topic",
    groupId = "${spring.kafka.consumer.group-id}",
    containerFactory = "dataKafkaListenerContainerFactory")
public void consumeData(DataContainer message) {
    List<Data> data = message.getList();
    ...
}
 

Список объектов может отличаться по размеру, поэтому показатели для каждого сообщения могут оказаться бесполезными.

Я могу получить показатели таймера для этого метода, перейдя в /actuator/metrics/spring.kafka.listener?tag=name:dataConsumer-0 раздел, но счетчик предназначен для сообщения, а не для списка элементов в сообщении. Как я могу переключить эту метрику или создать аналогичную метрику для времени и количества элементов данных в сообщении?

Ответ №1:

Вы можете зарегистрировать свой собственный Meter с MeterRegistry помощью — обратитесь к документации по микрометру.