Skip to content

Commit a5d58e2

Browse files
committed
Hardcode eligible span kind since agent backpropagated are deprecated
1 parent f1139d7 commit a5d58e2

File tree

6 files changed

+17
-33
lines changed

6 files changed

+17
-33
lines changed

communication/src/main/java/datadog/communication/ddagent/DDAgentFeaturesDiscovery.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ public class DDAgentFeaturesDiscovery implements DroppingPolicy {
9292
private volatile String version;
9393
private volatile String telemetryProxyEndpoint;
9494
private volatile Set<String> peerTags = emptySet();
95-
private volatile Set<String> spanKindsToComputedStats = emptySet();
9695

9796
private long lastTimeDiscovered;
9897

@@ -127,7 +126,6 @@ private void reset() {
127126
lastTimeDiscovered = 0;
128127
telemetryProxyEndpoint = null;
129128
peerTags = emptySet();
130-
spanKindsToComputedStats = emptySet();
131129
}
132130

133131
/** Run feature discovery, unconditionally. */
@@ -310,12 +308,6 @@ private boolean processInfoResponse(String response) {
310308
peer_tags instanceof List
311309
? unmodifiableSet(new HashSet<>((List<String>) peer_tags))
312310
: emptySet();
313-
314-
Object span_kinds = map.get("span_kinds_stats_computed");
315-
spanKindsToComputedStats =
316-
span_kinds instanceof List
317-
? unmodifiableSet(new HashSet<>((List<String>) span_kinds))
318-
: emptySet();
319311
}
320312
try {
321313
state = Strings.sha256(response);
@@ -377,10 +369,6 @@ public Set<String> peerTags() {
377369
return peerTags;
378370
}
379371

380-
public Set<String> spanKindsToComputedStats() {
381-
return spanKindsToComputedStats;
382-
}
383-
384372
public String getMetricsEndpoint() {
385373
return metricsEndpoint;
386374
}

communication/src/test/groovy/datadog/communication/ddagent/DDAgentFeaturesDiscoveryTest.groovy

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -462,12 +462,6 @@ class DDAgentFeaturesDiscoveryTest extends DDSpecification {
462462
"tablename",
463463
"topicname"
464464
)
465-
features.spanKindsToComputedStats().containsAll(
466-
"client",
467-
"consumer",
468-
"producer",
469-
"server"
470-
)
471465
}
472466

473467
def "should send container id as header on the info request and parse the hash in the response"() {

dd-trace-core/src/jmh/java/datadog/trace/common/metrics/ConflatingMetricsAggregatorBenchmark.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,6 @@ public boolean supportsMetrics() {
8888
public Set<String> peerTags() {
8989
return peerTags;
9090
}
91-
92-
@Override
93-
public Set<String> spanKindsToComputedStats() {
94-
return spanKinds;
95-
}
9691
}
9792

9893
@Benchmark

dd-trace-core/src/main/java/datadog/trace/common/metrics/ConflatingMetricsAggregator.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,18 @@
33
import static datadog.communication.ddagent.DDAgentFeaturesDiscovery.V6_METRICS_ENDPOINT;
44
import static datadog.trace.api.Functions.UTF8_ENCODE;
55
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND;
6+
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_CLIENT;
7+
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_CONSUMER;
8+
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_PRODUCER;
9+
import static datadog.trace.bootstrap.instrumentation.api.Tags.SPAN_KIND_SERVER;
610
import static datadog.trace.common.metrics.AggregateMetric.ERROR_TAG;
711
import static datadog.trace.common.metrics.AggregateMetric.TOP_LEVEL_TAG;
812
import static datadog.trace.common.metrics.SignalItem.ReportSignal.REPORT;
913
import static datadog.trace.common.metrics.SignalItem.StopSignal.STOP;
1014
import static datadog.trace.util.AgentThreadFactory.AgentThread.METRICS_AGGREGATOR;
1115
import static datadog.trace.util.AgentThreadFactory.THREAD_JOIN_TIMOUT_MS;
1216
import static datadog.trace.util.AgentThreadFactory.newAgentThread;
17+
import static java.util.Collections.unmodifiableSet;
1318
import static java.util.concurrent.TimeUnit.SECONDS;
1419

1520
import datadog.communication.ddagent.DDAgentFeaturesDiscovery;
@@ -26,7 +31,9 @@
2631
import datadog.trace.core.DDTraceCoreInfo;
2732
import datadog.trace.util.AgentTaskScheduler;
2833
import java.util.ArrayList;
34+
import java.util.Arrays;
2935
import java.util.Collections;
36+
import java.util.HashSet;
3037
import java.util.List;
3138
import java.util.Map;
3239
import java.util.Queue;
@@ -68,6 +75,12 @@ public final class ConflatingMetricsAggregator implements MetricsAggregator, Eve
6875
value -> UTF8BytesString.create(key + ":" + value));
6976
private static final CharSequence SYNTHETICS_ORIGIN = "synthetics";
7077

78+
private static final Set<String> ELIGIBLE_SPAN_KINDS =
79+
unmodifiableSet(
80+
new HashSet<>(
81+
Arrays.asList(
82+
SPAN_KIND_SERVER, SPAN_KIND_CLIENT, SPAN_KIND_CONSUMER, SPAN_KIND_PRODUCER)));
83+
7184
private final Set<String> ignoredResources;
7285
private final Queue<Batch> batchPool;
7386
private final NonBlockingHashMap<MetricKey, Batch> pending;
@@ -256,7 +269,7 @@ private boolean shouldComputeMetric(CoreSpan<?> span) {
256269
private boolean spanKindEligible(CoreSpan<?> span) {
257270
final Object spanKind = span.getTag(SPAN_KIND);
258271
// use toString since it could be a CharSequence...
259-
return spanKind != null && features.spanKindsToComputedStats().contains(spanKind.toString());
272+
return spanKind != null && ELIGIBLE_SPAN_KINDS.contains(spanKind.toString());
260273
}
261274

262275
private boolean publish(CoreSpan<?> span, boolean isTopLevel) {

dd-trace-core/src/test/groovy/datadog/trace/common/metrics/ConflatingMetricAggregatorTest.groovy

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
141141
Sink sink = Stub(Sink)
142142
DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery)
143143
features.supportsMetrics() >> true
144-
features.spanKindsToComputedStats() >> ["client", "server", "producer", "consumer"]
145144
features.peerTags() >> []
146145
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(empty,
147146
features, sink, writer, 10, queueSize, reportingInterval, SECONDS)
@@ -180,6 +179,8 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
180179
where:
181180
kind | statsComputed
182181
"client" | true
182+
"producer" | true
183+
"consumer" | true
183184
UTF8BytesString.create("server") | true
184185
"internal" | false
185186
null | false
@@ -191,7 +192,6 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
191192
Sink sink = Stub(Sink)
192193
DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery)
193194
features.supportsMetrics() >> true
194-
features.spanKindsToComputedStats() >> ["grault"]
195195
features.peerTags() >>> [["country"], ["country", "georegion"],]
196196
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(empty,
197197
features, sink, writer, 10, queueSize, reportingInterval, SECONDS)
@@ -299,7 +299,6 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
299299
Sink sink = Stub(Sink)
300300
DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery)
301301
features.supportsMetrics() >> true
302-
features.spanKindsToComputedStats() >> ["baz"]
303302
features.peerTags() >> []
304303
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(empty,
305304
features, sink, writer, 10, queueSize, reportingInterval, SECONDS)
@@ -365,7 +364,6 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
365364
Sink sink = Stub(Sink)
366365
DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery)
367366
features.supportsMetrics() >> true
368-
features.spanKindsToComputedStats() >> ["baz"]
369367
features.peerTags() >> []
370368
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(empty,
371369
features, sink, writer, maxAggregates, queueSize, reportingInterval, SECONDS)
@@ -425,7 +423,6 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
425423
Sink sink = Stub(Sink)
426424
DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery)
427425
features.supportsMetrics() >> true
428-
features.spanKindsToComputedStats() >> ["baz"]
429426
features.peerTags() >> []
430427
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(empty,
431428
features, sink, writer, maxAggregates, queueSize, reportingInterval, SECONDS)
@@ -488,7 +485,7 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
488485
true,
489486
"baz",
490487
[]
491-
),{ AggregateMetric value ->
488+
), { AggregateMetric value ->
492489
value.getHitCount() == 1 && value.getDuration() == duration
493490
})
494491
}
@@ -516,7 +513,6 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
516513
Sink sink = Stub(Sink)
517514
DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery)
518515
features.supportsMetrics() >> true
519-
features.spanKindsToComputedStats() >> ["quux"]
520516
features.peerTags() >> []
521517
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(empty,
522518
features, sink, writer, maxAggregates, queueSize, reportingInterval, SECONDS)
@@ -573,7 +569,6 @@ class ConflatingMetricAggregatorTest extends DDSpecification {
573569
Sink sink = Stub(Sink)
574570
DDAgentFeaturesDiscovery features = Mock(DDAgentFeaturesDiscovery)
575571
features.supportsMetrics() >> true
576-
features.spanKindsToComputedStats() >> ["garply"]
577572
features.peerTags() >> []
578573
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(empty,
579574
features, sink, writer, maxAggregates, queueSize, 1, SECONDS)

dd-trace-core/src/test/groovy/datadog/trace/common/metrics/FootprintForkedTest.groovy

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ class FootprintForkedTest extends DDSpecification {
2727
ValidatingSink sink = new ValidatingSink(latch)
2828
DDAgentFeaturesDiscovery features = Stub(DDAgentFeaturesDiscovery) {
2929
it.supportsMetrics() >> true
30-
it.spanKindsToComputedStats() >> []
3130
it.peerTags() >> []
3231
}
3332
ConflatingMetricsAggregator aggregator = new ConflatingMetricsAggregator(

0 commit comments

Comments
 (0)