Compare commits

...

1 Commits

Author SHA1 Message Date
Moritz Lang b25b8b2555
Handle missing sample flag as empty trace flags 2023-05-07 14:44:23 +07:00
2 changed files with 8 additions and 11 deletions

View File

@ -73,14 +73,11 @@ public struct XRayPropagator: OTelPropagator {
guard let traceID = extractedTraceID else {
throw TraceHeaderParsingError(value: tracingHeader, reason: .missingTraceID)
}
guard let traceFlags = extractedTraceFlags else {
throw TraceHeaderParsingError(value: tracingHeader, reason: .missingSampleDecision)
}
return OTel.SpanContext(
traceID: traceID,
spanID: spanID ?? OTel.SpanID(bytes: (0, 0, 0, 0, 0, 0, 0, 0)),
traceFlags: traceFlags,
traceFlags: extractedTraceFlags ?? [],
isRemote: true
)
}
@ -148,7 +145,5 @@ extension XRayPropagator.TraceHeaderParsingError {
case invalidTraceIDDelimiters
case invalidSpanIDLength(Int)
case missingSampleDecision
}
}

View File

@ -125,14 +125,16 @@ final class XRayPropagatorTests: XCTestCase {
)
}
func test_extractFails_missingSampleDecision() throws {
func test_extractsTracingHeader_missingSampleDecision() throws {
let tracingHeader = "Root=1-5759e988-bd862e3fe1be46a994272793;Parent=53995c3f42cd8ad8"
let headers = ["X-Amzn-Trace-Id": tracingHeader]
XCTAssertThrowsError(
try propagator.extractSpanContext(from: headers, using: extractor),
XRayPropagator.TraceHeaderParsingError(value: tracingHeader, reason: .missingSampleDecision)
)
let spanContext = try XCTUnwrap(propagator.extractSpanContext(from: headers, using: extractor))
XCTAssertEqual(spanContext.traceID.description, "5759e988bd862e3fe1be46a994272793")
XCTAssertEqual(spanContext.spanID.description, "53995c3f42cd8ad8")
XCTAssertTrue(spanContext.traceFlags.isEmpty)
XCTAssertNil(spanContext.traceState)
}
func test_extractFails_invalidTraceIDLength() throws {