Skip to content

Commit 4306525

Browse files
committed
Improving test coverage + minor fix
1 parent aadc526 commit 4306525

File tree

10 files changed

+275
-185
lines changed

10 files changed

+275
-185
lines changed
Lines changed: 81 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.datadoghq.trace.propagation;
22

33
import com.datadoghq.trace.DDSpanContext;
4-
54
import io.opentracing.propagation.TextMap;
65
import org.slf4j.Logger;
76
import org.slf4j.LoggerFactory;
@@ -18,86 +17,86 @@
1817
*/
1918
public class HTTPCodec implements Codec<TextMap> {
2019

21-
private static final String OT_PREFIX = "ot-tracer-";
22-
private static final String OT_BAGGAGE_PREFIX = "ot-baggage-";
23-
private static final String TRACE_ID_KEY = OT_PREFIX + "traceid";
24-
private static final String SPAN_ID_KEY = OT_PREFIX + "spanid";
25-
26-
private static final Logger logger = LoggerFactory.getLogger(HTTPCodec.class);
27-
28-
@Override
29-
public void inject(DDSpanContext context, TextMap carrier) {
30-
31-
carrier.put(TRACE_ID_KEY, String.valueOf(context.getTraceId()));
32-
carrier.put(SPAN_ID_KEY, String.valueOf(context.getSpanId()));
33-
34-
for (Map.Entry<String, String> entry : context.baggageItems()) {
35-
carrier.put(OT_BAGGAGE_PREFIX + entry.getKey(), encode(entry.getValue()));
36-
}
37-
}
38-
39-
@Override
40-
public DDSpanContext extract(TextMap carrier) {
41-
42-
Map<String, String> baggage = Collections.emptyMap();
43-
Long traceId = 0L;
44-
Long spanId = 0L;
45-
46-
for (Map.Entry<String, String> entry : carrier) {
47-
48-
if (entry.getKey().equals(TRACE_ID_KEY)) {
49-
traceId = Long.parseLong(entry.getValue());
50-
} else if (entry.getKey().equals(SPAN_ID_KEY)) {
51-
spanId = Long.parseLong(entry.getValue());
52-
} else if (entry.getKey().startsWith(OT_BAGGAGE_PREFIX)) {
53-
if (baggage.isEmpty()) {
54-
baggage = new HashMap<String, String>();
55-
}
56-
baggage.put(entry.getKey(), decode(entry.getValue()));
57-
}
58-
}
59-
DDSpanContext context = null;
60-
if (traceId != 0L) {
61-
62-
context = new DDSpanContext(
63-
traceId,
64-
spanId,
65-
0L,
66-
null,
67-
null,
68-
null,
69-
baggage,
70-
false,
71-
null,
72-
null,
73-
null,
74-
null);
75-
76-
logger.debug("{} - Parent context extracted", context);
77-
}
78-
79-
return context;
80-
}
81-
82-
83-
private String encode(String value) {
84-
String encoded = value;
85-
try {
86-
encoded = URLEncoder.encode(value, "UTF-8");
87-
} catch (UnsupportedEncodingException e) {
88-
logger.info("Failed to encode value - {}", value);
89-
}
90-
return encoded;
91-
}
92-
93-
private String decode(String value) {
94-
String decoded = value;
95-
try {
96-
decoded = URLDecoder.decode(value, "UTF-8");
97-
} catch (UnsupportedEncodingException e) {
98-
logger.info("Failed to decode value - {}", value);
99-
}
100-
return decoded;
101-
}
20+
private static final String OT_PREFIX = "ot-tracer-";
21+
private static final String OT_BAGGAGE_PREFIX = "ot-baggage-";
22+
private static final String TRACE_ID_KEY = OT_PREFIX + "traceid";
23+
private static final String SPAN_ID_KEY = OT_PREFIX + "spanid";
24+
25+
private static final Logger logger = LoggerFactory.getLogger(HTTPCodec.class);
26+
27+
@Override
28+
public void inject(DDSpanContext context, TextMap carrier) {
29+
30+
carrier.put(TRACE_ID_KEY, String.valueOf(context.getTraceId()));
31+
carrier.put(SPAN_ID_KEY, String.valueOf(context.getSpanId()));
32+
33+
for (Map.Entry<String, String> entry : context.baggageItems()) {
34+
carrier.put(OT_BAGGAGE_PREFIX + entry.getKey(), encode(entry.getValue()));
35+
}
36+
}
37+
38+
@Override
39+
public DDSpanContext extract(TextMap carrier) {
40+
41+
Map<String, String> baggage = Collections.emptyMap();
42+
Long traceId = 0L;
43+
Long spanId = 0L;
44+
45+
for (Map.Entry<String, String> entry : carrier) {
46+
47+
if (entry.getKey().equals(TRACE_ID_KEY)) {
48+
traceId = Long.parseLong(entry.getValue());
49+
} else if (entry.getKey().equals(SPAN_ID_KEY)) {
50+
spanId = Long.parseLong(entry.getValue());
51+
} else if (entry.getKey().startsWith(OT_BAGGAGE_PREFIX)) {
52+
if (baggage.isEmpty()) {
53+
baggage = new HashMap<String, String>();
54+
}
55+
baggage.put(entry.getKey().replace(OT_BAGGAGE_PREFIX, ""), decode(entry.getValue()));
56+
}
57+
}
58+
DDSpanContext context = null;
59+
if (traceId != 0L) {
60+
61+
context = new DDSpanContext(
62+
traceId,
63+
spanId,
64+
0L,
65+
null,
66+
null,
67+
null,
68+
baggage,
69+
false,
70+
null,
71+
null,
72+
null,
73+
null);
74+
75+
logger.debug("{} - Parent context extracted", context);
76+
}
77+
78+
return context;
79+
}
80+
81+
82+
private String encode(String value) {
83+
String encoded = value;
84+
try {
85+
encoded = URLEncoder.encode(value, "UTF-8");
86+
} catch (UnsupportedEncodingException e) {
87+
logger.info("Failed to encode value - {}", value);
88+
}
89+
return encoded;
90+
}
91+
92+
private String decode(String value) {
93+
String decoded = value;
94+
try {
95+
decoded = URLDecoder.decode(value, "UTF-8");
96+
} catch (UnsupportedEncodingException e) {
97+
logger.info("Failed to decode value - {}", value);
98+
}
99+
return decoded;
100+
}
102101

103102
}

