Polish
See gh-29388
This commit is contained in:
@@ -23,6 +23,9 @@ import org.springframework.lang.Nullable;
|
|||||||
/**
|
/**
|
||||||
* Context that holds information for metadata collection
|
* Context that holds information for metadata collection
|
||||||
* during the {@link ClientHttpObservationDocumentation#HTTP_REQUEST HTTP client exchange observations}.
|
* during the {@link ClientHttpObservationDocumentation#HTTP_REQUEST HTTP client exchange observations}.
|
||||||
|
* <p>The {@link #getCarrier() tracing context carrier} is a {@link ClientRequest.Builder request builder},
|
||||||
|
* since the actual request is immutable. For {@code KeyValue} extraction, the {@link #getRequest() actual request}
|
||||||
|
* should be used instead.
|
||||||
*
|
*
|
||||||
* @author Brian Clozel
|
* @author Brian Clozel
|
||||||
* @since 6.0
|
* @since 6.0
|
||||||
@@ -35,7 +38,7 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
|
|||||||
private boolean aborted;
|
private boolean aborted;
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
private ClientRequest builtRequest;
|
private ClientRequest request;
|
||||||
|
|
||||||
|
|
||||||
public ClientRequestObservationContext() {
|
public ClientRequestObservationContext() {
|
||||||
@@ -44,7 +47,7 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
|
|||||||
|
|
||||||
private static void setRequestHeader(@Nullable ClientRequest.Builder request, String name, String value) {
|
private static void setRequestHeader(@Nullable ClientRequest.Builder request, String name, String value) {
|
||||||
if (request != null) {
|
if (request != null) {
|
||||||
request.header(name, value);
|
request.headers(headers -> headers.set(name, value));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,16 +83,17 @@ public class ClientRequestObservationContext extends RequestReplySenderContext<C
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the built request.
|
* Return the immutable client request.
|
||||||
*/
|
*/
|
||||||
public ClientRequest getBuiltRequest() {
|
@Nullable
|
||||||
return this.builtRequest;
|
public ClientRequest getRequest() {
|
||||||
|
return this.request;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Set the built request.
|
* Set the client request.
|
||||||
*/
|
*/
|
||||||
public void setBuiltRequest(ClientRequest builtRequest) {
|
public void setRequest(ClientRequest request) {
|
||||||
this.builtRequest = builtRequest;
|
this.request = request;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ public class DefaultClientRequestObservationConvention implements ClientRequestO
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getContextualName(ClientRequestObservationContext context) {
|
public String getContextualName(ClientRequestObservationContext context) {
|
||||||
return "http " + context.getBuiltRequest().method().name().toLowerCase();
|
return "http " + context.getRequest().method().name().toLowerCase();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -95,8 +95,8 @@ public class DefaultClientRequestObservationConvention implements ClientRequestO
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected KeyValue method(ClientRequestObservationContext context) {
|
protected KeyValue method(ClientRequestObservationContext context) {
|
||||||
if (context.getBuiltRequest() != null) {
|
if (context.getRequest() != null) {
|
||||||
return KeyValue.of(ClientHttpObservationDocumentation.LowCardinalityKeyNames.METHOD, context.getBuiltRequest().method().name());
|
return KeyValue.of(ClientHttpObservationDocumentation.LowCardinalityKeyNames.METHOD, context.getRequest().method().name());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
return METHOD_NONE;
|
return METHOD_NONE;
|
||||||
@@ -143,15 +143,15 @@ public class DefaultClientRequestObservationConvention implements ClientRequestO
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected KeyValue httpUrl(ClientRequestObservationContext context) {
|
protected KeyValue httpUrl(ClientRequestObservationContext context) {
|
||||||
if (context.getBuiltRequest() != null) {
|
if (context.getRequest() != null) {
|
||||||
return KeyValue.of(ClientHttpObservationDocumentation.HighCardinalityKeyNames.HTTP_URL, context.getBuiltRequest().url().toASCIIString());
|
return KeyValue.of(ClientHttpObservationDocumentation.HighCardinalityKeyNames.HTTP_URL, context.getRequest().url().toASCIIString());
|
||||||
}
|
}
|
||||||
return HTTP_URL_NONE;
|
return HTTP_URL_NONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected KeyValue clientName(ClientRequestObservationContext context) {
|
protected KeyValue clientName(ClientRequestObservationContext context) {
|
||||||
if (context.getBuiltRequest() != null && context.getBuiltRequest().url().getHost() != null) {
|
if (context.getRequest() != null && context.getRequest().url().getHost() != null) {
|
||||||
return KeyValue.of(ClientHttpObservationDocumentation.HighCardinalityKeyNames.CLIENT_NAME, context.getBuiltRequest().url().getHost());
|
return KeyValue.of(ClientHttpObservationDocumentation.HighCardinalityKeyNames.CLIENT_NAME, context.getRequest().url().getHost());
|
||||||
}
|
}
|
||||||
return CLIENT_NAME_NONE;
|
return CLIENT_NAME_NONE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -467,7 +467,7 @@ class DefaultWebClient implements WebClient {
|
|||||||
.start();
|
.start();
|
||||||
ClientRequest request = requestBuilder.build();
|
ClientRequest request = requestBuilder.build();
|
||||||
observationContext.setUriTemplate((String) request.attribute(URI_TEMPLATE_ATTRIBUTE).orElse(null));
|
observationContext.setUriTemplate((String) request.attribute(URI_TEMPLATE_ATTRIBUTE).orElse(null));
|
||||||
observationContext.setBuiltRequest(request);
|
observationContext.setRequest(request);
|
||||||
Mono<ClientResponse> responseMono = exchangeFunction.exchange(request)
|
Mono<ClientResponse> responseMono = exchangeFunction.exchange(request)
|
||||||
.checkpoint("Request to " + this.httpMethod.name() + " " + this.uri + " [DefaultWebClient]")
|
.checkpoint("Request to " + this.httpMethod.name() + " " + this.uri + " [DefaultWebClient]")
|
||||||
.switchIfEmpty(NO_HTTP_CLIENT_RESPONSE_ERROR);
|
.switchIfEmpty(NO_HTTP_CLIENT_RESPONSE_ERROR);
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ class DefaultClientRequestObservationConventionTests {
|
|||||||
void shouldHaveContextualName() {
|
void shouldHaveContextualName() {
|
||||||
ClientRequestObservationContext context = new ClientRequestObservationContext();
|
ClientRequestObservationContext context = new ClientRequestObservationContext();
|
||||||
context.setCarrier(ClientRequest.create(HttpMethod.GET, URI.create("/test")));
|
context.setCarrier(ClientRequest.create(HttpMethod.GET, URI.create("/test")));
|
||||||
context.setBuiltRequest(context.getCarrier().build());
|
context.setRequest(context.getCarrier().build());
|
||||||
assertThat(this.observationConvention.getContextualName(context)).isEqualTo("http get");
|
assertThat(this.observationConvention.getContextualName(context)).isEqualTo("http get");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,7 +82,7 @@ class DefaultClientRequestObservationConventionTests {
|
|||||||
.attribute(WebClient.class.getName() + ".uriTemplate", "/resource/{id}");
|
.attribute(WebClient.class.getName() + ".uriTemplate", "/resource/{id}");
|
||||||
ClientRequestObservationContext context = createContext(request);
|
ClientRequestObservationContext context = createContext(request);
|
||||||
context.setUriTemplate("/resource/{id}");
|
context.setUriTemplate("/resource/{id}");
|
||||||
context.setBuiltRequest(context.getCarrier().build());
|
context.setRequest(context.getCarrier().build());
|
||||||
assertThat(this.observationConvention.getLowCardinalityKeyValues(context))
|
assertThat(this.observationConvention.getLowCardinalityKeyValues(context))
|
||||||
.contains(KeyValue.of("exception", "none"), KeyValue.of("method", "GET"), KeyValue.of("uri", "/resource/{id}"),
|
.contains(KeyValue.of("exception", "none"), KeyValue.of("method", "GET"), KeyValue.of("uri", "/resource/{id}"),
|
||||||
KeyValue.of("status", "200"), KeyValue.of("outcome", "SUCCESS"));
|
KeyValue.of("status", "200"), KeyValue.of("outcome", "SUCCESS"));
|
||||||
@@ -93,7 +93,7 @@ class DefaultClientRequestObservationConventionTests {
|
|||||||
@Test
|
@Test
|
||||||
void shouldAddKeyValuesForRequestWithoutUriTemplate() {
|
void shouldAddKeyValuesForRequestWithoutUriTemplate() {
|
||||||
ClientRequestObservationContext context = createContext(ClientRequest.create(HttpMethod.GET, URI.create("/resource/42")));
|
ClientRequestObservationContext context = createContext(ClientRequest.create(HttpMethod.GET, URI.create("/resource/42")));
|
||||||
context.setBuiltRequest(context.getCarrier().build());
|
context.setRequest(context.getCarrier().build());
|
||||||
assertThat(this.observationConvention.getLowCardinalityKeyValues(context))
|
assertThat(this.observationConvention.getLowCardinalityKeyValues(context))
|
||||||
.contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "none"));
|
.contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "none"));
|
||||||
assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2).contains(KeyValue.of("http.url", "/resource/42"));
|
assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2).contains(KeyValue.of("http.url", "/resource/42"));
|
||||||
@@ -102,7 +102,7 @@ class DefaultClientRequestObservationConventionTests {
|
|||||||
@Test
|
@Test
|
||||||
void shouldAddClientNameKeyValueForRequestWithHost() {
|
void shouldAddClientNameKeyValueForRequestWithHost() {
|
||||||
ClientRequestObservationContext context = createContext(ClientRequest.create(HttpMethod.GET, URI.create("https://localhost:8080/resource/42")));
|
ClientRequestObservationContext context = createContext(ClientRequest.create(HttpMethod.GET, URI.create("https://localhost:8080/resource/42")));
|
||||||
context.setBuiltRequest(context.getCarrier().build());
|
context.setRequest(context.getCarrier().build());
|
||||||
assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).contains(KeyValue.of("client.name", "localhost"));
|
assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).contains(KeyValue.of("client.name", "localhost"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user