Skip to content

Commit 62709d3

Browse files
authored
Merge branch 'master' into engraver-auto-campaigner/update-one-pipeline-1776794076
2 parents deee839 + 9aedff2 commit 62709d3

81 files changed

Lines changed: 5564 additions & 295 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/g2j-migrated-modules.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77

88
buildSrc/call-site-instrumentation-plugin
99
components/json
10+
dd-java-agent/instrumentation/sofarpc/sofarpc-5.0
1011
dd-trace-api

.gitlab-ci.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,26 @@ include:
77
- project: 'DataDog/apm-reliability/apm-sdks-benchmarks'
88
file: '.gitlab/ci-java-spring-petclinic-parallel.yml'
99
ref: 'main'
10+
- project: 'DataDog/apm-reliability/apm-sdks-benchmarks'
11+
file: '.gitlab/ci-java-load-parallel.yml'
12+
ref: 'main'
13+
- project: 'DataDog/apm-reliability/apm-sdks-benchmarks'
14+
file: '.gitlab/ci-java-startup-parallel.yml'
15+
ref: 'main'
16+
- project: 'DataDog/apm-reliability/apm-sdks-benchmarks'
17+
file: '.gitlab/ci-java-dacapo-parallel.yml'
18+
ref: 'main'
19+
- local: ".gitlab/java-benchmark-configs.yml"
1020

1121
stages:
1222
- build
1323
- publish
1424
# These benchmarks are intended to replace the legacy benchmarks in the future
1525
- java-spring-petclinic-parallel
1626
- java-spring-petclinic-parallel-slo
27+
- java-startup-parallel
28+
- java-load-parallel
29+
- java-dacapo-parallel
1730
- shared-pipeline
1831
- benchmarks
1932
- macrobenchmarks

.gitlab/java-benchmark-configs.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# Ensure the tracer artifact publish finishes before the benchmark jobs start.
2+
linux-java-spring-petclinic-parallel:
3+
needs: ["publish-artifacts-to-s3"]
4+
5+
linux-java-insecure-bank-load-parallel:
6+
needs: ["publish-artifacts-to-s3"]
7+
8+
linux-java-spring-petclinic-load-parallel:
9+
needs: ["publish-artifacts-to-s3"]
10+
11+
linux-java-insecure-bank-startup-parallel:
12+
needs: ["publish-artifacts-to-s3"]
13+
14+
linux-java-spring-petclinic-startup-parallel:
15+
needs: ["publish-artifacts-to-s3"]
16+
17+
linux-java-dacapo-parallel-1:
18+
needs: ["publish-artifacts-to-s3"]
19+
20+
linux-java-dacapo-parallel-2:
21+
needs: ["publish-artifacts-to-s3"]

