Skip to content

Commit 4003775

Browse files
Merge branch 'master' into alexeyk/refactored-env-vars-to-be-testable
2 parents 401b3cb + 28bb458 commit 4003775

File tree

35 files changed

+592
-290
lines changed

35 files changed

+592
-290
lines changed

.github/CODEOWNERS

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@
2828
/internal-api/src/test/groovy/datadog/trace/api/sampling @DataDog/apm-sdk-api-java
2929

3030
# @DataDog/apm-serverless
31-
/dd-trace-core/src/main/java/datadog/trace/lambda/ @DataDog/apm-serverless
32-
/dd-trace-core/src/test/groovy/datadog/trace/lambda/ @DataDog/apm-serverless
31+
/dd-trace-core/src/main/java/datadog/trace/lambda/ @DataDog/apm-serverless
32+
/dd-trace-core/src/test/groovy/datadog/trace/lambda/ @DataDog/apm-serverless
33+
**/InferredProxy*.java @DataDog/apm-serverless
34+
**/InferredProxy*.groovy @DataDog/apm-serverless
3335

3436
# @DataDog/apm-lang-platform-java
3537
/.circleci/ @DataDog/apm-lang-platform-java

.github/workflows/update-gradle-dependencies.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
GH_ADD_ARGS=""
4949
COUNT=0
5050
BRANCH_HEAD=$(git rev-parse HEAD)
51-
for lockfile in $(git status --porcelain=v1 | awk '{ print $NF }'); do
51+
for lockfile in $(git status --porcelain=v1 -- ':(glob)**/gradle.lockfile' | awk '{ print $NF }'); do
5252
echo "Found lockfile: $lockfile"
5353
GH_ADD_ARGS="$GH_ADD_ARGS --add $lockfile"
5454
COUNT=$((COUNT+1))

.gitlab/macrobenchmarks.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,4 +142,4 @@ notify-slo-breaches:
142142
when: never
143143
- when: always
144144
variables:
145-
CHANNEL: "apm-release-platform"
145+
CHANNEL: "apm-java"

boolean-conversion-proposal.md

Lines changed: 0 additions & 139 deletions
This file was deleted.

dd-java-agent/agent-bootstrap/src/main/java/datadog/trace/bootstrap/instrumentation/decorator/HttpServerDecorator.java

Lines changed: 29 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import datadog.trace.api.gateway.Flow;
2121
import datadog.trace.api.gateway.Flow.Action.RequestBlockingAction;
2222
import datadog.trace.api.gateway.IGSpanInfo;
23+
import datadog.trace.api.gateway.InferredProxySpan;
2324
import datadog.trace.api.gateway.RequestContext;
2425
import datadog.trace.api.gateway.RequestContextSlot;
2526
import datadog.trace.api.naming.SpanNaming;
@@ -147,21 +148,32 @@ public Context startSpan(REQUEST_CARRIER carrier, Context parentContext) {
147148
instrumentationNames != null && instrumentationNames.length > 0
148149
? instrumentationNames[0]
149150
: DEFAULT_INSTRUMENTATION_NAME;
150-
AgentSpanContext.Extracted extracted =
151-
callIGCallbackStart(getExtractedSpanContext(parentContext));
151+
AgentSpanContext extracted = getExtractedSpanContext(parentContext);
152+
// Call IG callbacks
153+
extracted = callIGCallbackStart(extracted);
154+
// Create gateway inferred span if needed
155+
extracted = startInferredProxySpan(parentContext, extracted);
152156
AgentSpan span =
153157
tracer().startSpan(instrumentationName, spanName(), extracted).setMeasured(true);
158+
// Apply RequestBlockingAction if any
154159
Flow<Void> flow = callIGCallbackRequestHeaders(span, carrier);
155160
if (flow.getAction() instanceof RequestBlockingAction) {
156161
span.setRequestBlockingAction((RequestBlockingAction) flow.getAction());
157162
}
158-
AgentPropagation.ContextVisitor<REQUEST_CARRIER> getter = getter();
159-
if (null != carrier && null != getter) {
160-
tracer().getDataStreamsMonitoring().setCheckpoint(span, forHttpServer());
161-
}
163+
// DSM Checkpoint
164+
tracer().getDataStreamsMonitoring().setCheckpoint(span, forHttpServer());
162165
return parentContext.with(span);
163166
}
164167

