Skip to content

Commit 07e02ea

Browse files
committed
Moved DataStreamsCheckpointer to experimental API
1 parent 9f5ee16 commit 07e02ea

13 files changed

Lines changed: 49 additions & 27 deletions

File tree

dd-trace-api/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@ excludedClassesCoverage += [
2323
'datadog.trace.api.experimental.ProfilingScope',
2424
'datadog.trace.api.experimental.ProfilingContext',
2525
'datadog.trace.api.experimental.ProfilingContextSetter.NoOp',
26-
'datadog.trace.api.datastreams.DataStreamsCheckpointer',
27-
'datadog.trace.api.datastreams.DataStreamsContextCarrier',
26+
'datadog.trace.api.experimental.DataStreamsCheckpointer',
27+
'datadog.trace.api.experimental.DataStreamsCheckpointer.NoOp',
28+
'datadog.trace.api.experimental.DataStreamsContextCarrier',
2829
'datadog.appsec.api.blocking.*',
2930
]
3031

dd-trace-api/src/main/java/datadog/trace/api/GlobalTracer.java

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

3-
import datadog.trace.api.datastreams.DataStreamsCheckpointer;
43
import datadog.trace.api.interceptor.TraceInterceptor;
54
import datadog.trace.api.internal.InternalTracer;
65
import java.util.ArrayList;
@@ -29,11 +28,6 @@ public String getSpanId() {
2928
public boolean addTraceInterceptor(TraceInterceptor traceInterceptor) {
3029
return false;
3130
}
32-
33-
@Override
34-
public DataStreamsCheckpointer getDataStreamsCheckpointer() {
35-
return null;
36-
}
3731
};
3832

3933
private static final Collection<Callback> installationCallbacks = new ArrayList<>();

dd-trace-api/src/main/java/datadog/trace/api/Tracer.java

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

3-
import datadog.trace.api.datastreams.DataStreamsCheckpointer;
43
import datadog.trace.api.interceptor.TraceInterceptor;
54

65
/** A class with Datadog tracer features. */
@@ -22,11 +21,4 @@ public interface Tracer {
2221
* @return false if an interceptor with same priority exists.
2322
*/
2423
boolean addTraceInterceptor(TraceInterceptor traceInterceptor);
25-
26-
/**
27-
* Return the global instance of the DataStreams checkpointer.
28-
*
29-
* @return DataStreamsCheckpointer instance.
30-
*/
31-
DataStreamsCheckpointer getDataStreamsCheckpointer();
3224
}

dd-trace-api/src/main/java/datadog/trace/api/datastreams/DataStreamsCheckpointer.java renamed to dd-trace-api/src/main/java/datadog/trace/api/experimental/DataStreamsCheckpointer.java

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,20 @@
1-
package datadog.trace.api.datastreams;
1+
package datadog.trace.api.experimental;
2+
3+
import datadog.trace.api.GlobalTracer;
4+
import datadog.trace.api.Tracer;
5+
import datadog.trace.api.internal.InternalTracer;
26

37
/** An interface to Data Streams checkpointer, allowing passing the context manually. */
48
public interface DataStreamsCheckpointer {
9+
static DataStreamsCheckpointer get() {
10+
Tracer tracer = GlobalTracer.get();
11+
if (tracer instanceof InternalTracer) {
12+
return ((InternalTracer) tracer).getDataStreamsCheckpointer();
13+
}
14+
15+
return NoOp.INSTANCE;
16+
}
17+
518
/**
619
* @param type The type of the checkpoint, usually the streaming technology being used. Examples:
720
* kafka, kinesis, sns etc.
@@ -21,3 +34,18 @@ public interface DataStreamsCheckpointer {
2134
*/
2235
void setProduceCheckpoint(String type, String target, DataStreamsContextCarrier carrier);
2336
}
37+
38+
final class NoOp implements DataStreamsCheckpointer {
39+
40+
public static final DataStreamsCheckpointer INSTANCE = new NoOp();
41+
42+
@Override
43+
public void setConsumeCheckpoint(String type, String source, DataStreamsContextCarrier carrier) {
44+
45+
}
46+
47+
@Override
48+
public void setProduceCheckpoint(String type, String target, DataStreamsContextCarrier carrier) {
49+
50+
}
51+
}

dd-trace-api/src/main/java/datadog/trace/api/datastreams/DataStreamsContextCarrier.java renamed to dd-trace-api/src/main/java/datadog/trace/api/experimental/DataStreamsContextCarrier.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package datadog.trace.api.datastreams;
1+
package datadog.trace.api.experimental;
22

33
import java.util.Map.Entry;
44
import java.util.Set;

dd-trace-api/src/main/java/datadog/trace/api/internal/InternalTracer.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package datadog.trace.api.internal;
22

3+
import datadog.trace.api.experimental.DataStreamsCheckpointer;
34
import datadog.trace.api.experimental.Profiling;
45

56
/**
@@ -22,4 +23,11 @@ public interface InternalTracer {
2223
Profiling getProfilingContext();
2324

2425
TraceSegment getTraceSegment();
26+
27+
/**
28+
* Return the global instance of the DataStreams checkpointer.
29+
*
30+
* @return DataStreamsCheckpointer instance.
31+
*/
32+
DataStreamsCheckpointer getDataStreamsCheckpointer();
2533
}

dd-trace-api/src/test/groovy/datadog/trace/api/EventTrackerTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.api
22

3-
import datadog.trace.api.datastreams.DataStreamsCheckpointer
3+
import datadog.trace.api.experimental.DataStreamsCheckpointer
44
import datadog.trace.api.experimental.Profiling
55
import datadog.trace.api.interceptor.TraceInterceptor
66
import datadog.trace.api.internal.InternalTracer

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@
3131
import datadog.trace.api.StatsDClient;
3232
import datadog.trace.api.TracePropagationStyle;
3333
import datadog.trace.api.config.GeneralConfig;
34-
import datadog.trace.api.datastreams.DataStreamsCheckpointer;
35-
import datadog.trace.api.datastreams.DataStreamsContextCarrier;
34+
import datadog.trace.api.experimental.DataStreamsCheckpointer;
35+
import datadog.trace.api.experimental.DataStreamsContextCarrier;
3636
import datadog.trace.api.experimental.Profiling;
3737
import datadog.trace.api.gateway.CallbackProvider;
3838
import datadog.trace.api.gateway.InstrumentationGateway;

dd-trace-core/src/main/java/datadog/trace/core/datastreams/DataStreamsContextCarrierAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package datadog.trace.core.datastreams;
22

3-
import datadog.trace.api.datastreams.DataStreamsContextCarrier;
3+
import datadog.trace.api.experimental.DataStreamsContextCarrier;
44
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
55
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation.KeyClassifier;
66
import java.util.Map;

dd-trace-core/src/test/groovy/datadog/trace/core/datastreams/DefaultDataStreamsMonitoringTest.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ package datadog.trace.core.datastreams
22

33
import datadog.communication.ddagent.DDAgentFeaturesDiscovery
44
import datadog.trace.api.WellKnownTags
5-
import datadog.trace.api.datastreams.DataStreamsContextCarrier
5+
import datadog.trace.api.experimental.DataStreamsContextCarrier
66
import datadog.trace.api.time.ControllableTimeSource
77
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation
88
import datadog.trace.bootstrap.instrumentation.api.StatsPoint

0 commit comments

Comments
 (0)