Skip to content

Commit 8eb0ad4

Browse files
feat(dsm): Clean up pathway binary encoding (#8137)
1 parent 8a3e263 commit 8eb0ad4

File tree

20 files changed

+74
-467
lines changed

20 files changed

+74
-467
lines changed

dd-java-agent/instrumentation/google-pubsub/src/main/java/datadog/trace/instrumentation/googlepubsub/TextMapExtractAdapter.java

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,10 @@
22

33
import com.google.pubsub.v1.PubsubMessage;
44
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
5+
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation.ContextVisitor;
56
import java.util.Map;
67

7-
public class TextMapExtractAdapter
8-
implements AgentPropagation.ContextVisitor<PubsubMessage>,
9-
AgentPropagation.BinaryContextVisitor<PubsubMessage> {
10-
8+
public class TextMapExtractAdapter implements ContextVisitor<PubsubMessage> {
119
public static final TextMapExtractAdapter GETTER = new TextMapExtractAdapter();
1210

1311
@Override
@@ -21,16 +19,4 @@ public void forEachKey(PubsubMessage carrier, AgentPropagation.KeyClassifier cla
2119
}
2220
}
2321
}
24-
25-
@Override
26-
public void forEachKey(PubsubMessage carrier, AgentPropagation.BinaryKeyClassifier classifier) {
27-
for (Map.Entry<String, String> kv : carrier.getAttributesMap().entrySet()) {
28-
String value = kv.getValue();
29-
if (null != value) {
30-
if (!classifier.accept(kv.getKey(), value.getBytes())) {
31-
return;
32-
}
33-
}
34-
}
35-
}
3622
}

dd-java-agent/instrumentation/google-pubsub/src/main/java/datadog/trace/instrumentation/googlepubsub/TextMapInjectAdapter.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,13 @@
22

33
import com.google.pubsub.v1.PubsubMessage;
44
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
5-
import java.nio.charset.StandardCharsets;
65

