Skip to content

Commit b974716

Browse files
authored
Merge branch 'master' into mcculls/otel-metrics-enabled-flag
2 parents 500b6bd + 969d21d commit b974716

6 files changed

Lines changed: 54 additions & 3 deletions

File tree

dd-java-agent/agent-profiling/src/main/java/com/datadog/profiling/agent/ProfilingAgent.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import static datadog.environment.JavaVirtualMachine.isJavaVersion;
44
import static datadog.environment.JavaVirtualMachine.isJavaVersionAtLeast;
5+
import static datadog.environment.JavaVirtualMachine.isOracleJDK8;
56
import static datadog.trace.api.config.ProfilingConfig.PROFILING_SCRUB_ENABLED;
67
import static datadog.trace.api.config.ProfilingConfig.PROFILING_SCRUB_ENABLED_DEFAULT;
78
import static datadog.trace.api.config.ProfilingConfig.PROFILING_SCRUB_FAIL_OPEN;
@@ -152,7 +153,10 @@ public static synchronized boolean run(final boolean earlyStart, Instrumentation
152153
};
153154
}
154155
// Scrubber wraps the combined dumper+uploader so debug dumps also contain scrubbed data
155-
if (configProvider.getBoolean(PROFILING_SCRUB_ENABLED, PROFILING_SCRUB_ENABLED_DEFAULT)) {
156+
// Oracle JDK 8 JFR format has quirks that make scrubbing unreliable — skip it to avoid
157+
// corrupting customer data
158+
if (configProvider.getBoolean(PROFILING_SCRUB_ENABLED, PROFILING_SCRUB_ENABLED_DEFAULT)
159+
&& !isOracleJDK8()) {
156160
List<String> excludeEventTypes =
157161
configProvider.getList(ProfilingConfig.PROFILING_SCRUB_EXCLUDE_EVENTS);
158162
boolean failOpen =

dd-smoke-tests/profiling-integration-tests/src/test/java/datadog/smoketest/JFRBasedProfilingIntegrationTest.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -977,6 +977,10 @@ public static boolean isJavaVersionAtLeast24() {
977977
@Test
978978
@DisplayName("Test JFR scrubbing")
979979
void testJfrScrubbing(final TestInfo testInfo) throws Exception {
980+
Assumptions.assumeFalse(JavaVirtualMachine.isJ9());
981+
// Oracle JDK 8 JFR format has quirks that make scrubbing unreliable
982+
Assumptions.assumeFalse(JavaVirtualMachine.isOracleJDK8());
983+
980984
testWithRetry(
981985
() -> {
982986
try {
@@ -997,8 +1001,6 @@ void testJfrScrubbing(final TestInfo testInfo) throws Exception {
9971001
"-Ddd.profiling.scrub.enabled=true")
9981002
.start();
9991003

1000-
Assumptions.assumeFalse(JavaVirtualMachine.isJ9());
1001-
10021004
final RecordedRequest request = retrieveRequest();
10031005
assertNotNull(request);
10041006

dd-trace-api/src/main/java/datadog/trace/api/config/OtlpConfig.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public final class OtlpConfig {
1010
public static final String OTLP_METRICS_ENDPOINT = "otlp.metrics.endpoint";
1111
public static final String OTLP_METRICS_HEADERS = "otlp.metrics.headers";
1212
public static final String OTLP_METRICS_PROTOCOL = "otlp.metrics.protocol";
13+
public static final String OTLP_METRICS_COMPRESSION = "otlp.metrics.compression";
1314
public static final String OTLP_METRICS_TIMEOUT = "otlp.metrics.timeout";
1415
public static final String OTLP_METRICS_TEMPORALITY_PREFERENCE =
1516
"otlp.metrics.temporality.preference";
@@ -20,6 +21,11 @@ public enum Protocol {
2021
HTTP_JSON
2122
}
2223

24+
public enum Compression {
25+
NONE,
26+
GZIP
27+
}
28+
2329
public enum Temporality {
2430
CUMULATIVE,
2531
DELTA,

internal-api/src/main/java/datadog/trace/api/Config.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -449,6 +449,7 @@
449449
import static datadog.trace.api.config.OtlpConfig.METRICS_OTEL_ENABLED;
450450
import static datadog.trace.api.config.OtlpConfig.METRICS_OTEL_INTERVAL;
451451
import static datadog.trace.api.config.OtlpConfig.METRICS_OTEL_TIMEOUT;
452+
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_COMPRESSION;
452453
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_ENDPOINT;
453454
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_HEADERS;
454455
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_PROTOCOL;
@@ -919,6 +920,7 @@ public static String getHostName() {
919920
private final String otlpMetricsEndpoint;
920921
private final Map<String, String> otlpMetricsHeaders;
921922
private final OtlpConfig.Protocol otlpMetricsProtocol;
923+
private final OtlpConfig.Compression otlpMetricsCompression;
922924
private final int otlpMetricsTimeout;
923925
private final OtlpConfig.Temporality otlpMetricsTemporalityPreference;
924926

@@ -1929,6 +1931,9 @@ private Config(final ConfigProvider configProvider, final InstrumenterConfig ins
19291931
otlpMetricsProtocol =
19301932
configProvider.getEnum(
19311933
OTLP_METRICS_PROTOCOL, OtlpConfig.Protocol.class, OtlpConfig.Protocol.HTTP_PROTOBUF);
1934+
otlpMetricsCompression =
1935+
configProvider.getEnum(
1936+
OTLP_METRICS_COMPRESSION, OtlpConfig.Compression.class, OtlpConfig.Compression.NONE);
19321937

19331938
String otlpMetricsEndpointFromEnvironment = configProvider.getString(OTLP_METRICS_ENDPOINT);
19341939
if (otlpMetricsEndpointFromEnvironment == null) {
@@ -5227,6 +5232,10 @@ public OtlpConfig.Protocol getOtlpMetricsProtocol() {
52275232
return otlpMetricsProtocol;
52285233
}
52295234

5235+
public OtlpConfig.Compression getOtlpMetricsCompression() {
5236+
return otlpMetricsCompression;
5237+
}
5238+
52305239
public int getOtlpMetricsTimeout() {
52315240
return otlpMetricsTimeout;
52325241
}
@@ -6258,6 +6267,8 @@ public String toString() {
62586267
+ otlpMetricsHeaders
62596268
+ ", otlpMetricsProtocol="
62606269
+ otlpMetricsProtocol
6270+
+ ", otlpMetricsCompression="
6271+
+ otlpMetricsCompression
62616272
+ ", otlpMetricsTimeout="
62626273
+ otlpMetricsTimeout
62636274
+ ", otlpMetricsTemporalityPreference="

metadata/supported-configurations.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2313,6 +2313,14 @@
23132313
"aliases": []
23142314
}
23152315
],
2316+
"DD_OTLP_METRICS_COMPRESSION": [
2317+
{
2318+
"version": "A",
2319+
"type": "string",
2320+
"default": "NONE",
2321+
"aliases": []
2322+
}
2323+
],
23162324
"DD_OTLP_METRICS_TIMEOUT": [
23172325
{
23182326
"version": "A",
@@ -11081,6 +11089,14 @@
1108111089
"aliases": []
1108211090
}
1108311091
],
11092+
"OTEL_EXPORTER_OTLP_COMPRESSION": [
11093+
{
11094+
"version": "A",
11095+
"type": "string",
11096+
"default": null,
11097+
"aliases": []
11098+
}
11099+
],
1108411100
"OTEL_EXPORTER_OTLP_TIMEOUT": [
1108511101
{
1108611102
"version": "A",
@@ -11113,6 +11129,14 @@
1111311129
"aliases": []
1111411130
}
1111511131
],
11132+
"OTEL_EXPORTER_OTLP_METRICS_COMPRESSION": [
11133+
{
11134+
"version": "A",
11135+
"type": "string",
11136+
"default": null,
11137+
"aliases": []
11138+
}
11139+
],
1111611140
"OTEL_EXPORTER_OTLP_METRICS_TIMEOUT": [
1111711141
{
1111811142
"version": "B",

utils/config-utils/src/main/java/datadog/trace/bootstrap/config/provider/OtelEnvironmentConfigSource.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import static datadog.trace.api.config.OtlpConfig.METRICS_OTEL_ENABLED;
1313
import static datadog.trace.api.config.OtlpConfig.METRICS_OTEL_INTERVAL;
1414
import static datadog.trace.api.config.OtlpConfig.METRICS_OTEL_TIMEOUT;
15+
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_COMPRESSION;
1516
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_ENDPOINT;
1617
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_HEADERS;
1718
import static datadog.trace.api.config.OtlpConfig.OTLP_METRICS_PROTOCOL;
@@ -158,6 +159,9 @@ private void setupMetricsOtelEnvironment() {
158159
capture(
159160
OTLP_METRICS_PROTOCOL,
160161
getOtelOtlpProperty("metrics", "protocol", "dd." + OTLP_METRICS_PROTOCOL));
162+
capture(
163+
OTLP_METRICS_COMPRESSION,
164+
getOtelOtlpProperty("metrics", "compression", "dd." + OTLP_METRICS_COMPRESSION));
161165
capture(
162166
OTLP_METRICS_TIMEOUT,
163167
getOtelOtlpProperty("metrics", "timeout", "dd." + OTLP_METRICS_TIMEOUT));

0 commit comments

Comments
 (0)