UNPKG

http-tracer-component

Version:

Add tracing spans to each request handler.

32 lines 1.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createHttpTracerComponent = void 0; const logic_1 = require("./logic"); function createHttpTracerComponent(components) { const { server, tracer } = components; server.use((ctx, next) => { const traceParentHeader = ctx.request.headers.get('traceparent'); const traceParent = traceParentHeader ? (0, logic_1.parseTraceParentHeader)(traceParentHeader) : null; const traceStateHeader = ctx.request.headers.get('tracestate'); const traceState = traceStateHeader ? (0, logic_1.parseTraceState)(traceStateHeader) : undefined; const traceContext = traceParent ? { ...traceParent, traceState: traceState !== null && traceState !== void 0 ? traceState : undefined } : undefined; return tracer.span(`${ctx.request.method} ${ctx.url.toString()}`, () => { return next().then(response => { let traceHeaders; const traceparent = tracer.getTraceString(); if (traceparent) { traceHeaders = { traceparent }; const tracestate = tracer.getTraceStateString(); if (tracestate) { traceHeaders.tracestate = tracestate; } } return { ...response, headers: { ...response.headers, ...traceHeaders } }; }); }, traceContext); }); } exports.createHttpTracerComponent = createHttpTracerComponent; //# sourceMappingURL=component.js.map