Browse Source

Merge branch '6.2.x'

pull/34207/head
Brian Clozel 11 months ago
parent
commit
2cdc406e71
  1. 6
      framework-docs/modules/ROOT/pages/integration/observability.adoc
  2. 2
      spring-web/src/main/java/org/springframework/http/client/observation/ClientHttpObservationDocumentation.java
  3. 11
      spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientRequestObservationConventionTests.java
  4. 2
      spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientHttpObservationDocumentation.java
  5. 7
      spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestObservationConventionTests.java

6
framework-docs/modules/ROOT/pages/integration/observability.adoc

@ -285,7 +285,7 @@ Instrumentation uses the `org.springframework.http.client.observation.ClientRequ @@ -285,7 +285,7 @@ Instrumentation uses the `org.springframework.http.client.observation.ClientRequ
|===
|Name | Description
|`method` _(required)_|Name of the HTTP request method or `"none"` if not a well-known method.
|`uri` _(required)_|URI template used for HTTP request, or `"none"` if none was provided. Only the path part of the URI is considered.
|`uri` _(required)_|URI template used for HTTP request, or `"none"` if none was provided. The protocol, host and port part of the URI are not considered.
|`client.name` _(required)_|Client name derived from the request URI host.
|`status` _(required)_|HTTP response raw status code, or `"IO_ERROR"` in case of `IOException`, or `"CLIENT_ERROR"` if no response was received.
|`outcome` _(required)_|Outcome of the HTTP client exchange.
@ -313,7 +313,7 @@ Instrumentation uses the `org.springframework.http.client.observation.ClientRequ @@ -313,7 +313,7 @@ Instrumentation uses the `org.springframework.http.client.observation.ClientRequ
|===
|Name | Description
|`method` _(required)_|Name of the HTTP request method or `"none"` if the request could not be created.
|`uri` _(required)_|URI template used for HTTP request, or `"none"` if none was provided. Only the path part of the URI is considered.
|`uri` _(required)_|URI template used for HTTP request, or `"none"` if none was provided. The protocol, host and port part of the URI are not considered.
|`client.name` _(required)_|Client name derived from the request URI host.
|`status` _(required)_|HTTP response raw status code, or `"IO_ERROR"` in case of `IOException`, or `"CLIENT_ERROR"` if no response was received.
|`outcome` _(required)_|Outcome of the HTTP client exchange.
@ -342,7 +342,7 @@ Instrumentation uses the `org.springframework.web.reactive.function.client.Clien @@ -342,7 +342,7 @@ Instrumentation uses the `org.springframework.web.reactive.function.client.Clien
|===
|Name | Description
|`method` _(required)_|Name of the HTTP request method or `"none"` if not a well-known method.
|`uri` _(required)_|URI template used for HTTP request, or `"none"` if none was provided. Only the path part of the URI is considered.
|`uri` _(required)_|URI template used for HTTP request, or `"none"` if none was provided. The protocol, host and port part of the URI are not considered.
|`client.name` _(required)_|Client name derived from the request URI host.
|`status` _(required)_|HTTP response raw status code, or `"IO_ERROR"` in case of `IOException`, or `"CLIENT_ERROR"` if no response was received.
|`outcome` _(required)_|Outcome of the HTTP client exchange.

2
spring-web/src/main/java/org/springframework/http/client/observation/ClientHttpObservationDocumentation.java

@ -74,7 +74,7 @@ public enum ClientHttpObservationDocumentation implements ObservationDocumentati @@ -74,7 +74,7 @@ public enum ClientHttpObservationDocumentation implements ObservationDocumentati
/**
* URI template used for HTTP request, or {@value KeyValue#NONE_VALUE} if
* none was provided.
* <p>Only the path part of the URI is considered.
* <p>The protocol, host and port part of the URI are not considered.
*/
URI {
@Override

11
spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientRequestObservationConventionTests.java

@ -88,6 +88,17 @@ class DefaultClientRequestObservationConventionTests { @@ -88,6 +88,17 @@ class DefaultClientRequestObservationConventionTests {
assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).contains(KeyValue.of("http.url", "https://example.org/resource/42"));
}
@Test
void addsKeyValuesForRequestWithUriTemplateWithHostAndQuery() {
ClientRequestObservationContext context = createContext(
new MockClientHttpRequest(HttpMethod.GET, "https://example.org/resource/{id}?queryKey={queryValue}", 42, "Query"), response);
context.setUriTemplate("https://example.org/resource/{id}?queryKey={queryValue}");
assertThat(this.observationConvention.getLowCardinalityKeyValues(context))
.contains(KeyValue.of("exception", "none"), KeyValue.of("method", "GET"), KeyValue.of("uri", "/resource/{id}?queryKey={queryValue}"),
KeyValue.of("status", "200"), KeyValue.of("client.name", "example.org"), KeyValue.of("outcome", "SUCCESS"));
assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).contains(KeyValue.of("http.url", "https://example.org/resource/42?queryKey=Query"));
}
@Test
void addsKeyValuesForRequestWithUriTemplateWithoutPath() {
ClientRequestObservationContext context = createContext(

2
spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientHttpObservationDocumentation.java

@ -71,7 +71,7 @@ public enum ClientHttpObservationDocumentation implements ObservationDocumentati @@ -71,7 +71,7 @@ public enum ClientHttpObservationDocumentation implements ObservationDocumentati
/**
* URI template used for HTTP request, or {@value KeyValue#NONE_VALUE} if
* none was provided.
* <p>Only the path part of the URI is considered.
* <p>The protocol, host and port part of the URI are not considered.
*/
URI {
@Override

7
spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestObservationConventionTests.java

@ -119,6 +119,13 @@ class DefaultClientRequestObservationConventionTests { @@ -119,6 +119,13 @@ class DefaultClientRequestObservationConventionTests {
assertThat(this.observationConvention.getLowCardinalityKeyValues(context)).contains(KeyValue.of("uri", "/resource/{id}"));
}
@Test
void shouldKeepQueryParameterForUriKeyValue() {
ClientRequestObservationContext context = createContext(ClientRequest.create(HttpMethod.GET, URI.create("https://example.org/resource/42?queryKey=Query")));
context.setUriTemplate("https://example.org/resource/{id}?queryKey={queryValue}");
assertThat(this.observationConvention.getLowCardinalityKeyValues(context)).contains(KeyValue.of("uri", "/resource/{id}?queryKey={queryValue}"));
}
private ClientRequestObservationContext createContext(ClientRequest.Builder request) {
ClientRequestObservationContext context = new ClientRequestObservationContext(request);
context.setResponse(ClientResponse.create(HttpStatus.OK).build());

Loading…
Cancel
Save