File tree 4 files changed +20
-1
lines changed
dd-java-agent/instrumentation/jms/src/main/java/datadog/trace/instrumentation/jms
dd-trace-api/src/main/java/datadog/trace/api/config
internal-api/src/main/java/datadog/trace/api
4 files changed +20
-1
lines changed Original file line number Diff line number Diff line change 1
1
package datadog .trace .instrumentation .jms ;
2
2
3
+ import datadog .trace .api .Config ;
3
4
import datadog .trace .api .Function ;
4
5
import datadog .trace .api .cache .DDCache ;
5
6
import datadog .trace .api .cache .DDCaches ;
12
13
@ Slf4j
13
14
public class MessageExtractAdapter implements AgentPropagation .ContextVisitor <Message > {
14
15
16
+ private static final boolean USE_LEGACY_DASH_REPLACEMENT =
17
+ Config .get ().isJmsLegacyDashReplacement ();
18
+
15
19
private static final Function <String , String > KEY_MAPPER =
16
20
new Function <String , String >() {
17
21
@ Override
18
22
public String apply (String key ) {
23
+ if (USE_LEGACY_DASH_REPLACEMENT ) {
24
+ return key .replace ("__dash__" , "-" ).toLowerCase ();
25
+ }
19
26
return key .replace ('$' , '-' ).toLowerCase ();
20
27
}
21
28
};
Original file line number Diff line number Diff line change 1
1
package datadog .trace .instrumentation .jms ;
2
2
3
+ import datadog .trace .api .Config ;
3
4
import datadog .trace .bootstrap .instrumentation .api .AgentPropagation ;
4
5
import javax .jms .JMSException ;
5
6
import javax .jms .Message ;
8
9
@ Slf4j
9
10
public class MessageInjectAdapter implements AgentPropagation .Setter <Message > {
10
11
12
+ private static final boolean USE_LEGACY_DASH_REPLACEMENT =
13
+ Config .get ().isJmsLegacyDashReplacement ();
14
+
11
15
public static final MessageInjectAdapter SETTER = new MessageInjectAdapter ();
12
16
13
17
@ Override
14
18
public void set (final Message carrier , final String key , final String value ) {
15
- final String propName = key .replace ('-' , '$' );
19
+ final String propName =
20
+ USE_LEGACY_DASH_REPLACEMENT ? key .replace ("-" , "__dash__" ) : key .replace ('-' , '$' );
16
21
try {
17
22
carrier .setStringProperty (propName , value );
18
23
} catch (final JMSException e ) {
Original file line number Diff line number Diff line change @@ -51,5 +51,7 @@ public final class TracerConfig {
51
51
52
52
public static final String ENABLE_TRACE_AGENT_V05 = "trace.agent.v0.5.enabled" ;
53
53
54
+ public static final String JMS_LEGACY_DASH_REPLACEMENT = "trace.jms.legacy.dash.replacement" ;
55
+
54
56
private TracerConfig () {}
55
57
}
Original file line number Diff line number Diff line change 144
144
import static datadog .trace .api .config .TracerConfig .HTTP_CLIENT_ERROR_STATUSES ;
145
145
import static datadog .trace .api .config .TracerConfig .HTTP_SERVER_ERROR_STATUSES ;
146
146
import static datadog .trace .api .config .TracerConfig .ID_GENERATION_STRATEGY ;
147
+ import static datadog .trace .api .config .TracerConfig .JMS_LEGACY_DASH_REPLACEMENT ;
147
148
import static datadog .trace .api .config .TracerConfig .PARTIAL_FLUSH_MIN_SPANS ;
148
149
import static datadog .trace .api .config .TracerConfig .PRIORITY_SAMPLING ;
149
150
import static datadog .trace .api .config .TracerConfig .PRIORITY_SAMPLING_FORCE ;
@@ -372,6 +373,8 @@ private String profilingProxyPasswordMasker() {
372
373
373
374
@ Getter private final boolean internalExitOnFailure ;
374
375
376
+ @ Getter private final boolean jmsLegacyDashReplacement ;
377
+
375
378
@ Getter private final boolean resolverUseLoadClassEnabled ;
376
379
377
380
@ Getter private final String jdbcPreparedStatementClassName ;
@@ -630,6 +633,8 @@ && isJavaVersionAtLeast(8)
630
633
traceAnalyticsEnabled =
631
634
configProvider .getBoolean (TRACE_ANALYTICS_ENABLED , DEFAULT_TRACE_ANALYTICS_ENABLED );
632
635
636
+ jmsLegacyDashReplacement = configProvider .getBoolean (JMS_LEGACY_DASH_REPLACEMENT , false );
637
+
633
638
traceSamplingServiceRules = configProvider .getMergedMap (TRACE_SAMPLING_SERVICE_RULES );
634
639
traceSamplingOperationRules = configProvider .getMergedMap (TRACE_SAMPLING_OPERATION_RULES );
635
640
traceSampleRate = configProvider .getDouble (TRACE_SAMPLE_RATE );
You can’t perform that action at this time.
0 commit comments