11package datadog.trace.common.metrics
22
3+ import datadog.trace.api.Config
4+ import datadog.trace.api.ProcessTags
35import datadog.trace.api.WellKnownTags
46import datadog.trace.api.Pair
57import datadog.trace.test.util.DDSpecification
@@ -9,13 +11,18 @@ import org.msgpack.core.MessageUnpacker
911import java.nio.ByteBuffer
1012import java.util.concurrent.atomic.AtomicLongArray
1113
14+ import static datadog.trace.api.config.GeneralConfig.EXPERIMENTAL_COLLECT_PROCESS_TAGS_ENABLED
1215import static java.util.concurrent.TimeUnit.MILLISECONDS
1316import static java.util.concurrent.TimeUnit.SECONDS
1417
1518class SerializingMetricWriterTest extends DDSpecification {
1619
17- def " should produce correct message #iterationIndex" () {
20+ def " should produce correct message #iterationIndex with process tags enabled #withProcessTags " () {
1821 setup :
22+ if (withProcessTags) {
23+ injectSysConfig(EXPERIMENTAL_COLLECT_PROCESS_TAGS_ENABLED , " true" )
24+ }
25+ ProcessTags . reset()
1926 long startTime = MILLISECONDS . toNanos(System . currentTimeMillis())
2027 long duration = SECONDS . toNanos(10 )
2128 WellKnownTags wellKnownTags = new WellKnownTags (" runtimeid" , " hostname" , " env" , " service" , " version" ," language" )
@@ -43,6 +50,7 @@ class SerializingMetricWriterTest extends DDSpecification {
4350 Pair . of(new MetricKey (" resource" + i, " service" + i, " operation" + i, " type" , 0 , false ), new AggregateMetric (). recordDurations(10 , new AtomicLongArray (1L )))
4451 })
4552 ]
53+ withProcessTags << [true , false ]
4654 }
4755
4856
@@ -70,7 +78,7 @@ class SerializingMetricWriterTest extends DDSpecification {
7078 void accept (int messageCount , ByteBuffer buffer ) {
7179 MessageUnpacker unpacker = MessagePack . newDefaultUnpacker(buffer)
7280 int mapSize = unpacker. unpackMapHeader()
73- assert mapSize == 6
81+ assert mapSize == ( 6 + ( Config . get() . isExperimentalCollectProcessTagsEnabled() ? 1 : 0 ))
7482 assert unpacker. unpackString() == " RuntimeId"
7583 assert unpacker. unpackString() == wellKnownTags. getRuntimeId() as String
7684 assert unpacker. unpackString() == " Seq"
@@ -81,6 +89,10 @@ class SerializingMetricWriterTest extends DDSpecification {
8189 assert unpacker. unpackString() == wellKnownTags. getEnv() as String
8290 assert unpacker. unpackString() == " Version"
8391 assert unpacker. unpackString() == wellKnownTags. getVersion() as String
92+ if (Config . get(). isExperimentalCollectProcessTagsEnabled()) {
93+ assert unpacker. unpackString() == " ProcessTags"
94+ assert unpacker. unpackString() == ProcessTags . tagsForSerialization as String
95+ }
8496 assert unpacker. unpackString() == " Stats"
8597 int outerLength = unpacker. unpackArrayHeader()
8698 assert outerLength == 1
0 commit comments