dd-trace/src/main/java/com/datadoghq/trace/resolver/DDTracerFactory.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package com.datadoghq.trace.resolver;
22

33
import com.datadoghq.trace.DDTracer;
4-
import com.datadoghq.trace.sampling.ASampler;
4+
import com.datadoghq.trace.sampling.AbstractSampler;
55
import com.datadoghq.trace.sampling.AllSampler;
66
import com.datadoghq.trace.sampling.RateSampler;
77
import com.datadoghq.trace.sampling.Sampler;
@@ -74,8 +74,8 @@ public static DDTracer create(TracerConfig config) {
7474

7575
//Add sampled tags
7676
Map<String, String> skipTagsPatterns = config.getSampler().getSkipTagsPatterns();
77-
if (skipTagsPatterns != null && sampler instanceof ASampler) {
78-
ASampler aSampler = (ASampler) sampler;
77+
if (skipTagsPatterns != null && sampler instanceof AbstractSampler) {
78+
AbstractSampler aSampler = (AbstractSampler) sampler;
7979
for (Map.Entry<String, String> entry : skipTagsPatterns.entrySet()) {
8080
aSampler.addSkipTagPattern(entry.getKey(), Pattern.compile(entry.getValue()));
8181
}

dd-trace/src/main/java/com/datadoghq/trace/sampling/ASampler.java renamed to dd-trace/src/main/java/com/datadoghq/trace/sampling/AbstractSampler.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package com.datadoghq.trace.sampling;
22

3+
import com.datadoghq.trace.DDBaseSpan;
4+
35
import java.util.HashMap;
46
import java.util.Map;
57
import java.util.Map.Entry;
68
import java.util.regex.Pattern;
79

8-
import com.datadoghq.trace.DDBaseSpan;
9-
10-
public abstract class ASampler implements Sampler{
10+
public abstract class AbstractSampler implements Sampler {
1111

1212
/**
1313
* Sample tags

dd-trace/src/main/java/com/datadoghq/trace/sampling/AllSampler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/**
66
* Sampler that always says yes...
77
*/
8-
public class AllSampler extends ASampler {
8+
public class AllSampler extends AbstractSampler {
99

1010
@Override
1111
public boolean doSample(DDBaseSpan<?> span) {

dd-trace/src/main/java/com/datadoghq/trace/sampling/RateSampler.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
package com.datadoghq.trace.sampling;
22

33

4-
import org.slf4j.Logger;
5-
import org.slf4j.LoggerFactory;
6-
74
import com.datadoghq.trace.DDBaseSpan;
85
import com.google.auto.service.AutoService;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
98

109

1110
/**
@@ -15,7 +14,7 @@
1514
* It samples randomly, its main purpose is to reduce the instrumentation footprint.
1615
*/
1716
@AutoService(Sampler.class)
18-
public class RateSampler extends ASampler {
17+
public class RateSampler extends AbstractSampler {
1918

2019

2120
private final static Logger logger = LoggerFactory.getLogger(RateSampler.class);

dd-trace/src/test/java/ExampleWithDDAgentWriter.java

Lines changed: 0 additions & 54 deletions
This file was deleted.

dd-trace/src/test/java/com/datadoghq/trace/AllSamplerTest.java

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)