Skip to content

Commit d078667

Browse files
committed
remove baggage propagation from xray propagator
1 parent e1ab43c commit d078667

File tree

2 files changed

+13
-165
lines changed

2 files changed

+13
-165
lines changed

aws-xray-propagator/src/main/java/io/opentelemetry/contrib/awsxray/propagator/AwsXrayPropagator.java

+13-59
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,6 @@
55

66
package io.opentelemetry.contrib.awsxray.propagator;
77

8-
import io.opentelemetry.api.baggage.Baggage;
9-
import io.opentelemetry.api.baggage.BaggageBuilder;
10-
import io.opentelemetry.api.baggage.BaggageEntry;
118
import io.opentelemetry.api.internal.StringUtils;
129
import io.opentelemetry.api.trace.Span;
1310
import io.opentelemetry.api.trace.SpanContext;
@@ -21,7 +18,6 @@
2118
import io.opentelemetry.context.propagation.TextMapSetter;
2219
import java.util.Collections;
2320
import java.util.List;
24-
import java.util.function.BiConsumer;
2521
import java.util.logging.Logger;
2622
import javax.annotation.Nullable;
2723

@@ -112,49 +108,19 @@ public <C> void inject(Context context, @Nullable C carrier, TextMapSetter<C> se
112108
char samplingFlag = spanContext.isSampled() ? IS_SAMPLED : NOT_SAMPLED;
113109
// TODO: Add OT trace state to the X-Ray trace header
114110

115-
StringBuilder traceHeader = new StringBuilder();
116-
traceHeader
117-
.append(TRACE_ID_KEY)
118-
.append(KV_DELIMITER)
119-
.append(xrayTraceId)
120-
.append(TRACE_HEADER_DELIMITER)
121-
.append(PARENT_ID_KEY)
122-
.append(KV_DELIMITER)
123-
.append(parentId)
124-
.append(TRACE_HEADER_DELIMITER)
125-
.append(SAMPLED_FLAG_KEY)
126-
.append(KV_DELIMITER)
127-
.append(samplingFlag);
128-
129-
Baggage baggage = Baggage.fromContext(context);
130-
// Truncate baggage to 256 chars per X-Ray spec.
131-
baggage.forEach(
132-
new BiConsumer<String, BaggageEntry>() {
133-
134-
private int baggageWrittenBytes;
135-
136-
@Override
137-
public void accept(String key, BaggageEntry entry) {
138-
if (key.equals(TRACE_ID_KEY)
139-
|| key.equals(PARENT_ID_KEY)
140-
|| key.equals(SAMPLED_FLAG_KEY)) {
141-
return;
142-
}
143-
// Size is key/value pair, excludes delimiter.
144-
int size = key.length() + entry.getValue().length() + 1;
145-
if (baggageWrittenBytes + size > 256) {
146-
return;
147-
}
148-
traceHeader
149-
.append(TRACE_HEADER_DELIMITER)
150-
.append(key)
151-
.append(KV_DELIMITER)
152-
.append(entry.getValue());
153-
baggageWrittenBytes += size;
154-
}
155-
});
156-
157-
setter.set(carrier, TRACE_HEADER_KEY, traceHeader.toString());
111+
String traceHeader = TRACE_ID_KEY +
112+
KV_DELIMITER +
113+
xrayTraceId +
114+
TRACE_HEADER_DELIMITER +
115+
PARENT_ID_KEY +
116+
KV_DELIMITER +
117+
parentId +
118+
TRACE_HEADER_DELIMITER +
119+
SAMPLED_FLAG_KEY +
120+
KV_DELIMITER +
121+
samplingFlag;
122+
123+
setter.set(carrier, TRACE_HEADER_KEY, traceHeader);
158124
}
159125

