Skip to content

Commit 53cf809

Browse files
Refactored requires post-processing flag (#8104)
1 parent 772d178 commit 53cf809

File tree

6 files changed

+14
-15
lines changed

6 files changed

+14
-15
lines changed

dd-java-agent/appsec/src/main/java/com/datadog/appsec/gateway/GatewayBridge.java

+1-10
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@
3333
import datadog.trace.api.internal.TraceSegment;
3434
import datadog.trace.api.telemetry.RuleType;
3535
import datadog.trace.api.telemetry.WafMetricCollector;
36-
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
3736
import datadog.trace.bootstrap.instrumentation.api.Tags;
3837
import datadog.trace.bootstrap.instrumentation.api.URIDataAdapter;
3938
import datadog.trace.util.stacktrace.StackTraceEvent;
@@ -618,18 +617,10 @@ private NoopFlow onRequestEnded(RequestContext ctx_, IGSpanInfo spanInfo) {
618617
}
619618
}
620619

621-
ctx.close(requiresPostProcessing(spanInfo));
620+
ctx.close(spanInfo.isRequiresPostProcessing());
622621
return NoopFlow.INSTANCE;
623622
}
624623

625-
private boolean requiresPostProcessing(final IGSpanInfo spanInfo) {
626-
if (!(spanInfo instanceof AgentSpan)) {
627-
return true; // be conservative
628-
}
629-
final AgentSpan span = (AgentSpan) spanInfo;
630-
return span.isRequiresPostProcessing();
631-
}
632-
633624
private Flow<Void> onRequestHeadersDone(RequestContext ctx_) {
634625
AppSecRequestContext ctx = ctx_.getData(RequestContextSlot.APPSEC);
635626
if (ctx == null || ctx.isReqDataPublished()) {

dd-trace-core/src/main/java/datadog/trace/common/writer/TraceProcessingWorker.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import datadog.trace.common.writer.ddagent.PrioritizationStrategy;
1414
import datadog.trace.core.CoreSpan;
1515
import datadog.trace.core.DDSpan;
16-
import datadog.trace.core.DDSpanContext;
1716
import datadog.trace.core.monitor.HealthMetrics;
1817
import datadog.trace.core.postprocessor.SpanPostProcessor;
1918
import java.util.ArrayList;
@@ -266,8 +265,7 @@ private void maybeTracePostProcessing(List<DDSpan> trace) {
266265
// Filter spans that need post-processing
267266
List<DDSpan> spansToPostProcess = null;
268267
for (DDSpan span : trace) {
269-
DDSpanContext context = span.context();
270-
if (context != null && context.isRequiresPostProcessing()) {
268+
if (span.isRequiresPostProcessing()) {
271269
if (spansToPostProcess == null) {
272270
spansToPostProcess = new ArrayList<>();
273271
}

dd-trace-core/src/main/java/datadog/trace/core/DDSpan.java

+5
Original file line numberDiff line numberDiff line change
@@ -841,6 +841,11 @@ public boolean isRequiresPostProcessing() {
841841
return context.isRequiresPostProcessing();
842842
}
843843

844+
@Override
845+
public void setRequiresPostProcessing(boolean requiresPostProcessing) {
846+
context.setRequiresPostProcessing(requiresPostProcessing);
847+
}
848+
844849
// to be accessible in Spock spies, which the field wouldn't otherwise be
845850
public long getStartTimeNano() {
846851
return startTimeNano;

internal-api/src/main/java/datadog/trace/api/gateway/IGSpanInfo.java

+4
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,8 @@ public interface IGSpanInfo {
1616
void setRequestBlockingAction(Flow.Action.RequestBlockingAction rba);
1717

1818
Flow.Action.RequestBlockingAction getRequestBlockingAction();
19+
20+
boolean isRequiresPostProcessing();
21+
22+
void setRequiresPostProcessing(boolean requiresPostProcessing);
1923
}

internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentSpan.java

-2
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ public interface AgentSpan extends MutableSpan, IGSpanInfo, ImplicitContextKeyed
141141

142142
void addLink(AgentSpanLink link);
143143

144-
boolean isRequiresPostProcessing();
145-
146144
@Override
147145
default ScopedContext storeInto(ScopedContext context) {
148146
return context.with(ScopedContextKey.SPAN_KEY, this);

internal-api/src/main/java/datadog/trace/bootstrap/instrumentation/api/AgentTracer.java

+3
Original file line numberDiff line numberDiff line change
@@ -865,6 +865,9 @@ public boolean isOutbound() {
865865
public boolean isRequiresPostProcessing() {
866866
return false;
867867
}
868+
869+
@Override
870+
public void setRequiresPostProcessing(boolean requiresPostProcessing) {}
868871
}
869872

870873
public static final class NoopAgentScope implements AgentScope {

0 commit comments

Comments
 (0)