tracer-component
Version:
Trace execution spans all across your application.
34 lines • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.buildTraceContext = exports.generateSpanId = exports.generateTraceId = exports.buildTraceString = void 0;
const node_crypto_1 = require("node:crypto");
const constants_1 = require("./constants");
function buildTraceString(traceParent) {
return `${traceParent.version}-${traceParent.traceId}-${traceParent.parentId}-${traceParent.traceFlags}`;
}
exports.buildTraceString = buildTraceString;
function generateRandomBytesHexString(length) {
return (0, node_crypto_1.randomBytes)(length).toString('hex').toLowerCase();
}
function generateTraceId() {
return generateRandomBytesHexString(16);
}
exports.generateTraceId = generateTraceId;
function generateSpanId() {
return generateRandomBytesHexString(8);
}
exports.generateSpanId = generateSpanId;
function buildTraceContext({ name, parentId, traceId, version, traceFlags, traceState, data }) {
return {
name,
id: generateSpanId(),
parentId: parentId !== null && parentId !== void 0 ? parentId : constants_1.INVALID_SPAN_ID,
traceId,
version,
traceFlags,
traceState,
data
};
}
exports.buildTraceContext = buildTraceContext;
//# sourceMappingURL=logic.js.map