Skip to content

Commit

Permalink
Merge pull request #7296 from DataDog/bbujon/refactor-scope-listener
Browse files Browse the repository at this point in the history
Reduce scope listener API
  • Loading branch information
PerfectSlayer authored Jul 17, 2024
2 parents 2e11acc + 086ab60 commit 459a6aa
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 42 deletions.
Original file line number Diff line number Diff line change
@@ -1,35 +1,22 @@
package datadog.trace.agent.tooling.log;

import datadog.trace.api.CorrelationIdentifier;
import datadog.trace.api.DDSpanId;
import datadog.trace.api.DDTraceId;
import datadog.trace.api.InstrumenterConfig;
import datadog.trace.api.TraceConfig;
import datadog.trace.api.WithGlobalTracer;
import datadog.trace.api.scopemanager.ExtendedScopeListener;
import datadog.trace.api.scopemanager.ScopeListener;
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
import datadog.trace.bootstrap.instrumentation.api.AgentTracer.TracerAPI;

/**
* A scope listener that receives the MDC/ThreadContext put and receive methods and update the trace
* and span reference anytime a new scope is activated or closed.
*/
public abstract class LogContextScopeListener
implements ExtendedScopeListener, WithGlobalTracer.Callback {
public abstract class LogContextScopeListener implements ScopeListener, WithGlobalTracer.Callback {

@Override
public void afterScopeActivated() {}

@Override
public void afterScopeActivated(
DDTraceId traceId, long localRootSpanId, long spanId, TraceConfig traceConfig) {
if (traceConfig != null && traceConfig.isLogsInjectionEnabled()) {
if (InstrumenterConfig.get().isLogs128bTraceIdEnabled() && traceId.toHighOrderLong() != 0) {
add(CorrelationIdentifier.getTraceIdKey(), traceId.toHexString());
} else {
add(CorrelationIdentifier.getTraceIdKey(), traceId.toString());
}

add(CorrelationIdentifier.getSpanIdKey(), DDSpanId.toString(spanId));
public void afterScopeActivated() {
if (AgentTracer.traceConfig().isLogsInjectionEnabled()) {
add(CorrelationIdentifier.getTraceIdKey(), CorrelationIdentifier.getTraceId());
add(CorrelationIdentifier.getSpanIdKey(), CorrelationIdentifier.getSpanId());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

import datadog.trace.api.DDSpanId;
import datadog.trace.api.DDTraceId;
import datadog.trace.api.TraceConfig;
import datadog.trace.api.scopemanager.ExtendedScopeListener;
import java.util.ArrayDeque;
import java.util.Deque;
Expand Down Expand Up @@ -50,12 +49,11 @@ void poll() {

@Override
public void afterScopeActivated() {
afterScopeActivated(DDTraceId.ZERO, DDSpanId.ZERO, DDSpanId.ZERO, null);
afterScopeActivated(DDTraceId.ZERO, DDSpanId.ZERO);
}

@Override
public void afterScopeActivated(
DDTraceId traceId, long localRootSpanId, long spanId, TraceConfig traceConfig) {
public void afterScopeActivated(DDTraceId traceId, long spanId) {
push(traceId, spanId);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package datadog.cws.tls

import datadog.trace.api.DDSpanId

import datadog.trace.api.DDTraceId
import datadog.trace.bootstrap.instrumentation.api.AgentSpan
import datadog.trace.test.util.DDSpecification
Expand All @@ -20,8 +20,8 @@ class TlsTest extends DDSpecification {
span.getSpanId() >> 22L

when:
listener.afterScopeActivated(DDTraceId.from(11L), DDSpanId.ZERO, 12L, null)
listener.afterScopeActivated(DDTraceId.from(21L), DDSpanId.ZERO, 22L, null)
listener.afterScopeActivated(DDTraceId.from(11L), 12L)
listener.afterScopeActivated(DDTraceId.from(21L), 22L)
then:
tls.getTraceId() == DDTraceId.from(21L)
tls.getSpanId() == 22L
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,7 @@ public final void afterActivated() {

for (final ExtendedScopeListener listener : scopeManager.extendedScopeListeners) {
try {
listener.afterScopeActivated(
span.getTraceId(),
span.getLocalRootSpan().getSpanId(),
span.context().getSpanId(),
span.traceConfig());
listener.afterScopeActivated(span.getTraceId(), span.getSpanId());
} catch (Throwable e) {
ContinuableScopeManager.log.debug(
"ExtendedScopeListener threw exception in afterActivated()", e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -270,11 +270,7 @@ private void addExtendedScopeListener(final ExtendedScopeListener listener) {
AgentSpan activeSpan = activeSpan();
if (activeSpan != null && activeSpan != NoopAgentSpan.INSTANCE) {
// Notify the listener about the currently active scope
listener.afterScopeActivated(
activeSpan.getTraceId(),
activeSpan.getLocalRootSpan().getSpanId(),
activeSpan.context().getSpanId(),
activeSpan.traceConfig());
listener.afterScopeActivated(activeSpan.getTraceId(), activeSpan.getSpanId());
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package datadog.trace.core.scopemanager
import datadog.trace.agent.test.utils.ThreadUtils
import datadog.trace.api.DDTraceId
import datadog.trace.api.Stateful
import datadog.trace.api.TraceConfig
import datadog.trace.api.interceptor.MutableSpan
import datadog.trace.api.interceptor.TraceInterceptor
import datadog.trace.api.scopemanager.ExtendedScopeListener
Expand Down Expand Up @@ -1114,7 +1113,7 @@ class EventCountingExtendedListener implements ExtendedScopeListener {
}

@Override
void afterScopeActivated(DDTraceId traceId, long localRootSpanId, long spanId, TraceConfig traceConfig) {
void afterScopeActivated(DDTraceId traceId, long spanId) {
synchronized (events) {
events.add(ACTIVATE)
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
package datadog.trace.api.scopemanager;

import datadog.trace.api.DDTraceId;
import datadog.trace.api.TraceConfig;

public interface ExtendedScopeListener extends ScopeListener {
void afterScopeActivated(
DDTraceId traceId, long localRootSpanId, long spanId, TraceConfig traceConfig);
void afterScopeActivated(DDTraceId traceId, long spanId);

/** Called just after a scope is closed. */
@Override
Expand Down

0 comments on commit 459a6aa

Please sign in to comment.