Skip to content

Commit 1b28fef

Browse files
Merge remote-tracking branch 'origin/master' into landerson/notification-channel
# Conflicts: # .gitlab-ci.yml
2 parents 9f17b90 + 2d7d791 commit 1b28fef

137 files changed

Lines changed: 1082 additions & 936 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/CODEOWNERS

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,3 +65,10 @@ dd-java-agent/instrumentation/spring-security-5/ @DataDog/asm-java
6565
# @DataDog/data-jobs-monitoring
6666
dd-java-agent/instrumentation/spark/ @DataDog/data-jobs-monitoring
6767
dd-java-agent/instrumentation/spark-executor/ @DataDog/data-jobs-monitoring
68+
69+
# @DataDog/data-streams-monitoring
70+
dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/datastreams @DataDog/data-streams-monitoring
71+
dd-trace-core/src/main/java/datadog/trace/core/datastreams @DataDog/data-streams-monitoring
72+
dd-trace-core/src/test/groovy/datadog/trace/core/datastreams @DataDog/data-streams-monitoring
73+
internal-api/src/main/java/datadog/trace/api/datastreams @DataDog/data-streams-monitoring
74+
internal-api/src/test/groovy/datadog/trace/api/datastreams @DataDog/data-streams-monitoring

.gitlab-ci.yml

Lines changed: 110 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,25 @@ variables:
2323
DEPENDENCY_CACHE_POLICY: pull
2424
BUILD_CACHE_POLICY: pull
2525
GRADLE_VERSION: "8.4" # must match gradle-wrapper.properties
26+
JAVA_BUILD_IMAGE_VERSION: "v25.01"
2627
REPO_NOTIFICATION_CHANNEL: "#apm-java-escalations"
2728

28-
2929
default:
3030
tags: [ "arch:amd64" ]
3131

32+
.fan_in:
33+
stage: tests
34+
image: registry.ddbuild.io/images/base/gbi-ubuntu_2204-slim:release
35+
script:
36+
- echo "done"
37+
3238
.gradle_build: &gradle_build
33-
image: ghcr.io/datadog/dd-trace-java-docker-build:v25.01-base
39+
image: ghcr.io/datadog/dd-trace-java-docker-build:${JAVA_BUILD_IMAGE_VERSION}-base
40+
stage: build
3441
variables:
35-
GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx2560M -Xms2560M'"
36-
GRADLE_ARGS: " -PskipTests --build-cache --stacktrace --no-daemon --parallel --max-workers=2"
42+
GRADLE_OPTS: "-Dorg.gradle.jvmargs='-Xmx2560M -Xms2560M -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
43+
MAVEN_OPTS: "-Xms64M -Xmx512M"
44+
GRADLE_WORKERS: 2
3745
KUBERNETES_CPU_REQUEST: 8
3846
KUBERNETES_MEMORY_REQUEST: 6Gi
3947
cache:
@@ -44,14 +52,15 @@ default:
4452
- .gradle/caches
4553
- .gradle/notifications
4654
policy: $DEPENDENCY_CACHE_POLICY
47-
- key: $CI_PIPELINE_ID # Incremental build cache. Shared by all jobs in the pipeline
55+
- key: $CI_PIPELINE_ID-$BUILD_CACHE_TYPE # Incremental build cache. Shared by all jobs in the pipeline of the same type
4856
paths:
4957
- .gradle/caches/$GRADLE_VERSION
5058
- .gradle/$GRADLE_VERSION/executionHistory
5159
- workspace
5260
policy: $BUILD_CACHE_POLICY
5361
before_script:
5462
- export GRADLE_USER_HOME=`pwd`/.gradle
63+
- export GRADLE_ARGS=" --build-cache --stacktrace --no-daemon --parallel --max-workers=$GRADLE_WORKERS"
5564
# for weird reasons, gradle will always "chmod 700" the .gradle folder
5665
# with Gitlab caching, .gradle is always owned by root and thus gradle's chmod invocation fails
5766
# This dance is a hack to have .gradle owned by the Gitlab runner user
@@ -63,21 +72,24 @@ default:
6372

