diff --git a/docs/src/main/asciidoc/spring-cloud-netflix.adoc b/docs/src/main/asciidoc/spring-cloud-netflix.adoc index da9a9a3e2..38207a1f6 100644 --- a/docs/src/main/asciidoc/spring-cloud-netflix.adoc +++ b/docs/src/main/asciidoc/spring-cloud-netflix.adoc @@ -477,7 +477,7 @@ turbine: aggregator: clusterConfig: SYSTEM,USER appConfig: customers,stores,ui,admin - clusterNameExpression: metadata.cluster + clusterNameExpression: metadata['cluster'] ---- In this case, the cluster name from 4 services is pulled from their metadata map, and is expected to have values that include "SYSTEM" and "USER". diff --git a/spring-cloud-netflix-turbine/src/test/java/org/springframework/cloud/netflix/turbine/EurekaInstanceDiscoveryTest.java b/spring-cloud-netflix-turbine/src/test/java/org/springframework/cloud/netflix/turbine/EurekaInstanceDiscoveryTest.java index f5f3d066d..b4b46033e 100644 --- a/spring-cloud-netflix-turbine/src/test/java/org/springframework/cloud/netflix/turbine/EurekaInstanceDiscoveryTest.java +++ b/spring-cloud-netflix-turbine/src/test/java/org/springframework/cloud/netflix/turbine/EurekaInstanceDiscoveryTest.java @@ -50,4 +50,16 @@ public class EurekaInstanceDiscoveryTest { assertEquals("clusterName is wrong", asgName, clusterName); } + @Test + public void testGetClusterNameInstanceMetadataMapExpression() { + TurbineProperties turbineProperties = new TurbineProperties(); + turbineProperties.setClusterNameExpression("metadata['cluster']"); + EurekaInstanceDiscovery discovery = new EurekaInstanceDiscovery(turbineProperties); + String metadataProperty = "myCluster"; + InstanceInfo instanceInfo = InstanceInfo.Builder.newBuilder() + .setAppName("testApp").add("cluster", metadataProperty).build(); + String clusterName = discovery.getClusterName(instanceInfo); + assertEquals("clusterName is wrong", metadataProperty, clusterName); + } + }