mirror of
https://github.com/rxliuli/apps.apple.com.git
synced 2025-11-09 23:00:32 +00:00
40 lines
979 B
JavaScript
40 lines
979 B
JavaScript
const TRACEPARENT_REGEXP = new RegExp(
|
|
'^[ \\t]*' + // whitespace
|
|
'([0-9a-f]{32})?' + // trace_id
|
|
'-?([0-9a-f]{16})?' + // span_id
|
|
'-?([01])?' + // sampled
|
|
'[ \\t]*$', // whitespace
|
|
);
|
|
|
|
/**
|
|
* Extract transaction context data from a `sentry-trace` header.
|
|
*
|
|
* @param traceparent Traceparent string
|
|
*
|
|
* @returns Object containing data from the header, or undefined if traceparent string is malformed
|
|
*/
|
|
function extractTraceparentData(traceparent) {
|
|
const matches = traceparent.match(TRACEPARENT_REGEXP);
|
|
|
|
if (!traceparent || !matches) {
|
|
// empty string or no matches is invalid traceparent data
|
|
return undefined;
|
|
}
|
|
|
|
let parentSampled;
|
|
if (matches[3] === '1') {
|
|
parentSampled = true;
|
|
} else if (matches[3] === '0') {
|
|
parentSampled = false;
|
|
}
|
|
|
|
return {
|
|
traceId: matches[1],
|
|
parentSampled,
|
|
parentSpanId: matches[2],
|
|
};
|
|
}
|
|
|
|
export { TRACEPARENT_REGEXP, extractTraceparentData };
|
|
//# sourceMappingURL=tracing.js.map
|