Есть ли способ записать аннотацию Micrometer @Timed в хранилище / реестр метрик Prometheus? - PullRequest
1 голос
/ 11 июня 2019

Я хочу записать данные из аннотации @Timed компании Micrometer в хранилище / реестр метрик Prometheus. Я не могу найти объяснения, как это сделать онлайн.

Вот версии, которые я использую:

compile 'org.springframework.boot:spring-boot-starter-web:2.1.4.RELEASE' // This already includes micrometer I believe
compile "io.micrometer:micrometer-registry-prometheus:1.1.4'

Я пытаюсь рассчитать время обращения к хранилищу:

interface HouseRepository { 

@Timed
@Query(some long complicated query)
House deleteByAddressAndLastModifiedBefore(
    Address address,
    Instant instant
)

}

Как мне это сделать? Я попытался добавить несколько разных настроек в аннотацию @Timer, например:

  @Timed(description = 'this.is.my.metric', value = 'my.metric', extraTags = ['my.metric.name', 'test'])

Но я не вижу своего вывода в Prometheus (/prometheus).

Неужели это можно сделать?

1 Ответ

1 голос
/ 11 июня 2019

В соответствии с микрометровыми документами :

Конфигурация Spring Boot микрометра не распознает @Timed на произвольных методах.

Чтобы аннотация @Timed работала так, как вам хотелось бы, вам, вероятно, нужно настроить bean-компонент TimedAspect.

@Configuration
public class TimedConfiguration {
   @Bean
   public TimedAspect timedAspect(MeterRegistry registry) {
      return new TimedAspect(registry);
   }
}

Применение TimedAspect делает @Timed пригодным для использования любым произвольным методом.

...