From c9945ad173cd66255d106a59228ae447c703c192 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 6 Sep 2017 15:32:20 +0200 Subject: [PATCH 1/2] Added 1.2.x to whitelist --- docs/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/pom.xml b/docs/pom.xml index 0a76cded0..a7a0d8bcb 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -14,7 +14,7 @@ spring-cloud-sleuth - 1.0.x,1.1.x + 1.0.x,1.1.x,1.2.x ${basedir}/.. From 867a49bac8a40f9897b8c193228d051799cbf89a Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Tue, 19 Sep 2017 10:59:51 +0100 Subject: [PATCH 2/2] Reusing environment to get address; fixes #701 --- .../stream/ServerPropertiesHostLocator.java | 13 +++++++++++- .../ServerPropertiesEndpointLocator.java | 20 ++++++++++++++++--- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java index 2bc0c1c3b..ce7a21393 100644 --- a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java +++ b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java @@ -25,7 +25,9 @@ import org.springframework.boot.context.embedded.EmbeddedServletContainerInitial import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.commons.util.InetUtilsProperties; import org.springframework.cloud.sleuth.Span; +import org.springframework.context.EnvironmentAware; import org.springframework.context.event.EventListener; +import org.springframework.core.env.Environment; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -43,15 +45,17 @@ import org.springframework.util.StringUtils; * @author Dave Syer * @since 1.0.0 */ -public class ServerPropertiesHostLocator implements HostLocator { +public class ServerPropertiesHostLocator implements HostLocator, EnvironmentAware { private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass()); + private static final String IP_ADDRESS_PROP_NAME = "spring.cloud.client.ipAddress"; private final ServerProperties serverProperties; // Nullable private final String appName; private final InetUtils inetUtils; private final ZipkinProperties zipkinProperties; private Integer port; // Lazy assigned + private Environment environment; @Deprecated public ServerPropertiesHostLocator(ServerProperties serverProperties, String appName) { @@ -103,6 +107,9 @@ public class ServerPropertiesHostLocator implements HostLocator { if (this.serverProperties != null && this.serverProperties.getAddress() != null) { address = this.serverProperties.getAddress().getHostAddress(); } + else if (this.environment != null) { + address = this.environment.getProperty(IP_ADDRESS_PROP_NAME, String.class); + } else { address = this.inetUtils.findFirstNonLoopbackAddress().getHostAddress(); } @@ -125,4 +132,8 @@ public class ServerPropertiesHostLocator implements HostLocator { return serviceName; } + @Override + public void setEnvironment(Environment environment) { + this.environment = environment; + } } diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java index abc481d95..2975cef54 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java @@ -16,8 +16,6 @@ package org.springframework.cloud.sleuth.zipkin; -import zipkin.Endpoint; - import java.lang.invoke.MethodHandles; import java.nio.ByteBuffer; @@ -27,8 +25,11 @@ import org.springframework.boot.autoconfigure.web.ServerProperties; import org.springframework.boot.context.embedded.EmbeddedServletContainerInitializedEvent; import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.commons.util.InetUtilsProperties; +import org.springframework.context.EnvironmentAware; import org.springframework.context.event.EventListener; +import org.springframework.core.env.Environment; import org.springframework.util.StringUtils; +import zipkin.Endpoint; /** * {@link EndpointLocator} implementation that: @@ -43,15 +44,18 @@ import org.springframework.util.StringUtils; * @author Dave Syer * @since 1.0.0 */ -public class ServerPropertiesEndpointLocator implements EndpointLocator { +public class ServerPropertiesEndpointLocator implements EndpointLocator, + EnvironmentAware { private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass()); + private static final String IP_ADDRESS_PROP_NAME = "spring.cloud.client.ipAddress"; private final ServerProperties serverProperties; private final String appName; private final InetUtils inetUtils; private final ZipkinProperties zipkinProperties; private Integer port; + private Environment environment; @Deprecated public ServerPropertiesEndpointLocator(ServerProperties serverProperties,String appName) { @@ -108,8 +112,18 @@ public class ServerPropertiesEndpointLocator implements EndpointLocator { return ByteBuffer.wrap(this.serverProperties.getAddress().getAddress()) .getInt(); } + else if (this.environment != null) { + String ipAddress = this.environment + .getProperty(IP_ADDRESS_PROP_NAME, String.class); + return InetUtils.getIpAddressAsInt(ipAddress); + } else { return ByteBuffer.wrap(this.inetUtils.findFirstNonLoopbackAddress().getAddress()).getInt(); } } + + @Override + public void setEnvironment(Environment environment) { + this.environment = environment; + } }