Если вы хотите получить метрики вызова WebClient, вы можете использовать ExchangeFilterFunction , которая используется в качестве перехватчика. По умолчанию существует одна реализация ExchangeFilterFunction, т.е. MetricsWebClientFilterFunction , которую можно добавить в качестве фильтра вместе с вашим WebClient для предоставления таких метрик, как количество запросов, время ответа и общее время ответа.
val metricsWebClientFilterFunction = MetricsWebClientFilterFunction(meterRegistry, DefaultWebClientExchangeTagsProvider(), "webClientMetrics")
WebClient.builder()
.baseUrl("http://localhost:8080/test")
.filter(metricsWebClientFilterFunction)
.build()
Это представит все метрики этого Звонка WebClient в Прометей. Пример вывода Prometheus:
webClientMetrics_seconds_count{clientName="localhost",method="GET",status="200",uri="/test",} 2.0
webClientMetrics_seconds_sum{clientName="localhost",method="GET",status="200",uri="/test",} 2.05474855
webClientMetrics_seconds_max{clientName="localhost",method="GET",status="200",uri="/test",} 1.048698171
Чтобы написать собственные метрики, вы можете реализовать функцию ExchangeFilterFunction и написать собственную реализацию для получения метрик и добавить ее в фильтр WebClient.