6473
build:
6574
extends: .gradle_build
66-
stage: build
6775
variables:
6876
BUILD_CACHE_POLICY: push
77+
BUILD_CACHE_TYPE: lib
6978
DEPENDENCY_CACHE_POLICY: pull
7079
script:
71-
- ./gradlew clean :dd-java-agent:shadowJar :dd-trace-api:jar :dd-trace-ot:shadowJar $GRADLE_ARGS
80+
- if [ $CI_PIPELINE_SOURCE == "schedule" ] ; then ./gradlew resolveAndLockAll --write-locks; fi
81+
- ./gradlew clean :dd-java-agent:shadowJar :dd-trace-api:jar :dd-trace-ot:shadowJar -PskipTests $GRADLE_ARGS
7282
- echo UPSTREAM_TRACER_VERSION=$(java -jar workspace/dd-java-agent/build/libs/*.jar) >> upstream.env
7383
- echo "BUILD_JOB_NAME=$CI_JOB_NAME" >> build.env
7484
- echo "BUILD_JOB_ID=$CI_JOB_ID" >> build.env
7585
artifacts:
86+
when: always
7687
paths:
7788
- 'workspace/dd-java-agent/build/libs/*.jar'
7889
- 'workspace/dd-trace-api/build/libs/*.jar'
7990
- 'workspace/dd-trace-ot/build/libs/*.jar'
8091
- 'upstream.env'
92+
- '.gradle/daemon/*/*.out.log'
8193
reports:
8294
dotenv: build.env
8395

@@ -92,6 +104,94 @@ build_and_populate_dep_cache:
92104
- when: manual
93105
allow_failure: true
94106

107+
spotless:
108+
extends: .gradle_build
109+
stage: tests
110+
needs: []
111+
script:
112+
- export JAVA_HOME=$JAVA_11_HOME
113+
- ./gradlew spotlessCheck $GRADLE_ARGS
114+
115+
test_published_artifacts:
116+
extends: .gradle_build
117+
image: ghcr.io/datadog/dd-trace-java-docker-build:${JAVA_BUILD_IMAGE_VERSION}-7 # Needs Java7 for some tests
118+
stage: tests
119+
needs: [ build ]
120+
rules:
121+
- if: '$POPULATE_CACHE'
122+
when: never
123+
- when: on_success
124+
variables:
125+
BUILD_CACHE_TYPE: lib
126+
script:
127+
- mvn_local_repo=$(./mvnw help:evaluate -Dexpression=settings.localRepository -q -DforceStdout)
128+
- rm -rf "${mvn_local_repo}/com/datadoghq"
129+
- export GPG_PRIVATE_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-java.signing.gpg_private_key --with-decryption --query "Parameter.Value" --out text)
130+
- export GPG_PASSWORD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-java.signing.gpg_passphrase --with-decryption --query "Parameter.Value" --out text)
131+
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx2G -Xms2G -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
132+
- ./gradlew publishToMavenLocal $GRADLE_ARGS
133+
- cd test-published-dependencies
134+
- export GRADLE_OPTS="-Dorg.gradle.jvmargs='-Xmx512M -Xms512M -XX:ErrorFile=/tmp/hs_err_pid%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp'"
135+
- ./gradlew check --info $GRADLE_ARGS
136+
after_script:
137+
- .circleci/collect_reports.sh
138+
artifacts:
139+
when: always
140+
paths:
141+
- ./check_reports
142+
143+
muzzle:
144+
extends: .gradle_build
145+
needs: [ build ]
146+
stage: tests
147+
parallel: 8
148+
rules:
149+
- if: '$POPULATE_CACHE'
150+
when: never
151+
- when: on_success
152+
variables:
153+
BUILD_CACHE_TYPE: test
154+
script:
155+
- export SKIP_BUILDSCAN="true"
156+
- echo CI_NODE_INDEX=$CI_NODE_INDEX
157+
- echo CI_NODE_TOTAL=CI_NODE_TOTAL
158+
- ./gradlew writeMuzzleTasksToFile $GRADLE_ARGS
159+
- sort workspace/build/muzzleTasks > sortedMuzzleTasks
160+
- split --number=l/$CI_NODE_TOTAL --suffix-length=1 --numeric-suffixes sortedMuzzleTasks muzzleSplit
161+
- export NODE_ZERO_INDEX=$((CI_NODE_INDEX - 1))
162+
- ./gradlew `cat muzzleSplit${NODE_ZERO_INDEX} | xargs` $GRADLE_ARGS
163+
after_script:
164+
- .circleci/collect_reports.sh
165+
artifacts:
166+
when: always
167+
paths:
168+
- ./reports
169+
- '.gradle/daemon/*/*.out.log'
170+
171+
muzzle-dep-report:
172+
extends: .gradle_build
173+
needs: [ build ]
174+
stage: tests
175+
variables:
176+
BUILD_CACHE_TYPE: test
177+
script:
178+
- export SKIP_BUILDSCAN="true"
179+
- ./gradlew generateMuzzleReport muzzleInstrumentationReport $GRADLE_ARGS
180+
after_script:
181+
- .circleci/collect_muzzle_deps.sh
182+
artifacts:
183+
when: always
184+
paths:
185+
- ./reports
186+
- '.gradle/daemon/*/*.out.log'
187+
188+
required:
189+
extends: .fan_in
190+
needs:
191+
- spotless
192+
- muzzle
193+
- test_published_artifacts
194+
95195
deploy_to_profiling_backend:
96196
stage: publish
97197
needs: [ build ]
@@ -167,6 +267,8 @@ deploy_to_sonatype:
167267
extends: .gradle_build
168268
stage: publish
169269
needs: [ build ]
270+
variables:
271+
BUILD_CACHE_TYPE: lib
170272
rules:
171273
- if: '$POPULATE_CACHE'
172274
when: never
@@ -182,7 +284,7 @@ deploy_to_sonatype:
182284
- export SONATYPE_PASSWORD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-java.sonatype_password --with-decryption --query "Parameter.Value" --out text)
183285
- export GPG_PRIVATE_KEY=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-java.signing.gpg_private_key --with-decryption --query "Parameter.Value" --out text)
184286
- export GPG_PASSWORD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-trace-java.signing.gpg_passphrase --with-decryption --query "Parameter.Value" --out text)
185-
- ./gradlew -PbuildInfo.build.number=$CI_JOB_ID publishToSonatype closeSonatypeStagingRepository $GRADLE_ARGS
287+
- ./gradlew -PbuildInfo.build.number=$CI_JOB_ID publishToSonatype closeSonatypeStagingRepository -PskipTests $GRADLE_ARGS
186288
artifacts:
187289
paths:
188290
- 'workspace/dd-java-agent/build/libs/*.jar'