7-
public class TextMapInjectAdapter
8-
implements AgentPropagation.Setter<PubsubMessage.Builder>,
9-
AgentPropagation.BinarySetter<PubsubMessage.Builder> {
6+
public class TextMapInjectAdapter implements AgentPropagation.Setter<PubsubMessage.Builder> {
107

118
public static final TextMapInjectAdapter SETTER = new TextMapInjectAdapter();
129

1310
@Override
1411
public void set(final PubsubMessage.Builder msg, final String key, final String value) {
1512
msg.putAttributes(key, value);
1613
}
17-
18-
@Override
19-
public void set(PubsubMessage.Builder msg, String key, byte[] value) {
20-
msg.putAttributes(key, new String(value, StandardCharsets.UTF_8));
21-
}
2214
}

dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/NoopTextMapInjectAdapter.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,10 @@
33
import org.apache.kafka.common.header.Headers;
44

55
public class NoopTextMapInjectAdapter implements TextMapInjectAdapterInterface {
6-
76
public static final NoopTextMapInjectAdapter NOOP_SETTER = new NoopTextMapInjectAdapter();
87

98
@Override
109
public void set(final Headers headers, final String key, final String value) {}
1110

12-
@Override
13-
public void set(Headers headers, String key, byte[] value) {}
14-
1511
public void injectTimeInQueue(Headers headers) {}
1612
}

dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TextMapExtractAdapter.java

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,15 @@
55

66
import datadog.trace.api.Config;
77
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
8+
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation.ContextVisitor;
89
import java.nio.ByteBuffer;
910
import java.util.Base64;
1011
import org.apache.kafka.common.header.Header;
1112
import org.apache.kafka.common.header.Headers;
1213
import org.slf4j.Logger;
1314
import org.slf4j.LoggerFactory;
1415

15-
public class TextMapExtractAdapter
16-
implements AgentPropagation.ContextVisitor<Headers>,
17-
AgentPropagation.BinaryContextVisitor<Headers> {
18-
16+
public class TextMapExtractAdapter implements ContextVisitor<Headers> {
1917
private static final Logger log = LoggerFactory.getLogger(TextMapExtractAdapter.class);
2018

2119
public static final TextMapExtractAdapter GETTER =
@@ -32,27 +30,14 @@ public void forEachKey(Headers carrier, AgentPropagation.KeyClassifier classifie
3230
for (Header header : carrier) {
3331
String key = header.key();
3432
byte[] value = header.value();
35-
if (null != value) {
36-
String string =
37-
base64 != null
38-
? new String(base64.decode(header.value()), UTF_8)
39-
: new String(header.value(), UTF_8);
40-
if (!classifier.accept(key, string)) {
41-
return;
42-
}
33+
if (null == value) {
34+
continue;
4335
}
44-
}
45-
}
46-
47-
@Override
48-
public void forEachKey(Headers carrier, AgentPropagation.BinaryKeyClassifier classifier) {
49-
for (Header header : carrier) {
50-
String key = header.key();
51-
byte[] value = header.value();
52-
if (null != value) {
53-
if (!classifier.accept(key, value)) {
54-
return;
55-
}
36+
if (base64 != null) {
37+
value = base64.decode(value);
38+
}
39+
if (!classifier.accept(key, new String(value, UTF_8))) {
40+
return;
5641
}
5742
}
5843
}

dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TextMapInjectAdapter.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,17 @@
11
package datadog.trace.instrumentation.kafka_clients;
22

33
import static datadog.trace.instrumentation.kafka_clients.KafkaDecorator.KAFKA_PRODUCED_KEY;
4+
import static java.nio.charset.StandardCharsets.UTF_8;
45

56
import java.nio.ByteBuffer;
6-
import java.nio.charset.StandardCharsets;
77
import org.apache.kafka.common.header.Headers;
88

99
public class TextMapInjectAdapter implements TextMapInjectAdapterInterface {
1010
public static final TextMapInjectAdapter SETTER = new TextMapInjectAdapter();
1111

1212
@Override
1313
public void set(final Headers headers, final String key, final String value) {
14-
headers.remove(key).add(key, value.getBytes(StandardCharsets.UTF_8));
15-
}
16-
17-
@Override
18-
public void set(Headers headers, String key, byte[] value) {
19-
headers.remove(key).add(key, value);
14+
headers.remove(key).add(key, value.getBytes(UTF_8));
2015
}
2116

2217
public void injectTimeInQueue(Headers headers) {

dd-java-agent/instrumentation/kafka-clients-0.11/src/main/java/datadog/trace/instrumentation/kafka_clients/TextMapInjectAdapterInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
44
import org.apache.kafka.common.header.Headers;
55

6-
public interface TextMapInjectAdapterInterface extends AgentPropagation.BinarySetter<Headers> {
7-
public void injectTimeInQueue(Headers headers);
6+
public interface TextMapInjectAdapterInterface extends AgentPropagation.Setter<Headers> {
7+
void injectTimeInQueue(Headers headers);
88
}

dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/NoopTextMapInjectAdapter.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,5 @@ public class NoopTextMapInjectAdapter implements TextMapInjectAdapterInterface {
99
@Override
1010
public void set(final Headers headers, final String key, final String value) {}
1111

12-
@Override
13-
public void set(Headers headers, String key, byte[] value) {}
14-
1512
public void injectTimeInQueue(Headers headers) {}
1613
}

dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TextMapExtractAdapter.java

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,15 @@
44

55
import datadog.trace.api.Config;
66
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
7+
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation.ContextVisitor;
78
import java.nio.ByteBuffer;
89
import java.util.Base64;
910
import org.apache.kafka.common.header.Header;
1011
import org.apache.kafka.common.header.Headers;
1112
import org.slf4j.Logger;
1213
import org.slf4j.LoggerFactory;
1314

14-
public class TextMapExtractAdapter
15-
implements AgentPropagation.ContextVisitor<Headers>,
16-
AgentPropagation.BinaryContextVisitor<Headers> {
17-
15+
public class TextMapExtractAdapter implements ContextVisitor<Headers> {
1816
private static final Logger log = LoggerFactory.getLogger(TextMapExtractAdapter.class);
1917

2018
public static final TextMapExtractAdapter GETTER =
@@ -31,27 +29,14 @@ public void forEachKey(Headers carrier, AgentPropagation.KeyClassifier classifie
3129
for (Header header : carrier) {
3230
String key = header.key();
3331
byte[] value = header.value();
34-
if (null != value) {
35-
String string =
36-
base64 != null
37-
? new String(base64.decode(header.value()), UTF_8)
38-
: new String(header.value(), UTF_8);
39-
if (!classifier.accept(key, string)) {
40-
return;
41-
}
32+
if (null == value) {
33+
continue;
4234
}
43-
}
44-
}
45-
46-
@Override
47-
public void forEachKey(Headers carrier, AgentPropagation.BinaryKeyClassifier classifier) {
48-
for (Header header : carrier) {
49-
String key = header.key();
50-
byte[] value = header.value();
51-
if (null != value) {
52-
if (!classifier.accept(key, value)) {
53-
return;
54-
}
35+
if (base64 != null) {
36+
value = base64.decode(value);
37+
}
38+
if (!classifier.accept(key, new String(value, UTF_8))) {
39+
return;
5540
}
5641
}
5742
}

dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TextMapInjectAdapter.java

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,16 @@
11
package datadog.trace.instrumentation.kafka_clients38;
22

3+
import static java.nio.charset.StandardCharsets.UTF_8;
4+
35
import java.nio.ByteBuffer;
4-
import java.nio.charset.StandardCharsets;
56
import org.apache.kafka.common.header.Headers;
67

78
public class TextMapInjectAdapter implements TextMapInjectAdapterInterface {
89
public static final TextMapInjectAdapter SETTER = new TextMapInjectAdapter();
910

1011
@Override
1112
public void set(final Headers headers, final String key, final String value) {
12-
headers.remove(key).add(key, value.getBytes(StandardCharsets.UTF_8));
13-
}
14-
15-
@Override
16-
public void set(Headers headers, String key, byte[] value) {
17-
headers.remove(key).add(key, value);
13+
headers.remove(key).add(key, value.getBytes(UTF_8));
1814
}
1915

2016
public void injectTimeInQueue(Headers headers) {

dd-java-agent/instrumentation/kafka-clients-3.8/src/main/java17/datadog/trace/instrumentation/kafka_clients38/TextMapInjectAdapterInterface.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33
import datadog.trace.bootstrap.instrumentation.api.AgentPropagation;
44
import org.apache.kafka.common.header.Headers;
55

6-
public interface TextMapInjectAdapterInterface extends AgentPropagation.BinarySetter<Headers> {
7-
public void injectTimeInQueue(Headers headers);
6+
public interface TextMapInjectAdapterInterface extends AgentPropagation.Setter<Headers> {
7+
void injectTimeInQueue(Headers headers);
88
}

0 commit comments

Comments
 (0)