From d5d2b78be1cca82afae2b2d34c44fe028b73a0ce Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Mon, 18 Nov 2024 17:51:26 +0100 Subject: [PATCH] Rename property. --- .../spring-cloud-commons/loadbalancer.adoc | 4 +-- docs/modules/ROOT/partials/_configprops.adoc | 1 + .../loadbalancer/LoadBalancerProperties.java | 28 +++++++++---------- .../loadbalancer/stats/LoadBalancerTags.java | 2 +- ...ometerStatsLoadBalancerLifecycleTests.java | 2 +- 5 files changed, 19 insertions(+), 18 deletions(-) diff --git a/docs/modules/ROOT/pages/spring-cloud-commons/loadbalancer.adoc b/docs/modules/ROOT/pages/spring-cloud-commons/loadbalancer.adoc index 4dbfc4d0..6468a80f 100644 --- a/docs/modules/ROOT/pages/spring-cloud-commons/loadbalancer.adoc +++ b/docs/modules/ROOT/pages/spring-cloud-commons/loadbalancer.adoc @@ -508,9 +508,9 @@ Additional information regarding the service instances, request data, and respon NOTE: For `WebClient` and `RestClient`-backed load-balancing, we use `uriTemplate` for the `uri` tag whenever available. -TIP: It is possible to disable adding `uri` tag by setting `spring.cloud.loadbalancer.metrics.include-uri-tag` to `false`. +TIP: It is possible to disable adding `path` to `uri` tag by setting `spring.cloud.loadbalancer.stats.include-path` to `false`. -WARNING: As with `RestTemplate`-backed load-balancing, we don't have access to `uriTemplate`, full path is always used in the `uri` tag. In order to avoid high cardinality issues, if path is a high cardinality value (for example, `/orders/\{id\}`, where `id` takes a big number of values), it is strongly recommended to disable adding `uri` tag by setting `spring.cloud.loadbalancer.metrics.include-uri-tag` to `false`. +WARNING: As with `RestTemplate`-backed load-balancing, we don't have access to `uriTemplate`, full path is always used in the `uri` tag. In order to avoid high cardinality issues, if path is a high cardinality value (for example, `/orders/\{id\}`, where `id` takes a big number of values), it is strongly recommended to disable adding path to `uri` tag by setting `spring.cloud.loadbalancer.stats.include-path` to `false`. NOTE: For some implementations, such as `BlockingLoadBalancerClient`, request and response data might not be available, as we establish generic types from arguments and might not be able to determine the types and read the data. diff --git a/docs/modules/ROOT/partials/_configprops.adoc b/docs/modules/ROOT/partials/_configprops.adoc index 0f7da897..7d261e79 100644 --- a/docs/modules/ROOT/partials/_configprops.adoc +++ b/docs/modules/ROOT/partials/_configprops.adoc @@ -66,6 +66,7 @@ |spring.cloud.loadbalancer.retry.retryable-exceptions | `+++{}+++` | A `Set` of `Throwable` classes that should trigger a retry. |spring.cloud.loadbalancer.retry.retryable-status-codes | `+++{}+++` | A `Set` of status codes that should trigger a retry. |spring.cloud.loadbalancer.service-discovery.timeout | | String representation of Duration of the timeout for calls to service discovery. +|spring.cloud.loadbalancer.stats.include-path | `+++true+++` | Indicates whether the {@code path} should be added to {@code uri} tag in metrics. When {@link RestTemplate} is used to execute load-balanced requests with high cardinality paths, setting it to {@code false} is recommended. |spring.cloud.loadbalancer.stats.micrometer.enabled | `+++false+++` | Enables Spring Cloud LoadBalancer Micrometer stats. |spring.cloud.loadbalancer.sticky-session.add-service-instance-cookie | `+++false+++` | Indicates whether a cookie with the newly selected instance should be added by LoadBalancer. |spring.cloud.loadbalancer.sticky-session.instance-id-cookie-name | `+++sc-lb-instance-id+++` | The name of the cookie holding the preferred instance id. diff --git a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java index f8769ffe..49a0d80a 100644 --- a/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java +++ b/spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerProperties.java @@ -103,7 +103,7 @@ public class LoadBalancerProperties { /** * Properties for LoadBalancer metrics. */ - private Metrics metrics = new Metrics(); + private Stats stats = new Stats(); public HealthCheck getHealthCheck() { return healthCheck; @@ -170,12 +170,12 @@ public class LoadBalancerProperties { this.callGetWithRequestOnDelegates = callGetWithRequestOnDelegates; } - public Metrics getMetrics() { - return metrics; + public Stats getStats() { + return stats; } - public void setMetrics(Metrics metrics) { - this.metrics = metrics; + public void setStats(Stats stats) { + this.stats = stats; } public static class StickySession { @@ -553,21 +553,21 @@ public class LoadBalancerProperties { } - public static class Metrics { + public static class Stats { /** - * Indicates whether the `uri` tag should be added to metrics. When - * {@link RestTemplate} is used to execute load-balanced requests with high - * cardinality paths, setting it to {@code false} is recommended. + * Indicates whether the {@code path} should be added to {@code uri} tag in + * metrics. When {@link RestTemplate} is used to execute load-balanced requests + * with high cardinality paths, setting it to {@code false} is recommended. */ - private boolean includeUriTag = true; + private boolean includePath = true; - public boolean isIncludeUriTag() { - return includeUriTag; + public boolean isIncludePath() { + return includePath; } - public void setIncludeUriTag(boolean includeUriTag) { - this.includeUriTag = includeUriTag; + public void setIncludePath(boolean includePath) { + this.includePath = includePath; } } diff --git a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java index 8f5be892..42afc64f 100644 --- a/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java +++ b/spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/stats/LoadBalancerTags.java @@ -84,7 +84,7 @@ class LoadBalancerTags { } private String getPath(RequestData requestData) { - if (!properties.getMetrics().isIncludeUriTag()) { + if (!properties.getStats().isIncludePath()) { return UNKNOWN; } Optional uriTemplateValue = Optional.ofNullable(requestData.getAttributes()) diff --git a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java index a9bcbb62..27d360dd 100644 --- a/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java +++ b/spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/stats/MicrometerStatsLoadBalancerLifecycleTests.java @@ -96,7 +96,7 @@ class MicrometerStatsLoadBalancerLifecycleTests { void shouldNotAddPathValueWhenDisabled() { ReactiveLoadBalancer.Factory factory = mock(ReactiveLoadBalancer.Factory.class); LoadBalancerProperties properties = new LoadBalancerProperties(); - properties.getMetrics().setIncludeUriTag(false); + properties.getStats().setIncludePath(false); when(factory.getProperties("test")).thenReturn(properties); MicrometerStatsLoadBalancerLifecycle statsLifecycle = new MicrometerStatsLoadBalancerLifecycle(meterRegistry, factory);