@@ -35,6 +35,7 @@ import static datadog.trace.api.Config.SERVICE_MAPPING
3535import static datadog.trace.api.Config.SERVICE_NAME
3636import static datadog.trace.api.Config.SPAN_TAGS
3737import static datadog.trace.api.Config.TRACE_AGENT_PORT
38+ import static datadog.trace.api.Config.TRACE_REPORT_HOSTNAME
3839import static datadog.trace.api.Config.TRACE_ENABLED
3940import static datadog.trace.api.Config.TRACE_RESOLVER_ENABLED
4041import static datadog.trace.api.Config.WRITER_TYPE
@@ -56,6 +57,7 @@ class ConfigTest extends Specification {
5657 private static final DD_JMXFETCH_METRICS_CONFIGS_ENV = " DD_JMXFETCH_METRICS_CONFIGS"
5758 private static final DD_TRACE_AGENT_PORT_ENV = " DD_TRACE_AGENT_PORT"
5859 private static final DD_AGENT_PORT_LEGACY_ENV = " DD_AGENT_PORT"
60+ private static final DD_TRACE_REPORT_HOSTNAME = " DD_TRACE_REPORT_HOSTNAME"
5961
6062 def " verify defaults" () {
6163 when :
@@ -78,6 +80,7 @@ class ConfigTest extends Specification {
7880 config. httpClientErrorStatuses == (400 .. 499 ). toSet()
7981 config. httpClientSplitByDomain == false
8082 config. partialFlushMinSpans == 1000
83+ config. reportHostName == false
8184 config. runtimeContextFieldInjection == true
8285 config. propagationStylesToExtract. toList() == [Config.PropagationStyle . DATADOG ]
8386 config. propagationStylesToInject. toList() == [Config.PropagationStyle . DATADOG ]
@@ -118,6 +121,7 @@ class ConfigTest extends Specification {
118121 prop. setProperty(HTTP_CLIENT_ERROR_STATUSES , " 111" )
119122 prop. setProperty(HTTP_CLIENT_HOST_SPLIT_BY_DOMAIN , " true" )
120123 prop. setProperty(PARTIAL_FLUSH_MIN_SPANS , " 15" )
124+ prop. setProperty(TRACE_REPORT_HOSTNAME , " true" )
121125 prop. setProperty(RUNTIME_CONTEXT_FIELD_INJECTION , " false" )
122126 prop. setProperty(PROPAGATION_STYLE_EXTRACT , " Datadog, B3" )
123127 prop. setProperty(PROPAGATION_STYLE_INJECT , " B3, Datadog" )
@@ -148,6 +152,7 @@ class ConfigTest extends Specification {
148152 config. httpClientErrorStatuses == (111 .. 111 ). toSet()
149153 config. httpClientSplitByDomain == true
150154 config. partialFlushMinSpans == 15
155+ config. reportHostName == true
151156 config. runtimeContextFieldInjection == false
152157 config. propagationStylesToExtract. toList() == [Config.PropagationStyle . DATADOG , Config.PropagationStyle . B3 ]
153158 config. propagationStylesToInject. toList() == [Config.PropagationStyle . B3 , Config.PropagationStyle . DATADOG ]
@@ -179,6 +184,7 @@ class ConfigTest extends Specification {
179184 System . setProperty(PREFIX + HTTP_CLIENT_ERROR_STATUSES , " 111" )
180185 System . setProperty(PREFIX + HTTP_CLIENT_HOST_SPLIT_BY_DOMAIN , " true" )
181186 System . setProperty(PREFIX + PARTIAL_FLUSH_MIN_SPANS , " 25" )
187+ System . setProperty(PREFIX + TRACE_REPORT_HOSTNAME , " true" )
182188 System . setProperty(PREFIX + RUNTIME_CONTEXT_FIELD_INJECTION , " false" )
183189 System . setProperty(PREFIX + PROPAGATION_STYLE_EXTRACT , " Datadog, B3" )
184190 System . setProperty(PREFIX + PROPAGATION_STYLE_INJECT , " B3, Datadog" )
@@ -209,6 +215,7 @@ class ConfigTest extends Specification {
209215 config. httpClientErrorStatuses == (111 .. 111 ). toSet()
210216 config. httpClientSplitByDomain == true
211217 config. partialFlushMinSpans == 25
218+ config. reportHostName == true
212219 config. runtimeContextFieldInjection == false
213220 config. propagationStylesToExtract. toList() == [Config.PropagationStyle . DATADOG , Config.PropagationStyle . B3 ]
214221 config. propagationStylesToInject. toList() == [Config.PropagationStyle . B3 , Config.PropagationStyle . DATADOG ]
@@ -228,6 +235,7 @@ class ConfigTest extends Specification {
228235 environmentVariables. set(DD_PROPAGATION_STYLE_EXTRACT , " B3 Datadog" )
229236 environmentVariables. set(DD_PROPAGATION_STYLE_INJECT , " Datadog B3" )
230237 environmentVariables. set(DD_JMXFETCH_METRICS_CONFIGS_ENV , " some/file" )
238+ environmentVariables. set(DD_TRACE_REPORT_HOSTNAME , " true" )
231239
232240 when :
233241 def config = new Config ()
@@ -239,6 +247,7 @@ class ConfigTest extends Specification {
239247 config. propagationStylesToExtract. toList() == [Config.PropagationStyle . B3 , Config.PropagationStyle . DATADOG ]
240248 config. propagationStylesToInject. toList() == [Config.PropagationStyle . DATADOG , Config.PropagationStyle . B3 ]
241249 config. jmxFetchMetricsConfigs == [" some/file" ]
250+ config. reportHostName == true
242251 }
243252
244253 def " sys props override env vars" () {
@@ -649,4 +658,27 @@ class ConfigTest extends Specification {
649658 listString | list
650659 " " | []
651660 }
661+
662+ def " verify hostname not added to root span tags by default " () {
663+ setup:
664+ Properties properties = new Properties()
665+
666+ when:
667+ def config = Config.get(properties)
668+
669+ then:
670+ !config.localRootSpanTags.containsKey('_dd.hostname')
671+ }
672+
673+ def " verify configuration to add hostname to root span tags" () {
674+ setup:
675+ Properties properties = new Properties()
676+ properties.setProperty(TRACE_REPORT_HOSTNAME, 'true')
677+
678+ when:
679+ def config = Config.get(properties)
680+
681+ then:
682+ config.localRootSpanTags.get('_dd.hostname') == InetAddress.localHost.hostName
683+ }
652684}
0 commit comments