From 486a1b602442083883f2d3fd493918e9f4a02bc2 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Wed, 5 Oct 2022 09:55:42 +0200 Subject: [PATCH] Change keyvalue name to http.url in server observations This commit changes the new high cardinality key value from "uri.expanded" to "http.url" in order to align with the OTel specification, since there is no need for backwards compatibility on this new metadata. Closes gh-29254 --- .../client/observation/ClientHttpObservation.java | 4 ++-- .../DefaultClientHttpObservationConvention.java | 4 ++-- .../DefaultHttpRequestsObservationConvention.java | 4 ++-- .../web/observation/HttpRequestsObservation.java | 4 ++-- .../DefaultHttpRequestsObservationConvention.java | 4 ++-- .../reactive/HttpRequestsObservation.java | 4 ++-- .../DefaultClientHttpObservationConventionTests.java | 4 ++-- ...efaultHttpRequestsObservationConventionTests.java | 10 +++++----- ...efaultHttpRequestsObservationConventionTests.java | 12 ++++++------ .../reactive/function/client/ClientObservation.java | 4 ++-- .../client/DefaultClientObservationConvention.java | 4 ++-- .../DefaultClientObservationConventionTests.java | 8 ++++---- 12 files changed, 33 insertions(+), 33 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/http/client/observation/ClientHttpObservation.java b/spring-web/src/main/java/org/springframework/http/client/observation/ClientHttpObservation.java index ae4fa33ea2..e5c3cb81bd 100644 --- a/spring-web/src/main/java/org/springframework/http/client/observation/ClientHttpObservation.java +++ b/spring-web/src/main/java/org/springframework/http/client/observation/ClientHttpObservation.java @@ -115,10 +115,10 @@ public enum ClientHttpObservation implements DocumentedObservation { /** * HTTP request URI. */ - URI_EXPANDED { + HTTP_URL { @Override public String asString() { - return "uri.expanded"; + return "http.url"; } }, diff --git a/spring-web/src/main/java/org/springframework/http/client/observation/DefaultClientHttpObservationConvention.java b/spring-web/src/main/java/org/springframework/http/client/observation/DefaultClientHttpObservationConvention.java index 478b84bcbf..e039cb26fa 100644 --- a/spring-web/src/main/java/org/springframework/http/client/observation/DefaultClientHttpObservationConvention.java +++ b/spring-web/src/main/java/org/springframework/http/client/observation/DefaultClientHttpObservationConvention.java @@ -46,7 +46,7 @@ public class DefaultClientHttpObservationConvention implements ClientHttpObserva private static final KeyValue EXCEPTION_NONE = KeyValue.of(ClientHttpObservation.LowCardinalityKeyNames.EXCEPTION, "none"); - private static final KeyValue URI_EXPANDED_NONE = KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.URI_EXPANDED, "none"); + private static final KeyValue URI_EXPANDED_NONE = KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.HTTP_URL, "none"); private static final KeyValue CLIENT_NAME_NONE = KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.CLIENT_NAME, "none"); @@ -139,7 +139,7 @@ public class DefaultClientHttpObservationConvention implements ClientHttpObserva protected KeyValue requestUri(ClientHttpObservationContext context) { if (context.getCarrier() != null) { - return KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.URI_EXPANDED, context.getCarrier().getURI().toASCIIString()); + return KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.HTTP_URL, context.getCarrier().getURI().toASCIIString()); } return URI_EXPANDED_NONE; } diff --git a/spring-web/src/main/java/org/springframework/web/observation/DefaultHttpRequestsObservationConvention.java b/spring-web/src/main/java/org/springframework/web/observation/DefaultHttpRequestsObservationConvention.java index b4364ca4f0..33b6030b9b 100644 --- a/spring-web/src/main/java/org/springframework/web/observation/DefaultHttpRequestsObservationConvention.java +++ b/spring-web/src/main/java/org/springframework/web/observation/DefaultHttpRequestsObservationConvention.java @@ -47,7 +47,7 @@ public class DefaultHttpRequestsObservationConvention implements HttpRequestsObs private static final KeyValue EXCEPTION_NONE = KeyValue.of(HttpRequestsObservation.LowCardinalityKeyNames.EXCEPTION, "none"); - private static final KeyValue URI_EXPANDED_UNKNOWN = KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.URI_EXPANDED, "UNKNOWN"); + private static final KeyValue URI_EXPANDED_UNKNOWN = KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.HTTP_URL, "UNKNOWN"); private final String name; @@ -139,7 +139,7 @@ public class DefaultHttpRequestsObservationConvention implements HttpRequestsObs protected KeyValue uriExpanded(HttpRequestsObservationContext context) { if (context.getCarrier() != null) { String uriExpanded = (context.getCarrier().getPathInfo() != null) ? context.getCarrier().getPathInfo() : "/"; - return KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.URI_EXPANDED, uriExpanded); + return KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.HTTP_URL, uriExpanded); } return URI_EXPANDED_UNKNOWN; } diff --git a/spring-web/src/main/java/org/springframework/web/observation/HttpRequestsObservation.java b/spring-web/src/main/java/org/springframework/web/observation/HttpRequestsObservation.java index 39107c6ea5..d0f7b3eccd 100644 --- a/spring-web/src/main/java/org/springframework/web/observation/HttpRequestsObservation.java +++ b/spring-web/src/main/java/org/springframework/web/observation/HttpRequestsObservation.java @@ -113,10 +113,10 @@ public enum HttpRequestsObservation implements DocumentedObservation { /** * HTTP request URI. */ - URI_EXPANDED { + HTTP_URL { @Override public String asString() { - return "uri.expanded"; + return "http.url"; } } diff --git a/spring-web/src/main/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConvention.java b/spring-web/src/main/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConvention.java index 257cfa181f..fdfd4cac29 100644 --- a/spring-web/src/main/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConvention.java +++ b/spring-web/src/main/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConvention.java @@ -48,7 +48,7 @@ public class DefaultHttpRequestsObservationConvention implements HttpRequestsObs private static final KeyValue EXCEPTION_NONE = KeyValue.of(HttpRequestsObservation.LowCardinalityKeyNames.EXCEPTION, "none"); - private static final KeyValue URI_EXPANDED_UNKNOWN = KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.URI_EXPANDED, "UNKNOWN"); + private static final KeyValue URI_EXPANDED_UNKNOWN = KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.HTTP_URL, "UNKNOWN"); private final String name; @@ -146,7 +146,7 @@ public class DefaultHttpRequestsObservationConvention implements HttpRequestsObs protected KeyValue uriExpanded(HttpRequestsObservationContext context) { if (context.getCarrier() != null) { String uriExpanded = context.getCarrier().getPath().toString(); - return KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.URI_EXPANDED, uriExpanded); + return KeyValue.of(HttpRequestsObservation.HighCardinalityKeyNames.HTTP_URL, uriExpanded); } return URI_EXPANDED_UNKNOWN; } diff --git a/spring-web/src/main/java/org/springframework/web/observation/reactive/HttpRequestsObservation.java b/spring-web/src/main/java/org/springframework/web/observation/reactive/HttpRequestsObservation.java index f62d482d53..e71a182f65 100644 --- a/spring-web/src/main/java/org/springframework/web/observation/reactive/HttpRequestsObservation.java +++ b/spring-web/src/main/java/org/springframework/web/observation/reactive/HttpRequestsObservation.java @@ -113,10 +113,10 @@ public enum HttpRequestsObservation implements DocumentedObservation { /** * HTTP request URI. */ - URI_EXPANDED { + HTTP_URL { @Override public String asString() { - return "uri.expanded"; + return "http.url"; } } diff --git a/spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientHttpObservationConventionTests.java b/spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientHttpObservationConventionTests.java index 5fea1f43dd..8b1bc238f5 100644 --- a/spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientHttpObservationConventionTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/observation/DefaultClientHttpObservationConventionTests.java @@ -71,7 +71,7 @@ class DefaultClientHttpObservationConventionTests { .contains(KeyValue.of("exception", "none"), KeyValue.of("method", "GET"), KeyValue.of("uri", "/resource/{id}"), KeyValue.of("status", "200"), KeyValue.of("outcome", "SUCCESS")); assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2) - .contains(KeyValue.of("client.name", "none"), KeyValue.of("uri.expanded", "/resource/42")); + .contains(KeyValue.of("client.name", "none"), KeyValue.of("http.url", "/resource/42")); } @Test @@ -81,7 +81,7 @@ class DefaultClientHttpObservationConventionTests { assertThat(this.observationConvention.getLowCardinalityKeyValues(context)) .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "none")); assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2) - .contains(KeyValue.of("uri.expanded", "/resource/42")); + .contains(KeyValue.of("http.url", "/resource/42")); } @Test diff --git a/spring-web/src/test/java/org/springframework/web/observation/DefaultHttpRequestsObservationConventionTests.java b/spring-web/src/test/java/org/springframework/web/observation/DefaultHttpRequestsObservationConventionTests.java index 1628c1b0e9..af410f58d1 100644 --- a/spring-web/src/test/java/org/springframework/web/observation/DefaultHttpRequestsObservationConventionTests.java +++ b/spring-web/src/test/java/org/springframework/web/observation/DefaultHttpRequestsObservationConventionTests.java @@ -66,7 +66,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "POST"), KeyValue.of("uri", "UNKNOWN"), KeyValue.of("status", "200"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "SUCCESS")); assertThat(this.convention.getHighCardinalityKeyValues(this.context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/resource")); + .contains(KeyValue.of("http.url", "/test/resource")); } @Test @@ -79,7 +79,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "/test/{name}"), KeyValue.of("status", "200"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "SUCCESS")); assertThat(this.convention.getHighCardinalityKeyValues(this.context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/resource")); + .contains(KeyValue.of("http.url", "/test/resource")); } @Test @@ -93,7 +93,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "UNKNOWN"), KeyValue.of("status", "500"), KeyValue.of("exception", "IllegalArgumentException"), KeyValue.of("outcome", "SERVER_ERROR")); assertThat(this.convention.getHighCardinalityKeyValues(this.context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/resource")); + .contains(KeyValue.of("http.url", "/test/resource")); } @Test @@ -107,7 +107,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "REDIRECTION"), KeyValue.of("status", "302"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "REDIRECTION")); assertThat(this.convention.getHighCardinalityKeyValues(this.context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/redirect")); + .contains(KeyValue.of("http.url", "/test/redirect")); } @Test @@ -120,7 +120,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "NOT_FOUND"), KeyValue.of("status", "404"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "CLIENT_ERROR")); assertThat(this.convention.getHighCardinalityKeyValues(this.context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/notFound")); + .contains(KeyValue.of("http.url", "/test/notFound")); } } diff --git a/spring-web/src/test/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConventionTests.java b/spring-web/src/test/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConventionTests.java index bacd9362d8..fdd4728de5 100644 --- a/spring-web/src/test/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConventionTests.java +++ b/spring-web/src/test/java/org/springframework/web/observation/reactive/DefaultHttpRequestsObservationConventionTests.java @@ -67,7 +67,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "POST"), KeyValue.of("uri", "UNKNOWN"), KeyValue.of("status", "201"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "SUCCESS")); assertThat(this.convention.getHighCardinalityKeyValues(context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/resource")); + .contains(KeyValue.of("http.url", "/test/resource")); } @Test @@ -82,7 +82,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "/test/{name}"), KeyValue.of("status", "200"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "SUCCESS")); assertThat(this.convention.getHighCardinalityKeyValues(context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/resource")); + .contains(KeyValue.of("http.url", "/test/resource")); } @@ -97,7 +97,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "UNKNOWN"), KeyValue.of("status", "500"), KeyValue.of("exception", "IllegalArgumentException"), KeyValue.of("outcome", "SERVER_ERROR")); assertThat(this.convention.getHighCardinalityKeyValues(context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/resource")); + .contains(KeyValue.of("http.url", "/test/resource")); } @Test @@ -111,7 +111,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "REDIRECTION"), KeyValue.of("status", "302"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "REDIRECTION")); assertThat(this.convention.getHighCardinalityKeyValues(context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/redirect")); + .contains(KeyValue.of("http.url", "/test/redirect")); } @Test @@ -124,7 +124,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "NOT_FOUND"), KeyValue.of("status", "404"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "CLIENT_ERROR")); assertThat(this.convention.getHighCardinalityKeyValues(context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/notFound")); + .contains(KeyValue.of("http.url", "/test/notFound")); } @Test @@ -138,7 +138,7 @@ class DefaultHttpRequestsObservationConventionTests { .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "UNKNOWN"), KeyValue.of("status", "UNKNOWN"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "UNKNOWN")); assertThat(this.convention.getHighCardinalityKeyValues(context)).hasSize(1) - .contains(KeyValue.of("uri.expanded", "/test/resource")); + .contains(KeyValue.of("http.url", "/test/resource")); } private static PathPattern getPathPattern(String pattern) { diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientObservation.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientObservation.java index 9a21759f78..75c4d727f3 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientObservation.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientObservation.java @@ -113,10 +113,10 @@ public enum ClientObservation implements DocumentedObservation { /** * HTTP request URI. */ - URI_EXPANDED { + HTTP_URL { @Override public String asString() { - return "uri.expanded"; + return "http.url"; } }, diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientObservationConvention.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientObservationConvention.java index fe45796b03..794cbb7fbb 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientObservationConvention.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/DefaultClientObservationConvention.java @@ -47,7 +47,7 @@ public class DefaultClientObservationConvention implements ClientObservationConv private static final KeyValue EXCEPTION_NONE = KeyValue.of(ClientObservation.LowCardinalityKeyNames.EXCEPTION, "none"); - private static final KeyValue URI_EXPANDED_NONE = KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.URI_EXPANDED, "none"); + private static final KeyValue URI_EXPANDED_NONE = KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.HTTP_URL, "none"); private static final KeyValue CLIENT_NAME_NONE = KeyValue.of(ClientHttpObservation.HighCardinalityKeyNames.CLIENT_NAME, "none"); @@ -140,7 +140,7 @@ public class DefaultClientObservationConvention implements ClientObservationConv protected KeyValue uriExpanded(ClientObservationContext context) { if (context.getCarrier() != null) { - return KeyValue.of(ClientObservation.HighCardinalityKeyNames.URI_EXPANDED, context.getCarrier().url().toASCIIString()); + return KeyValue.of(ClientObservation.HighCardinalityKeyNames.HTTP_URL, context.getCarrier().url().toASCIIString()); } return URI_EXPANDED_NONE; } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientObservationConventionTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientObservationConventionTests.java index 6340902abd..be3cf63beb 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientObservationConventionTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientObservationConventionTests.java @@ -61,7 +61,7 @@ class DefaultClientObservationConventionTests { .contains(KeyValue.of("method", "none"), KeyValue.of("uri", "none"), KeyValue.of("status", "CLIENT_ERROR"), KeyValue.of("exception", "none"), KeyValue.of("outcome", "UNKNOWN")); assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2) - .contains(KeyValue.of("client.name", "none"), KeyValue.of("uri.expanded", "none")); + .contains(KeyValue.of("client.name", "none"), KeyValue.of("http.url", "none")); } @Test @@ -72,7 +72,7 @@ class DefaultClientObservationConventionTests { .contains(KeyValue.of("method", "none"), KeyValue.of("uri", "none"), KeyValue.of("status", "CLIENT_ERROR"), KeyValue.of("exception", "IllegalStateException"), KeyValue.of("outcome", "UNKNOWN")); assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2) - .contains(KeyValue.of("client.name", "none"), KeyValue.of("uri.expanded", "none")); + .contains(KeyValue.of("client.name", "none"), KeyValue.of("http.url", "none")); } @Test @@ -85,7 +85,7 @@ class DefaultClientObservationConventionTests { .contains(KeyValue.of("exception", "none"), KeyValue.of("method", "GET"), KeyValue.of("uri", "/resource/{id}"), KeyValue.of("status", "200"), KeyValue.of("outcome", "SUCCESS")); assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2) - .contains(KeyValue.of("client.name", "none"), KeyValue.of("uri.expanded", "/resource/42")); + .contains(KeyValue.of("client.name", "none"), KeyValue.of("http.url", "/resource/42")); } @Test @@ -93,7 +93,7 @@ class DefaultClientObservationConventionTests { ClientObservationContext context = createContext(ClientRequest.create(HttpMethod.GET, URI.create("/resource/42")).build()); assertThat(this.observationConvention.getLowCardinalityKeyValues(context)) .contains(KeyValue.of("method", "GET"), KeyValue.of("uri", "none")); - assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2).contains(KeyValue.of("uri.expanded", "/resource/42")); + assertThat(this.observationConvention.getHighCardinalityKeyValues(context)).hasSize(2).contains(KeyValue.of("http.url", "/resource/42")); } @Test