Метрики Spring Boot Webclient отсутствуют в конечной точке Prometheus - PullRequest
0 голосов
/ 30 января 2020

Метрики клиента Http в конечной точке Prometheus отсутствуют при создании WebClient вручную.

Ниже код может генерировать ожидаемые метрики клиента http, как показано ниже,

@Autowired
WebClient.Builder webClientBuilder;

@GetMapping("client")
public Mono<String> getClientData() {
   return webClientBuilder.baseUrl("http://localhost:8080").build().get().retrieve().bodyToMono(String.class);
}

**Prometheus Metrics**
http_client_requests_seconds_count{clientName="localhost",method="GET",metric1="firstmetric",metric2="secondmetric",outcome="CLIENT_ERROR",status="404",uri="/",} 1.0
  http_client_requests_seconds_sum{clientName="localhost",method="GET",metric1="firstmetric",metric2="secondmetric",outcome="CLIENT_ERROR",status="404",uri="/",} 0.2275663

При создании WebClient.Builder вручную, как показано ниже, ожидаемые метрики (показанные выше) отсутствуют в конечной точке Prometheus.

@GetMapping("client")
    public Mono<String> getClientData() {
        return WebClient.builder().baseUrl("http://localhost:8080").build().get().retrieve().bodyToMono(String.class);
    }

Есть ли какое-либо решение для получения метрик без автоматической разводки WebClient или построителя WebClient (Изучено о MetricsWebClientFilterFunction, но в последней версии весенней загрузки это кажется устаревшим)?

1 Ответ

1 голос
/ 11 февраля 2020

Предпочтительный способ получить правильные инструменты - это действительно использовать экземпляр WebClient.Builder, предоставленный Spring Boot.

Если вы не хотите этого (в качестве отдельного вопроса, возможно, объясните, почему этот выбор, возможно, есть способ обойти проблему, которая заставила вас задуматься над этим выбором), на самом деле вы должны вручную связать MetricsWebClientFilterFunction в клиенте.

Я не вижу никакого уведомления об устаревании для этого класса, не так ли пропустить что-нибудь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...