From 07fabd505a746e25ddeed6bf3c90a84608742691 Mon Sep 17 00:00:00 2001 From: seonghyeoklee Date: Sat, 28 Feb 2026 19:59:01 +0900 Subject: [PATCH] Rename micrometer tags to follow recommended naming convention Rename camelCase tag names to lowercase dot notation as recommended by the Micrometer documentation: - httpStatusCode -> http.status.code - httpMethod -> http.method - routeId -> route.id - routeUri -> route.uri Closes #3434 Signed-off-by: seonghyeoklee --- .../tagsprovider/GatewayHttpTagsProvider.java | 2 +- .../GatewayRouteTagsProvider.java | 2 +- .../GatewayMetricsFilterCustomTagsTests.java | 8 +++---- .../filter/GatewayMetricsFilterTests.java | 24 +++++++++---------- .../GatewayHttpTagsProviderTests.java | 6 ++--- .../GatewayRouteTagsProviderTests.java | 2 +- 6 files changed, 22 insertions(+), 22 deletions(-) diff --git a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProvider.java b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProvider.java index 234e1810c..c4637352f 100644 --- a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProvider.java +++ b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProvider.java @@ -54,7 +54,7 @@ public Tags apply(ServerWebExchange exchange) { } } - return Tags.of("outcome", outcome, "status", status, "httpStatusCode", httpStatusCodeStr, "httpMethod", + return Tags.of("outcome", outcome, "status", status, "http.status.code", httpStatusCodeStr, "http.method", httpMethod); } diff --git a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProvider.java b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProvider.java index f1a35b5d8..1ecb047cd 100644 --- a/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProvider.java +++ b/spring-cloud-gateway-server-webflux/src/main/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProvider.java @@ -33,7 +33,7 @@ public Tags apply(ServerWebExchange exchange) { Route route = exchange.getAttribute(GATEWAY_ROUTE_ATTR); if (route != null) { - return Tags.of("routeId", route.getId(), "routeUri", route.getUri().toString()); + return Tags.of("route.id", route.getId(), "route.uri", route.getUri().toString()); } return Tags.empty(); diff --git a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterCustomTagsTests.java b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterCustomTagsTests.java index 1c26d785b..b6b1e72eb 100644 --- a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterCustomTagsTests.java +++ b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterCustomTagsTests.java @@ -59,10 +59,10 @@ void gatewayRequestsMeterFilterHasCustomTags() { // default tags assertMetricsContainsTag("outcome", HttpStatus.Series.SUCCESSFUL.name()); assertMetricsContainsTag("status", HttpStatus.OK.name()); - assertMetricsContainsTag("httpStatusCode", String.valueOf(HttpStatus.OK.value())); - assertMetricsContainsTag("httpMethod", HttpMethod.GET.toString()); - assertMetricsContainsTag("routeId", "default_path_to_httpbin"); - assertMetricsContainsTag("routeUri", testUri); + assertMetricsContainsTag("http.status.code", String.valueOf(HttpStatus.OK.value())); + assertMetricsContainsTag("http.method", HttpMethod.GET.toString()); + assertMetricsContainsTag("route.id", "default_path_to_httpbin"); + assertMetricsContainsTag("route.uri", testUri); // custom tags assertMetricsContainsTag("custom1", "tag1"); diff --git a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterTests.java b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterTests.java index a658b2b1b..9280231f2 100644 --- a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterTests.java +++ b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/filter/GatewayMetricsFilterTests.java @@ -60,10 +60,10 @@ public void gatewayRequestsMeterFilterHasTags() { testClient.get().uri("/headers").exchange().expectStatus().isOk(); assertMetricsContainsTag("outcome", HttpStatus.Series.SUCCESSFUL.name()); assertMetricsContainsTag("status", HttpStatus.OK.name()); - assertMetricsContainsTag("httpStatusCode", String.valueOf(HttpStatus.OK.value())); - assertMetricsContainsTag("httpMethod", HttpMethod.GET.toString()); - assertMetricsContainsTag("routeId", "default_path_to_httpbin"); - assertMetricsContainsTag("routeUri", testUri); + assertMetricsContainsTag("http.status.code", String.valueOf(HttpStatus.OK.value())); + assertMetricsContainsTag("http.method", HttpMethod.GET.toString()); + assertMetricsContainsTag("route.id", "default_path_to_httpbin"); + assertMetricsContainsTag("route.uri", testUri); } @Test @@ -71,10 +71,10 @@ public void gatewayRequestsMeterFilterHasTagsForBadTargetUri() { testClient.get().uri("/badtargeturi").exchange().expectStatus().is5xxServerError(); assertMetricsContainsTag("outcome", HttpStatus.Series.SERVER_ERROR.name()); assertMetricsContainsTag("status", HttpStatus.INTERNAL_SERVER_ERROR.name()); - assertMetricsContainsTag("httpStatusCode", String.valueOf(HttpStatus.INTERNAL_SERVER_ERROR.value())); - assertMetricsContainsTag("httpMethod", HttpMethod.GET.toString()); - assertMetricsContainsTag("routeId", "default_path_to_httpbin"); - assertMetricsContainsTag("routeUri", testUri); + assertMetricsContainsTag("http.status.code", String.valueOf(HttpStatus.INTERNAL_SERVER_ERROR.value())); + assertMetricsContainsTag("http.method", HttpMethod.GET.toString()); + assertMetricsContainsTag("route.id", "default_path_to_httpbin"); + assertMetricsContainsTag("route.uri", testUri); } @Test @@ -87,10 +87,10 @@ public void hasMetricsForSetStatusFilter() { assertThat(response.getStatusCode().value()).isEqualTo(432); assertMetricsContainsTag("outcome", "CUSTOM"); assertMetricsContainsTag("status", "432"); - assertMetricsContainsTag("routeId", "test_custom_http_status_metrics"); - assertMetricsContainsTag("routeUri", testUri); - assertMetricsContainsTag("httpStatusCode", "432"); - assertMetricsContainsTag("httpMethod", HttpMethod.POST.toString()); + assertMetricsContainsTag("route.id", "test_custom_http_status_metrics"); + assertMetricsContainsTag("route.uri", testUri); + assertMetricsContainsTag("http.status.code", "432"); + assertMetricsContainsTag("http.method", HttpMethod.POST.toString()); } private void assertMetricsContainsTag(String tagKey, String tagValue) { diff --git a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProviderTests.java b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProviderTests.java index 0e32232af..2b69b3ade 100644 --- a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProviderTests.java +++ b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayHttpTagsProviderTests.java @@ -41,7 +41,7 @@ public class GatewayHttpTagsProviderTests { private static final String ROUTE_URI = "http://gatewaytagsprovider.org:80"; private static final Tags DEFAULT_TAGS = Tags.of("outcome", OK.series().name(), "status", OK.name(), - "httpStatusCode", String.valueOf(OK.value()), "httpMethod", "GET"); + "http.status.code", String.valueOf(OK.value()), "http.method", "GET"); @Test public void httpTags() { @@ -59,7 +59,7 @@ public void nonStandardStatusCode() { Tags tags = tagsProvider.apply(exchange); assertThat(tags) - .isEqualTo(Tags.of("outcome", "CUSTOM", "status", "499", "httpMethod", "GET", "httpStatusCode", "499")); + .isEqualTo(Tags.of("outcome", "CUSTOM", "status", "499", "http.method", "GET", "http.status.code", "499")); } @Test @@ -68,7 +68,7 @@ public void statusNotChanged() { Tags tags = tagsProvider.apply(exchange); assertThat(tags) - .isEqualTo(Tags.of("outcome", "CUSTOM", "status", "CUSTOM", "httpStatusCode", "NA", "httpMethod", "GET")); + .isEqualTo(Tags.of("outcome", "CUSTOM", "status", "CUSTOM", "http.status.code", "NA", "http.method", "GET")); } @Test diff --git a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProviderTests.java b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProviderTests.java index fe33077d6..b039e83dd 100644 --- a/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProviderTests.java +++ b/spring-cloud-gateway-server-webflux/src/test/java/org/springframework/cloud/gateway/support/tagsprovider/GatewayRouteTagsProviderTests.java @@ -40,7 +40,7 @@ public class GatewayRouteTagsProviderTests { private static final Route ROUTE = Route.async().id(ROUTE_ID).uri(ROUTE_URI).predicate(swe -> true).build(); - private static final Tags DEFAULT_TAGS = Tags.of("routeId", ROUTE_ID, "routeUri", ROUTE_URI); + private static final Tags DEFAULT_TAGS = Tags.of("route.id", ROUTE_ID, "route.uri", ROUTE_URI); @Test public void routeTags() {