Add contextualName to HTTP Observations
This commit ensures that all HTTP `ObservationConvention` implementations provide a consistent contextual name for observations. This name should be like "http get" where only the HTTP verb changes depending on the request. Fixes gh-29231
This commit is contained in:
@@ -42,6 +42,18 @@ class DefaultClientHttpObservationConventionTests {
|
||||
|
||||
private final DefaultClientHttpObservationConvention observationConvention = new DefaultClientHttpObservationConvention();
|
||||
|
||||
@Test
|
||||
void shouldHaveName() {
|
||||
assertThat(this.observationConvention.getName()).isEqualTo("http.client.requests");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldHaveContextualName() {
|
||||
ClientHttpObservationContext context = new ClientHttpObservationContext();
|
||||
context.setCarrier(new MockClientHttpRequest(HttpMethod.GET, "/test"));
|
||||
assertThat(this.observationConvention.getContextualName(context)).isEqualTo("http get");
|
||||
}
|
||||
|
||||
@Test
|
||||
void supportsOnlyClientHttpObservationContext() {
|
||||
assertThat(this.observationConvention.supportsContext(new ClientHttpObservationContext())).isTrue();
|
||||
|
||||
@@ -33,7 +33,7 @@ class DefaultHttpRequestsObservationConventionTests {
|
||||
|
||||
private final DefaultHttpRequestsObservationConvention convention = new DefaultHttpRequestsObservationConvention();
|
||||
|
||||
private final MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
private final MockHttpServletRequest request = new MockHttpServletRequest("GET", "/test/resource");
|
||||
|
||||
private final MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
|
||||
@@ -45,6 +45,11 @@ class DefaultHttpRequestsObservationConventionTests {
|
||||
assertThat(convention.getName()).isEqualTo("http.server.requests");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldHaveContextualName() {
|
||||
assertThat(convention.getContextualName(this.context)).isEqualTo("http get");
|
||||
}
|
||||
|
||||
@Test
|
||||
void supportsOnlyHttpRequestsObservationContext() {
|
||||
assertThat(this.convention.supportsContext(this.context)).isTrue();
|
||||
@@ -66,7 +71,6 @@ class DefaultHttpRequestsObservationConventionTests {
|
||||
|
||||
@Test
|
||||
void addsKeyValuesForExchangeWithPathPattern() {
|
||||
this.request.setMethod("GET");
|
||||
this.request.setRequestURI("/test/resource");
|
||||
this.request.setPathInfo("/test/resource");
|
||||
this.context.setPathPattern("/test/{name}");
|
||||
@@ -80,7 +84,6 @@ class DefaultHttpRequestsObservationConventionTests {
|
||||
|
||||
@Test
|
||||
void addsKeyValuesForErrorExchange() {
|
||||
this.request.setMethod("GET");
|
||||
this.request.setRequestURI("/test/resource");
|
||||
this.request.setPathInfo("/test/resource");
|
||||
this.context.setError(new IllegalArgumentException("custom error"));
|
||||
@@ -95,7 +98,6 @@ class DefaultHttpRequestsObservationConventionTests {
|
||||
|
||||
@Test
|
||||
void addsKeyValuesForRedirectExchange() {
|
||||
this.request.setMethod("GET");
|
||||
this.request.setRequestURI("/test/redirect");
|
||||
this.request.setPathInfo("/test/redirect");
|
||||
this.response.setStatus(302);
|
||||
@@ -110,7 +112,6 @@ class DefaultHttpRequestsObservationConventionTests {
|
||||
|
||||
@Test
|
||||
void addsKeyValuesForNotFoundExchange() {
|
||||
this.request.setMethod("GET");
|
||||
this.request.setRequestURI("/test/notFound");
|
||||
this.request.setPathInfo("/test/notFound");
|
||||
this.response.setStatus(404);
|
||||
|
||||
@@ -42,6 +42,13 @@ class DefaultHttpRequestsObservationConventionTests {
|
||||
assertThat(convention.getName()).isEqualTo("http.server.requests");
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldHaveContextualName() {
|
||||
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/test/resource"));
|
||||
HttpRequestsObservationContext context = new HttpRequestsObservationContext(exchange);
|
||||
assertThat(convention.getContextualName(context)).isEqualTo("http get");
|
||||
}
|
||||
|
||||
@Test
|
||||
void supportsOnlyHttpRequestsObservationContext() {
|
||||
ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.post("/test/resource"));
|
||||
|
||||
Reference in New Issue
Block a user