Allow custom observation convention for RestClient
This commit allows to use a custom `ObservationConvention` in the `DefaultRestClient`, and to set it through the `RestClient.Builder`. Closes gh-31325
This commit is contained in:
committed by
Brian Clozel
parent
c356ce2637
commit
9cab6c90a9
@@ -37,6 +37,8 @@ import org.springframework.http.client.ClientHttpRequest;
|
||||
import org.springframework.http.client.ClientHttpRequestFactory;
|
||||
import org.springframework.http.client.ClientHttpResponse;
|
||||
import org.springframework.http.client.observation.ClientRequestObservationContext;
|
||||
import org.springframework.http.client.observation.ClientRequestObservationConvention;
|
||||
import org.springframework.http.client.observation.DefaultClientRequestObservationConvention;
|
||||
import org.springframework.http.converter.HttpMessageConverter;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -159,6 +161,20 @@ class RestClientObservationTests {
|
||||
assertThatHttpObservation().hasLowCardinalityKeyValue("outcome", "UNKNOWN");
|
||||
}
|
||||
|
||||
@Test
|
||||
void executeWithCustomConventionUsesCustomObservationName() throws Exception {
|
||||
ClientRequestObservationConvention observationConvention =
|
||||
new DefaultClientRequestObservationConvention("custom.requests");
|
||||
RestClient restClient = this.client.mutate().observationConvention(observationConvention).build();
|
||||
mockSentRequest(GET, "https://example.org");
|
||||
mockResponseStatus(HttpStatus.OK);
|
||||
|
||||
restClient.get().uri("https://example.org").retrieve().toBodilessEntity();
|
||||
|
||||
TestObservationRegistryAssert.assertThat(this.observationRegistry)
|
||||
.hasObservationWithNameEqualTo("custom.requests");
|
||||
}
|
||||
|
||||
|
||||
private void mockSentRequest(HttpMethod method, String uri) throws Exception {
|
||||
mockSentRequest(method, uri, new HttpHeaders());
|
||||
|
||||
Reference in New Issue
Block a user