Как интегрировать Prometheus с ReactiveFeignClient для измерения времени отклика / попаданий каждого кода состояния, возвращаемого при вызове клиента - PullRequest
0 голосов
/ 05 мая 2020

Я использую проект Spring Boot с WebFlux + Spring Reactor, и он вызывает другие службы с помощью ReactiveFeignClient.

Как мне интегрировать Prometheus, чтобы я мог отслеживать время отклика (с @Timer) и процент каждого кода состояния, возвращаемого имитирующим вызовом? Например, 200, 400, 404 ... Я нашел только способы:

После всей проделанной мной работы я не видел в выводе Prometheus счетчиков реактивных симулированных клиентов, хотя я определил bean-компонент регистратора, например:

    @Bean
    public MetricsWebClientFilterFunction metricsWebClientFilterFunction(PrometheusMeterRegistry meterRegistry,
                                                                         WebClientExchangeTagsProvider provider) {
        return new MetricsWebClientFilterFunction(
                meterRegistry,
                provider,
                APP_NAME + "reactive-client-request",
                AutoTimer.ENABLED
        );
    }

    @Bean
    public MicrometerReactiveLogger feignReactiveLogger(Clock clock,
                                                        PrometheusMeterRegistry meterRegistry) {

        return new MicrometerReactiveLogger(
                clock,
                meterRegistry,
                APP_NAME + ".feign.client_metrics",
                MetricsTag.getMandatory()
        );
    }

Кроме того, я обнаружил, что невозможно включить /actuator/prometheus, а только /_system/check/prometheus. Я включил и выставил конечные точки metrics и prometheus.

management:
  health:
    diskspace:
      enabled: false
  endpoint:
    metrics.enabled: true
    prometheus.enabled: true
  endpoints:
    web:
      base-path: /_system/check
      exposure:
        include: info,health,loggers,metrics,prometheus
      path-mapping:
        health: /simple

1 Ответ

0 голосов
/ 07 мая 2020

Я обнаружил проблему: показатели, связанные с реактивными имитирующими клиентами, будут отображаться только после того, как вы действительно сделаете имитацию вызовов. До этого они скрыты.

Reactive Feign Client использует WebClient внизу и будет измеряться автоматически при наличии пружинного привода.

...