benchmark/load/petclinic/benchmark.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@
4141
"VARIANT": "iast",
4242
"JAVA_OPTS": "-javaagent:${TRACER} -Ddd.iast.enabled=true"
4343
}
44+
},
45+
"code_origins": {
46+
"env": {
47+
"VARIANT": "code_origins",
48+
"JAVA_OPTS": "-javaagent:${TRACER} -Ddd.code.origin.for.spans.enabled=true"
49+
}
4450
}
4551
}
4652
}

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package datadog.trace.bootstrap.instrumentation.decorator;
22

33
import static datadog.trace.api.cache.RadixTreeCache.UNSET_STATUS;
4+
import static datadog.trace.api.datastreams.DataStreamsContext.fromTags;
45
import static datadog.trace.api.gateway.Events.EVENTS;
56
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.traceConfig;
67
import static datadog.trace.bootstrap.instrumentation.decorator.http.HttpResourceDecorator.HTTP_RESOURCE_DECORATOR;
@@ -148,7 +149,7 @@ public AgentSpan startSpan(
148149
}
149150
AgentPropagation.ContextVisitor<REQUEST_CARRIER> getter = getter();
150151
if (null != carrier && null != getter) {
151-
tracer().getDataStreamsMonitoring().setCheckpoint(span, SERVER_PATHWAY_EDGE_TAGS, 0, 0);
152+
tracer().getDataStreamsMonitoring().setCheckpoint(span, fromTags(SERVER_PATHWAY_EDGE_TAGS));
152153
}
153154
return span;
154155
}

dd-java-agent/agent-debugger/src/main/java/com/datadog/debugger/codeorigin/DefaultCodeOriginRecorder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ private CodeOriginProbe createProbe(
121121

122122
// i think this check is unnecessary at this point time but leaving for now to be safe
123123
if (installed == null) {
124-
if (Config.get().isDynamicInstrumentationEnabled()) {
124+
if (Config.get().isDistributedDebuggerEnabled()) {
125125
registerLogProbe(probe);
126126
}
127127
installProbes();

dd-java-agent/agent-debugger/src/test/java/com/datadog/debugger/origin/CodeOriginTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public void before() {
8888
tracer.addTraceInterceptor(traceInterceptor);
8989

9090
setFieldInConfig(Config.get(), "debuggerCodeOriginEnabled", true);
91+
setFieldInConfig(Config.get(), "distributedDebuggerEnabled", true);
9192
setFieldInConfig(InstrumenterConfig.get(), "codeOriginEnabled", true);
9293
}
9394

0 commit comments

Comments
 (0)