160126
@Override
@@ -180,9 +146,6 @@ private static <C> Context getContextFromHeader(
180146
String spanId = SpanId.getInvalid();
181147
Boolean isSampled = false;
182148

183-
BaggageBuilder baggage = null;
184-
int baggageReadBytes = 0;
185-
186149
int pos = 0;
187150
while (pos < traceHeader.length()) {
188151
int delimiterIndex = traceHeader.indexOf(TRACE_HEADER_DELIMITER, pos);
@@ -210,12 +173,6 @@ private static <C> Context getContextFromHeader(
210173
spanId = parseSpanId(value);
211174
} else if (trimmedPart.startsWith(SAMPLED_FLAG_KEY)) {
212175
isSampled = parseTraceFlag(value);
213-
} else if (baggageReadBytes + trimmedPart.length() <= 256) {
214-
if (baggage == null) {
215-
baggage = Baggage.builder();
216-
}
217-
baggage.put(trimmedPart.substring(0, equalsIndex), value);
218-
baggageReadBytes += trimmedPart.length();
219176
}
220177
}
221178
if (isSampled == null) {
@@ -241,9 +198,6 @@ private static <C> Context getContextFromHeader(
241198
if (spanContext.isValid()) {
242199
context = context.with(Span.wrap(spanContext));
243200
}
244-
if (baggage != null) {
245-
context = context.with(baggage.build());
246-
}
247201
return context;
248202
}
249203

aws-xray-propagator/src/test/java/io/opentelemetry/contrib/awsxray/propagator/AwsXrayPropagatorTest.java

-106
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import static io.opentelemetry.contrib.awsxray.propagator.AwsXrayPropagator.TRACE_HEADER_KEY;
99
import static org.assertj.core.api.Assertions.assertThat;
1010

11-
import io.opentelemetry.api.baggage.Baggage;
1211
import io.opentelemetry.api.trace.Span;
1312
import io.opentelemetry.api.trace.SpanContext;
1413
import io.opentelemetry.api.trace.TraceFlags;
@@ -21,8 +20,6 @@
2120
import java.util.LinkedHashMap;
2221
import java.util.Map;
2322
import java.util.Set;
24-
import java.util.stream.Collectors;
25-
import java.util.stream.Stream;
2623
import javax.annotation.Nullable;
2724
import org.junit.jupiter.api.Test;
2825

@@ -89,63 +86,6 @@ void inject_NotSampledContext() {
8986
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=0");
9087
}
9188

92-
@Test
93-
void inject_WithBaggage() {
94-
Map<String, String> carrier = new LinkedHashMap<>();
95-
subject.inject(
96-
withSpanContext(
97-
SpanContext.create(
98-
TRACE_ID, SPAN_ID, TraceFlags.getDefault(), TraceState.getDefault()),
99-
Context.current())
100-
.with(
101-
Baggage.builder()
102-
.put("cat", "meow")
103-
.put("dog", "bark")
104-
.put("Root", "ignored")
105-
.put("Parent", "ignored")
106-
.put("Sampled", "ignored")
107-
.build()),
108-
carrier,
109-
SETTER);
110-
111-
assertThat(carrier)
112-
.containsEntry(
113-
TRACE_HEADER_KEY,
114-
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=0;"
115-
+ "cat=meow;dog=bark");
116-
}
117-
118-
@Test
119-
void inject_WithBaggage_LimitTruncates() {
120-
Map<String, String> carrier = new LinkedHashMap<>();
121-
// Limit is 256 characters for all baggage. We add a 254-character key/value pair and a
122-
// 3 character key value pair.
123-
String key1 = Stream.generate(() -> "a").limit(252).collect(Collectors.joining());
124-
String value1 = "a"; // 252 + 1 (=) + 1 = 254
125-
126-
String key2 = "b";
127-
String value2 = "b"; // 1 + 1 (=) + 1 = 3
128-
129-
Baggage baggage = Baggage.builder().put(key1, value1).put(key2, value2).build();
130-
131-
subject.inject(
132-
withSpanContext(
133-
SpanContext.create(
134-
TRACE_ID, SPAN_ID, TraceFlags.getDefault(), TraceState.getDefault()),
135-
Context.current())
136-
.with(baggage),
137-
carrier,
138-
SETTER);
139-
140-
assertThat(carrier)
141-
.containsEntry(
142-
TRACE_HEADER_KEY,
143-
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=0;"
144-
+ key1
145-
+ '='
146-
+ value1);
147-
}
148-
14989
@Test
15090
void inject_WithTraceState() {
15191
Map<String, String> carrier = new LinkedHashMap<>();
@@ -232,52 +172,6 @@ void extract_DifferentPartOrder() {
232172
TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault()));
233173
}
234174

235-
@Test
236-
void extract_AdditionalFields() {
237-
Map<String, String> carrier = new LinkedHashMap<>();
238-
carrier.put(
239-
TRACE_HEADER_KEY,
240-
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=1;Foo=Bar");
241-
242-
Context context = subject.extract(Context.current(), carrier, GETTER);
243-
assertThat(getSpanContext(context))
244-
.isEqualTo(
245-
SpanContext.createFromRemoteParent(
246-
TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault()));
247-
assertThat(Baggage.fromContext(context).getEntryValue("Foo")).isEqualTo("Bar");
248-
}
249-
250-
@Test
251-
void extract_Baggage_LimitTruncates() {
252-
// Limit is 256 characters for all baggage. We add a 254-character key/value pair and a
253-
// 3 character key value pair.
254-
String key1 = Stream.generate(() -> "a").limit(252).collect(Collectors.joining());
255-
String value1 = "a"; // 252 + 1 (=) + 1 = 254
256-
257-
String key2 = "b";
258-
String value2 = "b"; // 1 + 1 (=) + 1 = 3
259-
260-
Map<String, String> carrier = new LinkedHashMap<>();
261-
carrier.put(
262-
TRACE_HEADER_KEY,
263-
"Root=1-8a3c60f7-d188f8fa79d48a391a778fa6;Parent=53995c3f42cd8ad8;Sampled=1;"
264-
+ key1
265-
+ '='
266-
+ value1
267-
+ ';'
268-
+ key2
269-
+ '='
270-
+ value2);
271-
272-
Context context = subject.extract(Context.current(), carrier, GETTER);
273-
assertThat(getSpanContext(context))
274-
.isEqualTo(
275-
SpanContext.createFromRemoteParent(
276-
TRACE_ID, SPAN_ID, TraceFlags.getSampled(), TraceState.getDefault()));
277-
assertThat(Baggage.fromContext(context).getEntryValue(key1)).isEqualTo(value1);
278-
assertThat(Baggage.fromContext(context).getEntryValue(key2)).isNull();
279-
}
280-
281175
@Test
282176
void extract_EmptyHeaderValue() {
283177
Map<String, String> invalidHeaders = new LinkedHashMap<>();

0 commit comments

Comments
 (0)