Есть ли способ записать аннотацию Micrometer @Timed в хранилище/реестр метрик Prometheus?

Я хочу захватить данные из аннотации @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).

Наверно, это можно сделать?


person G Lor    schedule 10.06.2019    source источник
comment
Отвечает ли это на ваш вопрос? @Временная аннотация в весенних метриках   -  person Martin Schröder    schedule 10.02.2021


Ответы (1)


Согласно документам micrometer:

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

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

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

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

person jolo    schedule 10.06.2019