communication/src/main/java/datadog/communication/ddagent/DDAgentFeaturesDiscovery.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static datadog.communication.http.OkHttpUtils.msgpackRequestBodyOf;
55
import static datadog.communication.http.OkHttpUtils.prepareRequest;
66
import static datadog.communication.serialization.msgpack.MsgPackWriter.FIXARRAY;
7+
import static datadog.trace.api.ProtocolVersion.V0_4;
78
import static java.util.Collections.emptyMap;
89
import static java.util.Collections.emptySet;
910
import static java.util.Collections.singletonList;
@@ -17,6 +18,7 @@
1718
import datadog.metrics.api.Recording;
1819
import datadog.metrics.impl.statsd.DDAgentStatsDClientManager;
1920
import datadog.trace.api.BaseHash;
21+
import datadog.trace.api.ProtocolVersion;
2022
import datadog.trace.api.telemetry.LogCollector;
2123
import datadog.trace.util.Strings;
2224
import java.nio.ByteBuffer;
@@ -50,6 +52,7 @@ public class DDAgentFeaturesDiscovery implements DroppingPolicy {
5052
public static final String V03_ENDPOINT = "v0.3/traces";
5153
public static final String V04_ENDPOINT = "v0.4/traces";
5254
public static final String V05_ENDPOINT = "v0.5/traces";
55+
public static final String V1_ENDPOINT = "v1.0/traces";
5356

5457
public static final String V06_METRICS_ENDPOINT = "v0.6/stats";
5558
public static final String V07_CONFIG_ENDPOINT = "v0.7/config";
@@ -72,7 +75,7 @@ public class DDAgentFeaturesDiscovery implements DroppingPolicy {
7275
private final OkHttpClient client;
7376
private final HttpUrl agentBaseUrl;
7477
private final Recording discoveryTimer;
75-
private final String[] traceEndpoints;
78+
private final ProtocolVersion protocolVersion;
7679
private final String[] metricsEndpoints = {V06_METRICS_ENDPOINT};
7780
private final String[] configEndpoints = {V07_CONFIG_ENDPOINT};
7881
private final boolean metricsEnabled;
@@ -107,15 +110,12 @@ public DDAgentFeaturesDiscovery(
107110
OkHttpClient client,
108111
Monitoring monitoring,
109112
HttpUrl agentUrl,
110-
boolean enableV05Traces,
113+
ProtocolVersion protocolVersion,
111114
boolean metricsEnabled) {
112115
this.client = client;
113116
this.agentBaseUrl = agentUrl;
114117
this.metricsEnabled = metricsEnabled;
115-
this.traceEndpoints =
116-
enableV05Traces
117-
? new String[] {V05_ENDPOINT, V04_ENDPOINT, V03_ENDPOINT}
118-
: new String[] {V04_ENDPOINT, V03_ENDPOINT};
118+
this.protocolVersion = protocolVersion != null ? protocolVersion : V0_4;
119119
this.discoveryTimer = monitoring.newTimer("trace.agent.discovery.time");
120120
this.discoveryState = new State();
121121
}
@@ -173,10 +173,10 @@ private void doDiscovery(State newState) {
173173

174174
// don't want to rewire the traces pipeline
175175
if (null == newState.traceEndpoint) {
176-
newState.traceEndpoint = probeTracesEndpoint(newState, traceEndpoints);
176+
newState.traceEndpoint = probeTracesEndpoint(newState, protocolVersion.endpointsToProbe());
177177
} else if (newState.state == null || newState.state.isEmpty()) {
178178
// Still need to probe so that state is correctly assigned
179-
probeTracesEndpoint(newState, new String[] {newState.traceEndpoint});
179+
probeTracesEndpoint(newState, singletonList(newState.traceEndpoint));
180180
}
181181
}
182182

@@ -194,7 +194,7 @@ private void doDiscovery(State newState) {
194194
}
195195
}
196196

197-
private String probeTracesEndpoint(State newState, String[] endpoints) {
197+
private String probeTracesEndpoint(State newState, List<String> endpoints) {
198198
for (String candidate : endpoints) {
199199
try (Response response =
200200
client
@@ -253,7 +253,7 @@ private boolean processInfoResponse(State newState, String response) {
253253
// This is done outside of the loop to set metricsEndpoint to null if not found
254254
newState.metricsEndpoint = foundMetricsEndpoint;
255255

256-
for (String endpoint : traceEndpoints) {
256+
for (String endpoint : protocolVersion.endpointsToProbe()) {
257257
if (containsEndpoint(endpoints, endpoint)) {
258258
newState.traceEndpoint = endpoint;
259259
break;

communication/src/main/java/datadog/communication/ddagent/SharedCommunicationObjects.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ public DDAgentFeaturesDiscovery featuresDiscovery(Config config) {
173173
agentHttpClient,
174174
monitoring,
175175
agentUrl,
176-
config.isTraceAgentV05Enabled(),
176+
config.getProtocolVersion(),
177177
config.isTracerMetricsEnabled());
178178

179179
if (paused) {

communication/src/main/java/datadog/communication/serialization/Writable.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ public interface Writable {
2727

2828
void writeBinary(byte[] binary, int offset, int length);
2929

30+
/**
31+
* Encodes 128 bits as binary.
32+
*
33+
* @param hi the high-order 64 bits.
34+
* @param lo The low-order 64 bits.
35+
*/
36+
void writeBinary(long hi, long lo);
37+
3038
/**
3139
* Start a part of the message containing key-value pairs
3240
*

communication/src/main/java/datadog/communication/serialization/msgpack/MsgPackWriter.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,13 @@ public void writeBinary(byte[] binary, int offset, int length) {
213213
buffer.put(binary, offset, length);
214214
}
215215

216+
@Override
217+
public void writeBinary(long hi, long lo) {
218+
writeBinaryHeader(16);
219+
buffer.putLong(hi);
220+
buffer.putLong(lo);
221+
}
222+
216223
@Override
217224
public void writeBinary(ByteBuffer binary) {
218225
ByteBuffer slice = binary.slice();

0 commit comments

Comments
 (0)