168+
protected AgentSpanContext startInferredProxySpan(Context context, AgentSpanContext extracted) {
169+
InferredProxySpan span;
170+
if (!Config.get().isInferredProxyPropagationEnabled()
171+
|| (span = InferredProxySpan.fromContext(context)) == null) {
172+
return extracted;
173+
}
174+
return span.start(extracted);
175+
}
176+
165177
public AgentSpan onRequest(
166178
final AgentSpan span,
167179
final CONNECTION connection,
@@ -390,8 +402,7 @@ public AgentSpan onResponse(final AgentSpan span, final RESPONSE response) {
390402
return span;
391403
}
392404

393-
private AgentSpanContext.Extracted callIGCallbackStart(
394-
@Nullable final AgentSpanContext.Extracted extracted) {
405+
private AgentSpanContext callIGCallbackStart(@Nullable final AgentSpanContext extracted) {
395406
AgentTracer.TracerAPI tracer = tracer();
396407
Supplier<Flow<Object>> startedCbAppSec =
397408
tracer.getCallbackProvider(RequestContextSlot.APPSEC).getCallback(EVENTS.requestStarted());
@@ -527,10 +538,20 @@ private Flow<Void> callIGCallbackURI(
527538

528539
@Override
529540
public AgentSpan beforeFinish(AgentSpan span) {
541+
// TODO Migrate beforeFinish to Context API
530542
onRequestEndForInstrumentationGateway(span);
543+
// Close Serverless Gateway Inferred Span if any
544+
// finishInferredProxySpan(context);
531545
return super.beforeFinish(span);
532546
}
533547

548+
protected void finishInferredProxySpan(Context context) {
549+
InferredProxySpan span;
550+
if ((span = InferredProxySpan.fromContext(context)) != null) {
551+
span.finish();
552+
}
553+
}
554+
534555
private void onRequestEndForInstrumentationGateway(@Nonnull final AgentSpan span) {
535556
if (span.getLocalRootSpan() != span) {
536557
return;

dd-java-agent/agent-ci-visibility/civisibility-test-fixtures/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ dependencies {
88
api group: 'org.skyscreamer', name: 'jsonassert', version: '1.5.1'
99
api group: 'org.freemarker', name: 'freemarker', version: '2.3.31'
1010
api group: 'com.jayway.jsonpath', name: 'json-path', version: '2.8.0'
11-
api group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.16.0'
11+
api libs.jackson.databind
1212
api group: 'org.msgpack', name: 'jackson-dataformat-msgpack', version: '0.9.6'
1313
api group: 'org.xmlunit', name: 'xmlunit-core', version: '2.10.3'
1414
}

dd-java-agent/agent-crashtracking/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ dependencies {
2323

2424
testImplementation libs.bundles.junit5
2525
testImplementation libs.bundles.mockito
26+
testImplementation libs.jackson.databind
2627
testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get()
27-
testImplementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.10'
2828
}
2929

dd-java-agent/agent-profiling/profiling-uploader/build.gradle

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ dependencies {
3737
testImplementation project(':utils:test-utils')
3838
testImplementation libs.bundles.junit5
3939
testImplementation libs.bundles.mockito
40+
testImplementation libs.jackson.databind
4041
testImplementation group: 'com.squareup.okhttp3', name: 'mockwebserver', version: libs.versions.okhttp.legacy.get()
41-
42-
testImplementation(group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.10')
4342
}
4443

dd-java-agent/appsec/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ dependencies {
2323
testImplementation group: 'org.hamcrest', name: 'hamcrest', version: '2.2'
2424
testImplementation group: 'com.flipkart.zjsonpatch', name: 'zjsonpatch', version: '0.4.11'
2525
testImplementation libs.logback.classic
26-
testImplementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.16.0'
26+
testImplementation libs.jackson.databind
2727
}
2828

2929
shadowJar {

dd-java-agent/instrumentation/finatra-2.9/build.gradle

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,12 @@ dependencies {
2727
testImplementation project(':dd-java-agent:instrumentation:netty:netty-4.1')
2828

2929
testImplementation group: 'com.twitter', name: 'finatra-http_2.11', version: '19.12.0'
30-
testImplementation(group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.10')
3130
// Required for older versions of finatra on JDKs >= 11
3231
testImplementation group: 'com.sun.activation', name: 'javax.activation', version: '1.2.0'
3332

3433
latestPre207TestImplementation group: 'com.twitter', name: 'finatra-http_2.11', version: '[,20.7.0)'
3534

3635
latestDepTestImplementation group: 'com.twitter', name: 'finatra-http_2.11', version: '+'
37-
latestDepTestImplementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.11.0'
3836
}
3937

4038
tasks.named("compileLatestDepTestGroovy").configure {

0 commit comments

Comments
 (0)