Skip to content

Commit 4a83613

Browse files
DotSpyvladislav-kivadyladan
authored
feat: decode jaeger header (open-telemetry#735)
* feat: decode jaeger header * fix: gts fix * fix: use const instead of variables * fix: use const for headers Co-authored-by: Uladzislau Kiva <[email protected]> Co-authored-by: Daniel Dyla <[email protected]>
1 parent 4e3c44d commit 4a83613

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

packages/opentelemetry-propagator-jaeger/src/JaegerHttpTraceFormat.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ export class JaegerHttpTraceFormat implements HttpTextFormat {
8686
* @return {SpanContext} - returns a span context represented by the serializedString.
8787
**/
8888
function deserializeSpanContext(serializedString: string): SpanContext | null {
89-
let headers = serializedString.split(':');
89+
const headers = decodeURIComponent(serializedString).split(':');
9090
if (headers.length !== 4) {
9191
return null;
9292
}

packages/opentelemetry-propagator-jaeger/test/JaegerHttpTraceFormat.test.ts

+13
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,19 @@ describe('JaegerHttpTraceFormat', () => {
8888
});
8989
});
9090

91+
it('should extract context of a sampled span from UTF-8 encoded carrier', () => {
92+
carrier[UBER_TRACE_ID_HEADER] =
93+
'ac1f3dc3c2c0b06e%3A5ac292c4a11a163e%3Ac086aaa825821068%3A1';
94+
const extractedSpanContext = jaegerHttpTraceFormat.extract('', carrier);
95+
96+
assert.deepStrictEqual(extractedSpanContext, {
97+
spanId: '5ac292c4a11a163e',
98+
traceId: 'ac1f3dc3c2c0b06e',
99+
isRemote: true,
100+
traceFlags: TraceFlags.SAMPLED,
101+
});
102+
});
103+
91104
it('should use custom header if provided', () => {
92105
carrier[customHeader] =
93106
'd4cda95b652f4a1592b449d5929fda1b:6e0c63257de34c92:0:01';

0 commit comments

Comments
 (0)