Skip to content

Commit f646940

Browse files
mccullsmtoffl01
authored andcommitted
Remove ScopeSource enum (#8565)
1 parent 7475368 commit f646940

File tree

15 files changed

+56
-73
lines changed

15 files changed

+56
-73
lines changed

dd-java-agent/instrumentation/opentelemetry/opentelemetry-0.3/src/test/groovy/TypeConverterTest.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import datadog.trace.api.DDSpanId
33
import datadog.trace.api.DDTraceId
44
import datadog.trace.api.sampling.PrioritySampling
55
import datadog.trace.api.datastreams.NoopPathwayContext
6-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource
76
import datadog.trace.core.DDSpan
87
import datadog.trace.core.DDSpanContext
98
import datadog.trace.core.PendingTrace
@@ -52,8 +51,8 @@ class TypeConverterTest extends AgentTestRunner {
5251
def context = createTestSpanContext()
5352
def span1 = new DDSpan("test", 0, context, null)
5453
def span2 = new DDSpan("test", 0, context, null)
55-
def scope1 = scopeManager.activate(span1, ScopeSource.MANUAL)
56-
def scope2 = scopeManager.activate(span2, ScopeSource.MANUAL)
54+
def scope1 = scopeManager.activateManualSpan(span1)
55+
def scope2 = scopeManager.activateManualSpan(span2)
5756
expect:
5857
// return the same wrapper for the same scope
5958
typeConverter.toScope(scope1) is typeConverter.toScope(scope1)

dd-java-agent/instrumentation/opentracing/api-0.31/src/test/groovy/TypeConverterTest.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import datadog.trace.api.DDSpanId
33
import datadog.trace.api.DDTraceId
44
import datadog.trace.api.sampling.PrioritySampling
55
import datadog.trace.api.datastreams.NoopPathwayContext
6-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource
76
import datadog.trace.core.DDSpan
87
import datadog.trace.core.DDSpanContext
98
import datadog.trace.core.PendingTrace
@@ -57,8 +56,8 @@ class TypeConverterTest extends AgentTestRunner {
5756
def context = createTestSpanContext()
5857
def span1 = new DDSpan("test", 0, context, null)
5958
def span2 = new DDSpan("test", 0, context, null)
60-
def scope1 = scopeManager.activate(span1, ScopeSource.MANUAL)
61-
def scope2 = scopeManager.activate(span2, ScopeSource.MANUAL)
59+
def scope1 = scopeManager.activateManualSpan(span1)
60+
def scope2 = scopeManager.activateManualSpan(span2)
6261
expect:
6362
// return the same wrapper for the same scope
6463
typeConverter.toScope(scope1, true) is typeConverter.toScope(scope1, true)

dd-java-agent/instrumentation/opentracing/api-0.32/src/test/groovy/TypeConverterTest.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import datadog.trace.api.DDSpanId
33
import datadog.trace.api.DDTraceId
44
import datadog.trace.api.sampling.PrioritySampling
55
import datadog.trace.api.datastreams.NoopPathwayContext
6-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource
76
import datadog.trace.core.DDSpan
87
import datadog.trace.core.DDSpanContext
98
import datadog.trace.core.PendingTrace
@@ -57,8 +56,8 @@ class TypeConverterTest extends AgentTestRunner {
5756
def context = createTestSpanContext()
5857
def span1 = new DDSpan("test", 0, context, null)
5958
def span2 = new DDSpan("test", 0, context, null)
60-
def scope1 = scopeManager.activate(span1, ScopeSource.MANUAL)
61-
def scope2 = scopeManager.activate(span2, ScopeSource.MANUAL)
59+
def scope1 = scopeManager.activateManualSpan(span1)
60+
def scope2 = scopeManager.activateManualSpan(span2)
6261
expect:
6362
// return the same wrapper for the same scope
6463
typeConverter.toScope(scope1, true) is typeConverter.toScope(scope1, true)

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

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package datadog.trace.core;
22

33
import static datadog.communication.monitor.DDAgentStatsDClientManager.statsDClientManager;
4-
import static datadog.trace.api.ConfigDefaults.DEFAULT_ASYNC_PROPAGATING;
54
import static datadog.trace.api.DDTags.DJM_ENABLED;
65
import static datadog.trace.api.DDTags.DSM_ENABLED;
76
import static datadog.trace.api.DDTags.PROFILING_CONTEXT_ENGINE;
@@ -61,7 +60,6 @@
6160
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
6261
import datadog.trace.bootstrap.instrumentation.api.BlackHoleSpan;
6362
import datadog.trace.bootstrap.instrumentation.api.ProfilingContextIntegration;
64-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource;
6563
import datadog.trace.bootstrap.instrumentation.api.ScopeState;
6664
import datadog.trace.bootstrap.instrumentation.api.TagContext;
6765
import datadog.trace.civisibility.interceptor.CiVisibilityApmProtocolInterceptor;
@@ -908,12 +906,12 @@ public AgentSpan startSpan(
908906

909907
@Override
910908
public AgentScope activateSpan(AgentSpan span) {
911-
return scopeManager.activate(span, ScopeSource.INSTRUMENTATION, DEFAULT_ASYNC_PROPAGATING);
909+
return scopeManager.activateSpan(span);
912910
}
913911

914912
@Override
915913
public AgentScope activateManualSpan(final AgentSpan span) {
916-
return scopeManager.activate(span, ScopeSource.MANUAL /* inherit async propagation flag */);
914+
return scopeManager.activateManualSpan(span);
917915
}
918916

919917
@Override
@@ -923,7 +921,7 @@ public AgentScope.Continuation captureActiveSpan() {
923921

924922
@Override
925923
public AgentScope.Continuation captureSpan(final AgentSpan span) {
926-
return scopeManager.captureSpan(span, ScopeSource.INSTRUMENTATION.id());
924+
return scopeManager.captureSpan(span);
927925
}
928926

929927
@Override

dd-trace-core/src/main/java/datadog/trace/core/monitor/HealthMetrics.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public void onFinishSpan() {}
5151

5252
public void onCreateTrace() {}
5353

54-
public void onScopeCloseError(int scopeSource) {}
54+
public void onScopeCloseError(boolean manual) {}
5555

5656
public void onCaptureContinuation() {}
5757

dd-trace-core/src/main/java/datadog/trace/core/monitor/TracerHealthMetrics.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111

1212
import datadog.trace.api.StatsDClient;
1313
import datadog.trace.api.cache.RadixTreeCache;
14-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource;
1514
import datadog.trace.common.writer.RemoteApi;
1615
import datadog.trace.core.DDSpan;
1716
import datadog.trace.util.AgentTaskScheduler;
@@ -282,9 +281,9 @@ public void onCreateTrace() {
282281
}
283282

284283
@Override
285-
public void onScopeCloseError(int scopeSource) {
284+
public void onScopeCloseError(boolean manual) {
286285
scopeCloseErrors.inc();
287-
if (scopeSource == ScopeSource.MANUAL.id()) {
286+
if (manual) {
288287
userScopeCloseErrors.inc();
289288
}
290289
}

dd-trace-core/src/main/java/datadog/trace/core/scopemanager/ContinuableScope.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
77
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
88
import datadog.trace.bootstrap.instrumentation.api.AttachableWrapper;
9-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource;
109
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
1110
import javax.annotation.Nonnull;
1211

1312
class ContinuableScope implements AgentScope, AttachableWrapper {
13+
14+
// different sources of scopes
15+
static final byte INSTRUMENTATION = 0;
16+
static final byte MANUAL = 1;
17+
static final byte ITERATION = 2;
18+
1419
private final ContinuableScopeManager scopeManager;
1520

1621
final AgentSpan span; // package-private so scopeManager can access it directly
@@ -58,8 +63,8 @@ public final void close() {
5863
}
5964

6065
byte source = source();
61-
scopeManager.healthMetrics.onScopeCloseError(source);
62-
if (source == ScopeSource.MANUAL.id() && scopeManager.strictMode) {
66+
scopeManager.healthMetrics.onScopeCloseError(source == MANUAL);
67+
if (source == MANUAL && scopeManager.strictMode) {
6368
throw new RuntimeException("Tried to close " + span + " scope when not on top");
6469
}
6570
}

dd-trace-core/src/main/java/datadog/trace/core/scopemanager/ContinuableScopeManager.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import static datadog.trace.api.ConfigDefaults.DEFAULT_ASYNC_PROPAGATING;
44
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopScope;
55
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.noopSpan;
6+
import static datadog.trace.core.scopemanager.ContinuableScope.INSTRUMENTATION;
7+
import static datadog.trace.core.scopemanager.ContinuableScope.ITERATION;
8+
import static datadog.trace.core.scopemanager.ContinuableScope.MANUAL;
69
import static java.util.concurrent.TimeUnit.MINUTES;
710
import static java.util.concurrent.TimeUnit.NANOSECONDS;
811
import static java.util.concurrent.TimeUnit.SECONDS;
@@ -16,7 +19,6 @@
1619
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
1720
import datadog.trace.bootstrap.instrumentation.api.ProfilerContext;
1821
import datadog.trace.bootstrap.instrumentation.api.ProfilingContextIntegration;
19-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource;
2022
import datadog.trace.bootstrap.instrumentation.api.ScopeState;
2123
import datadog.trace.bootstrap.instrumentation.api.ScopeStateAware;
2224
import datadog.trace.core.monitor.HealthMetrics;
@@ -39,6 +41,7 @@
3941
* ScopeInterceptors to provide additional functionality.
4042
*/
4143
public final class ContinuableScopeManager implements ScopeStateAware {
44+
4245
static final Logger log = LoggerFactory.getLogger(ContinuableScopeManager.class);
4346
static final RatelimitedLogger ratelimitedLog = new RatelimitedLogger(log, 1, MINUTES);
4447
static final long iterationKeepAlive =
@@ -82,13 +85,12 @@ public ContinuableScopeManager(
8285
this.profilingContextIntegration = profilingContextIntegration;
8386
}
8487

85-
public AgentScope activate(final AgentSpan span, final ScopeSource source) {
86-
return activate(span, source.id(), false, /* ignored */ false);
88+
public AgentScope activateSpan(final AgentSpan span) {
89+
return activate(span, INSTRUMENTATION, true, DEFAULT_ASYNC_PROPAGATING);
8790
}
8891

89-
public AgentScope activate(
90-
final AgentSpan span, final ScopeSource source, boolean isAsyncPropagating) {
91-
return activate(span, source.id(), true, isAsyncPropagating);
92+
public AgentScope activateManualSpan(final AgentSpan span) {
93+
return activate(span, MANUAL, false, /* ignored */ false);
9294
}
9395

9496
public AgentScope.Continuation captureActiveSpan() {
@@ -100,7 +102,11 @@ public AgentScope.Continuation captureActiveSpan() {
100102
}
101103
}
102104

103-
public AgentScope.Continuation captureSpan(final AgentSpan span, byte source) {
105+
public AgentScope.Continuation captureSpan(final AgentSpan span) {
106+
return captureSpan(span, INSTRUMENTATION);
107+
}
108+
109+
private AgentScope.Continuation captureSpan(final AgentSpan span, byte source) {
104110
ScopeContinuation continuation = new ScopeContinuation(this, span, source);
105111
continuation.register();
106112
healthMetrics.onCaptureContinuation();
@@ -193,7 +199,7 @@ public void closePrevious(final boolean finishSpan) {
193199

194200
// close any immediately previous iteration scope
195201
final ContinuableScope top = scopeStack.top;
196-
if (top != null && top.source() == ScopeSource.ITERATION.id()) {
202+
if (top != null && top.source() == ITERATION) {
197203
if (iterationKeepAlive > 0) { // skip depth check because cancelling is cheap
198204
cancelRootIterationScopeCleanup(scopeStack, top);
199205
}
@@ -223,8 +229,7 @@ public AgentScope activateNext(final AgentSpan span) {
223229
boolean asyncPropagation = top != null ? top.isAsyncPropagating() : DEFAULT_ASYNC_PROPAGATING;
224230

225231
final ContinuableScope scope =
226-
new ContinuableScope(
227-
this, span, ScopeSource.ITERATION.id(), asyncPropagation, createScopeState(span));
232+
new ContinuableScope(this, span, ITERATION, asyncPropagation, createScopeState(span));
228233

229234
if (iterationKeepAlive > 0 && currentDepth == 0) {
230235
// no surrounding scope to aid cleanup, so use background task instead

dd-trace-core/src/main/java/datadog/trace/core/scopemanager/ScopeStack.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
package datadog.trace.core.scopemanager;
22

3+
import static datadog.trace.core.scopemanager.ContinuableScope.ITERATION;
4+
35
import datadog.trace.bootstrap.instrumentation.api.ProfilingContextIntegration;
4-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource;
56
import java.util.ArrayDeque;
67

78
/**
@@ -77,7 +78,7 @@ boolean checkTop(final ContinuableScope expectedScope) {
7778
*/
7879
final boolean checkOverdueScopes(final ContinuableScope expectedScope) {
7980
// we already know 'top' isn't the expected scope, so just need to check its source
80-
if (top == null || top.source() != ScopeSource.ITERATION.id()) {
81+
if (top == null || top.source() != ITERATION) {
8182
return false;
8283
}
8384
// avoid calling close() as we're already in that method, instead just clear any
@@ -86,7 +87,7 @@ final boolean checkOverdueScopes(final ContinuableScope expectedScope) {
8687
top.span.finishWithEndToEnd();
8788
// now do the same for any previous iteration scopes ahead of the expected scope
8889
for (ContinuableScope scope : stack) {
89-
if (scope.source() != ScopeSource.ITERATION.id()) {
90+
if (scope.source() != ITERATION) {
9091
return expectedScope.equals(scope);
9192
} else {
9293
scope.clearReferences();

dd-trace-core/src/test/groovy/datadog/trace/core/PendingTraceBufferTest.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import datadog.trace.api.DDTraceId
88
import datadog.trace.api.flare.TracerFlare
99
import datadog.trace.api.time.SystemTimeSource
1010
import datadog.trace.api.datastreams.NoopPathwayContext
11-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource
1211
import datadog.trace.context.TraceScope
1312
import datadog.trace.core.monitor.HealthMetrics
1413
import datadog.trace.core.propagation.PropagationTags
@@ -495,8 +494,8 @@ class PendingTraceBufferTest extends DDSpecification {
495494

496495

497496
def addContinuation(DDSpan span) {
498-
def scope = scopeManager.activate(span, ScopeSource.INSTRUMENTATION, true)
499-
continuations << scopeManager.captureSpan(span, ScopeSource.INSTRUMENTATION.id())
497+
def scope = scopeManager.activateSpan(span)
498+
continuations << scopeManager.captureSpan(span)
500499
scope.close()
501500
return span
502501
}

dd-trace-core/src/test/groovy/datadog/trace/core/monitor/HealthMetricsTest.groovy

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package datadog.trace.core.monitor
22

33
import datadog.trace.api.StatsDClient
44
import datadog.trace.api.sampling.PrioritySampling
5-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource
65
import datadog.trace.common.writer.RemoteApi
76
import datadog.trace.common.writer.RemoteWriter
87
import spock.lang.Ignore
@@ -365,21 +364,21 @@ class HealthMetricsTest extends Specification {
365364
}
366365
def "test onScopeCloseError"() {
367366
setup:
368-
def latch = new CountDownLatch(1 + (source == ScopeSource.MANUAL ? 1 : 0))
367+
def latch = new CountDownLatch(1 + (manual ? 1 : 0))
369368
def healthMetrics = new TracerHealthMetrics(new Latched(statsD, latch), 100, TimeUnit.MILLISECONDS)
370369
healthMetrics.start()
371370
when:
372-
healthMetrics.onScopeCloseError(source.id())
371+
healthMetrics.onScopeCloseError(manual)
373372
latch.await(5, TimeUnit.SECONDS)
374373
then:
375374
1 * statsD.count("scope.close.error", 1, _)
376-
if (source == ScopeSource.MANUAL) {
375+
if (manual) {
377376
1 * statsD.count("scope.user.close.error", 1, _)
378377
}
379378
cleanup:
380379
healthMetrics.close()
381380
where:
382-
source << ScopeSource.values()
381+
manual << [false, true]
383382
}
384383
def "test onScopeStackOverflow"() {
385384
setup:

dd-trace-core/src/test/groovy/datadog/trace/core/scopemanager/ScopeManagerDepthTest.groovy

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package datadog.trace.core.scopemanager
33
import datadog.trace.api.config.TracerConfig
44
import datadog.trace.bootstrap.instrumentation.api.AgentScope
55
import datadog.trace.bootstrap.instrumentation.api.AgentSpan
6-
import datadog.trace.bootstrap.instrumentation.api.ScopeSource
76
import datadog.trace.common.writer.ListWriter
87
import datadog.trace.core.test.DDCoreSpecification
98

@@ -35,7 +34,7 @@ class ScopeManagerDepthTest extends DDCoreSpecification {
3534
scope == noopScope()
3635

3736
when: "activate a noop scope over the limit"
38-
scope = scopeManager.activate(noopSpan(), ScopeSource.MANUAL)
37+
scope = scopeManager.activateManualSpan(noopSpan())
3938

4039
then: "still have a noop instance"
4140
scope == noopScope()
@@ -77,7 +76,7 @@ class ScopeManagerDepthTest extends DDCoreSpecification {
7776
scopeManager.scopeStack().depth() == defaultLimit + 1
7877

7978
when: "activate a noop span"
80-
scope = scopeManager.activate(noopSpan(), ScopeSource.MANUAL)
79+
scope = scopeManager.activateManualSpan(noopSpan())
8180

8281
then: "a real instance is still returned"
8382
scope != noopScope()

0 commit comments

Comments
 (0)