Skip to content

Commit 9cbc4a2

Browse files
Merge branch 'master' into duncan-harvey/azure-functions-trace-metrics
2 parents ee99edc + 3c989a4 commit 9cbc4a2

File tree

12 files changed

+45
-38
lines changed

12 files changed

+45
-38
lines changed

dd-java-agent/instrumentation/jboss-logmanager/src/main/java/datadog/trace/instrumentation/jbosslogmanager/ExtLogRecordInstrumentation.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import datadog.trace.api.CorrelationIdentifier;
1616
import datadog.trace.api.DDSpanId;
1717
import datadog.trace.api.DDTraceId;
18-
import datadog.trace.api.InstrumenterConfig;
1918
import datadog.trace.bootstrap.InstrumentationContext;
2019
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
2120
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
@@ -113,8 +112,7 @@ public static void getMdcValue(
113112
case "dd.trace_id":
114113
if (context != null) {
115114
DDTraceId traceId = context.getTraceId();
116-
if (traceId.toHighOrderLong() != 0
117-
&& InstrumenterConfig.get().isLogs128bTraceIdEnabled()) {
115+
if (traceId.toHighOrderLong() != 0 && Config.get().isLogs128bitTraceIdEnabled()) {
118116
value = traceId.toHexString();
119117
} else {
120118
value = traceId.toString();
@@ -155,7 +153,7 @@ public static void onExit(
155153
if (context != null) {
156154
DDTraceId traceId = context.getTraceId();
157155
String traceIdValue =
158-
InstrumenterConfig.get().isLogs128bTraceIdEnabled() && traceId.toHighOrderLong() != 0
156+
Config.get().isLogs128bitTraceIdEnabled() && traceId.toHighOrderLong() != 0
159157
? traceId.toHexString()
160158
: traceId.toString();
161159
correlationValues.put(CorrelationIdentifier.getTraceIdKey(), traceIdValue);

dd-java-agent/instrumentation/log4j-2.7/src/main/java/datadog/trace/instrumentation/log4j27/SpanDecoratingContextDataInjector.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import datadog.trace.api.CorrelationIdentifier;
1212
import datadog.trace.api.DDSpanId;
1313
import datadog.trace.api.DDTraceId;
14-
import datadog.trace.api.InstrumenterConfig;
1514
import datadog.trace.bootstrap.instrumentation.api.AgentSpan;
1615
import datadog.trace.bootstrap.instrumentation.api.Tags;
1716
import java.util.List;
@@ -57,7 +56,7 @@ public StringMap injectContextData(List<Property> list, StringMap reusable) {
5756
if (span != null) {
5857
DDTraceId traceId = span.context().getTraceId();
5958
String traceIdValue =
60-
InstrumenterConfig.get().isLogs128bTraceIdEnabled() && traceId.toHighOrderLong() != 0
59+
Config.get().isLogs128bitTraceIdEnabled() && traceId.toHighOrderLong() != 0
6160
? traceId.toHexString()
6261
: traceId.toString();
6362
newContextData.putValue(CorrelationIdentifier.getTraceIdKey(), traceIdValue);

dd-java-agent/instrumentation/log4j1/src/main/java/datadog/trace/instrumentation/log4j1/LoggingEventInstrumentation.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import datadog.trace.api.CorrelationIdentifier;
1414
import datadog.trace.api.DDSpanId;
1515
import datadog.trace.api.DDTraceId;
16-
import datadog.trace.api.InstrumenterConfig;
1716
import datadog.trace.bootstrap.InstrumentationContext;
1817
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
1918
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
@@ -95,8 +94,7 @@ public static void getMdcValue(
9594
case "dd.trace_id":
9695
if (context != null) {
9796
DDTraceId traceId = context.getTraceId();
98-
if (traceId.toHighOrderLong() != 0
99-
&& InstrumenterConfig.get().isLogs128bTraceIdEnabled()) {
97+
if (traceId.toHighOrderLong() != 0 && Config.get().isLogs128bitTraceIdEnabled()) {
10098
value = traceId.toHexString();
10199
} else {
102100
value = traceId.toString();
@@ -157,7 +155,7 @@ public static void onExit(
157155
if (context != null) {
158156
DDTraceId traceId = context.getTraceId();
159157
String traceIdValue =
160-
InstrumenterConfig.get().isLogs128bTraceIdEnabled() && traceId.toHighOrderLong() != 0
158+
Config.get().isLogs128bitTraceIdEnabled() && traceId.toHighOrderLong() != 0
161159
? traceId.toHexString()
162160
: traceId.toString();
163161
mdc.put(CorrelationIdentifier.getTraceIdKey(), traceIdValue);

dd-java-agent/instrumentation/logback-1/src/main/java/datadog/trace/instrumentation/logback/LoggingEventInstrumentation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import datadog.trace.api.CorrelationIdentifier;
1616
import datadog.trace.api.DDSpanId;
1717
import datadog.trace.api.DDTraceId;
18-
import datadog.trace.api.InstrumenterConfig;
1918
import datadog.trace.bootstrap.InstrumentationContext;
2019
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
2120
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
@@ -90,7 +89,7 @@ public static void onExit(
9089
if (context != null) {
9190
DDTraceId traceId = context.getTraceId();
9291
String traceIdValue =
93-
InstrumenterConfig.get().isLogs128bTraceIdEnabled() && traceId.toHighOrderLong() != 0
92+
Config.get().isLogs128bitTraceIdEnabled() && traceId.toHighOrderLong() != 0
9493
? traceId.toHexString()
9594
: traceId.toString();
9695
correlationValues.put(CorrelationIdentifier.getTraceIdKey(), traceIdValue);

dd-java-agent/instrumentation/tinylog-2/src/main/java/datadog/trace/instrumentation/tinylog2/LogEntryInstrumentation.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import datadog.trace.api.CorrelationIdentifier;
1414
import datadog.trace.api.DDSpanId;
1515
import datadog.trace.api.DDTraceId;
16-
import datadog.trace.api.InstrumenterConfig;
1716
import datadog.trace.bootstrap.InstrumentationContext;
1817
import datadog.trace.bootstrap.instrumentation.api.AgentSpanContext;
1918
import datadog.trace.bootstrap.instrumentation.api.AgentTracer;
@@ -83,7 +82,7 @@ public static void onExit(
8382
if (context != null) {
8483
DDTraceId traceId = context.getTraceId();
8584
String traceIdValue =
86-
InstrumenterConfig.get().isLogs128bTraceIdEnabled() && traceId.toHighOrderLong() != 0
85+
Config.get().isLogs128bitTraceIdEnabled() && traceId.toHighOrderLong() != 0
8786
? traceId.toHexString()
8887
: traceId.toString();
8988
correlationValues.put(CorrelationIdentifier.getTraceIdKey(), traceIdValue);

dd-java-agent/testing/src/main/groovy/datadog/trace/agent/test/log/injection/LogContextInjectionTestBase.groovy

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ abstract class LogContextInjectionTestBase extends AgentTestRunner {
3434

3535
abstract Map<String, Object> getMap()
3636

37+
def setup() {
38+
injectSysConfig("logs.injection.enabled", "true")
39+
}
40+
3741
def "Log context shows trace and span ids for active scope"() {
3842
when:
3943
put("foo", "bar")

dd-smoke-tests/log-injection/src/test/groovy/datadog/smoketest/LogInjectionSmokeTest.groovy

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ abstract class LogInjectionSmokeTest extends AbstractSmokeTest {
4141
boolean noTags = false
4242

4343
@Shared
44-
boolean trace128bits = false
44+
boolean trace128bits = true
4545

4646
@Shared
4747
@AutoCleanup
@@ -88,9 +88,9 @@ abstract class LogInjectionSmokeTest extends AbstractSmokeTest {
8888
command.add("-Ddd.version=" as String)
8989
command.add("-Ddd.service.name=" as String)
9090
}
91-
if (trace128bits) {
92-
command.add("-Ddd.$TRACE_128_BIT_TRACEID_GENERATION_ENABLED=true" as String)
93-
command.add("-Ddd.$TRACE_128_BIT_TRACEID_LOGGING_ENABLED=true" as String)
91+
if (!trace128bits) {
92+
command.add("-Ddd.$TRACE_128_BIT_TRACEID_GENERATION_ENABLED=false" as String)
93+
command.add("-Ddd.$TRACE_128_BIT_TRACEID_LOGGING_ENABLED=false" as String)
9494
}
9595
if (supportsDirectLogSubmission()) {
9696
command.add("-Ddd.$GeneralConfig.AGENTLESS_LOG_SUBMISSION_ENABLED=true" as String)

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@ public final class ConfigDefaults {
104104
static final boolean DEFAULT_PERF_METRICS_ENABLED = false;
105105
// No default constants for metrics statsd support -- falls back to jmxfetch values
106106

107+
// Change value to be false in new release. Until then, manually set logs_injection default
108+
// value to false if config is under breaking changes flag
107109
static final boolean DEFAULT_LOGS_INJECTION_ENABLED = true;
108110

109111
static final String DEFAULT_APPSEC_ENABLED = "inactive";
@@ -237,7 +239,7 @@ public final class ConfigDefaults {
237239
static final Set<String> DEFAULT_TRACE_EXPERIMENTAL_FEATURES_ENABLED = new HashSet<>();
238240

239241
static final boolean DEFAULT_TRACE_128_BIT_TRACEID_GENERATION_ENABLED = true;
240-
static final boolean DEFAULT_TRACE_128_BIT_TRACEID_LOGGING_ENABLED = false;
242+
static final boolean DEFAULT_TRACE_128_BIT_TRACEID_LOGGING_ENABLED = true;
241243
static final boolean DEFAULT_SECURE_RANDOM = false;
242244

243245
public static final int DEFAULT_TRACE_X_DATADOG_TAGS_MAX_LENGTH = 512;

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
import datadog.trace.api.DynamicConfig;
3030
import datadog.trace.api.EndpointTracker;
3131
import datadog.trace.api.IdGenerationStrategy;
32-
import datadog.trace.api.InstrumenterConfig;
3332
import datadog.trace.api.StatsDClient;
3433
import datadog.trace.api.TraceConfig;
3534
import datadog.trace.api.TracePropagationBehaviorExtract;
@@ -608,7 +607,7 @@ private CoreTracer(
608607
.setTracingTags(config.getMergedSpanTags())
609608
.apply();
610609

611-
this.logs128bTraceIdEnabled = InstrumenterConfig.get().isLogs128bTraceIdEnabled();
610+
this.logs128bTraceIdEnabled = Config.get().isLogs128bitTraceIdEnabled();
612611
this.partialFlushMinSpans = partialFlushMinSpans;
613612
this.idGenerationStrategy =
614613
null == idGenerationStrategy

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

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -484,6 +484,7 @@ public static String getHostName() {
484484
private final boolean secureRandom;
485485

486486
private final boolean trace128bitTraceIdGenerationEnabled;
487+
private final boolean logs128bitTraceIdEnabled;
487488

488489
private final Set<String> grpcIgnoredInboundMethods;
489490
private final Set<String> grpcIgnoredOutboundMethods;
@@ -665,6 +666,11 @@ private Config(final ConfigProvider configProvider, final InstrumenterConfig ins
665666
configProvider.getBoolean(
666667
TRACE_128_BIT_TRACEID_GENERATION_ENABLED,
667668
DEFAULT_TRACE_128_BIT_TRACEID_GENERATION_ENABLED);
669+
670+
logs128bitTraceIdEnabled =
671+
configProvider.getBoolean(
672+
TRACE_128_BIT_TRACEID_LOGGING_ENABLED, DEFAULT_TRACE_128_BIT_TRACEID_LOGGING_ENABLED);
673+
668674
if (secureRandom) {
669675
strategyName = "SECURE_RANDOM";
670676
}
@@ -1059,9 +1065,15 @@ private Config(final ConfigProvider configProvider, final InstrumenterConfig ins
10591065

10601066
clockSyncPeriod = configProvider.getInteger(CLOCK_SYNC_PERIOD, DEFAULT_CLOCK_SYNC_PERIOD);
10611067

1062-
logsInjectionEnabled =
1063-
configProvider.getBoolean(
1064-
LOGS_INJECTION_ENABLED, DEFAULT_LOGS_INJECTION_ENABLED, LOGS_INJECTION);
1068+
if (experimentalFeaturesEnabled.contains(
1069+
propertyNameToEnvironmentVariableName(LOGS_INJECTION))) {
1070+
logsInjectionEnabled =
1071+
configProvider.getBoolean(LOGS_INJECTION_ENABLED, false, LOGS_INJECTION);
1072+
} else {
1073+
logsInjectionEnabled =
1074+
configProvider.getBoolean(
1075+
LOGS_INJECTION_ENABLED, DEFAULT_LOGS_INJECTION_ENABLED, LOGS_INJECTION);
1076+
}
10651077

10661078
dogStatsDNamedPipe = configProvider.getString(DOGSTATSD_NAMED_PIPE);
10671079

@@ -3491,6 +3503,10 @@ public boolean isTrace128bitTraceIdGenerationEnabled() {
34913503
return trace128bitTraceIdGenerationEnabled;
34923504
}
34933505

3506+
public boolean isLogs128bitTraceIdEnabled() {
3507+
return logs128bitTraceIdEnabled;
3508+
}
3509+
34943510
public Set<String> getGrpcIgnoredInboundMethods() {
34953511
return grpcIgnoredInboundMethods;
34963512
}
@@ -4743,6 +4759,8 @@ public String toString() {
47434759
+ idGenerationStrategy
47444760
+ ", trace128bitTraceIdGenerationEnabled="
47454761
+ trace128bitTraceIdGenerationEnabled
4762+
+ ", logs128bitTraceIdEnabled="
4763+
+ logs128bitTraceIdEnabled
47464764
+ ", grpcIgnoredInboundMethods="
47474765
+ grpcIgnoredInboundMethods
47484766
+ ", grpcIgnoredOutboundMethods="

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

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import static datadog.trace.api.ConfigDefaults.DEFAULT_RUNTIME_CONTEXT_FIELD_INJECTION;
1212
import static datadog.trace.api.ConfigDefaults.DEFAULT_SERIALVERSIONUID_FIELD_INJECTION;
1313
import static datadog.trace.api.ConfigDefaults.DEFAULT_TELEMETRY_ENABLED;
14-
import static datadog.trace.api.ConfigDefaults.DEFAULT_TRACE_128_BIT_TRACEID_LOGGING_ENABLED;
1514
import static datadog.trace.api.ConfigDefaults.DEFAULT_TRACE_ANNOTATIONS;
1615
import static datadog.trace.api.ConfigDefaults.DEFAULT_TRACE_ANNOTATION_ASYNC;
1716
import static datadog.trace.api.ConfigDefaults.DEFAULT_TRACE_ENABLED;
@@ -52,7 +51,6 @@
5251
import static datadog.trace.api.config.TraceInstrumentationConfig.RESOLVER_USE_URL_CACHES;
5352
import static datadog.trace.api.config.TraceInstrumentationConfig.RUNTIME_CONTEXT_FIELD_INJECTION;
5453
import static datadog.trace.api.config.TraceInstrumentationConfig.SERIALVERSIONUID_FIELD_INJECTION;
55-
import static datadog.trace.api.config.TraceInstrumentationConfig.TRACE_128_BIT_TRACEID_LOGGING_ENABLED;
5654
import static datadog.trace.api.config.TraceInstrumentationConfig.TRACE_ANNOTATIONS;
5755
import static datadog.trace.api.config.TraceInstrumentationConfig.TRACE_ANNOTATION_ASYNC;
5856
import static datadog.trace.api.config.TraceInstrumentationConfig.TRACE_CLASSES_EXCLUDE;
@@ -107,7 +105,6 @@ public class InstrumenterConfig {
107105
private final boolean codeOriginEnabled;
108106
private final boolean traceEnabled;
109107
private final boolean traceOtelEnabled;
110-
private final boolean logs128bTraceIdEnabled;
111108
private final ProfilingEnablement profilingEnabled;
112109
private final boolean ciVisibilityEnabled;
113110
private final ProductActivation appSecActivation;
@@ -185,9 +182,7 @@ private InstrumenterConfig() {
185182
CODE_ORIGIN_FOR_SPANS_ENABLED, DEFAULT_CODE_ORIGIN_FOR_SPANS_ENABLED);
186183
traceEnabled = configProvider.getBoolean(TRACE_ENABLED, DEFAULT_TRACE_ENABLED);
187184
traceOtelEnabled = configProvider.getBoolean(TRACE_OTEL_ENABLED, DEFAULT_TRACE_OTEL_ENABLED);
188-
logs128bTraceIdEnabled =
189-
configProvider.getBoolean(
190-
TRACE_128_BIT_TRACEID_LOGGING_ENABLED, DEFAULT_TRACE_128_BIT_TRACEID_LOGGING_ENABLED);
185+
191186
profilingEnabled =
192187
ProfilingEnablement.of(
193188
configProvider.getString(PROFILING_ENABLED, String.valueOf(PROFILING_ENABLED_DEFAULT)));
@@ -342,10 +337,6 @@ public boolean isTraceOtelEnabled() {
342337
return traceOtelEnabled;
343338
}
344339

345-
public boolean isLogs128bTraceIdEnabled() {
346-
return logs128bTraceIdEnabled;
347-
}
348-
349340
public boolean isProfilingEnabled() {
350341
return profilingEnabled.isActive();
351342
}
@@ -567,8 +558,6 @@ public String toString() {
567558
+ traceEnabled
568559
+ ", traceOtelEnabled="
569560
+ traceOtelEnabled
570-
+ ", logs128bTraceIdEnabled="
571-
+ logs128bTraceIdEnabled
572561
+ ", profilingEnabled="
573562
+ profilingEnabled
574563
+ ", ciVisibilityEnabled="

internal-api/src/test/groovy/datadog/trace/api/ConfigTest.groovy

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1899,16 +1899,17 @@ class ConfigTest extends DDSpecification {
18991899

19001900
def "verify behavior of features under DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED"() {
19011901
setup:
1902-
environmentVariables.set("DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED", "DD_TAGS")
1902+
environmentVariables.set("DD_TRACE_EXPERIMENTAL_FEATURES_ENABLED", "DD_LOGS_INJECTION, DD_TAGS")
19031903
environmentVariables.set("DD_TAGS", "env:test,aKey:aVal bKey:bVal cKey:")
19041904

19051905
when:
19061906
def config = new Config()
19071907

19081908
then:
1909-
config.experimentalFeaturesEnabled == ["DD_TAGS"].toSet()
1909+
config.experimentalFeaturesEnabled == ["DD_LOGS_INJECTION", "DD_TAGS"].toSet()
19101910

19111911
//verify expected behavior enabled under feature flag
1912+
config.logsInjectionEnabled == false
19121913
config.globalTags == [env: "test", aKey: "aVal bKey:bVal cKey:"]
19131914
}
19141915

@@ -1923,6 +1924,7 @@ class ConfigTest extends DDSpecification {
19231924
config.experimentalFeaturesEnabled == [].toSet()
19241925

19251926
//verify expected behavior when not enabled under feature flag
1927+
config.logsInjectionEnabled == true
19261928
config.globalTags == [env:"test", aKey:"aVal", bKey:"bVal"]
19271929
}
19281930

0 commit comments

Comments
 (0)