@vtexlab/planner-message-bus
Version:
A Message Bus that uses AWS SNS, AWS SQS, and AWS EventBridge
41 lines (40 loc) • 1.91 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getLogger = exports.setDefaultAttributes = exports.startSpan = exports.configureLogger = exports.configureTrace = void 0;
const o11yStore_1 = require("./o11yStore");
function configureTrace(tracerApi) {
o11yStore_1.observabilityStore.tracer = tracerApi;
}
exports.configureTrace = configureTrace;
function configureLogger(loggerApi) {
o11yStore_1.observabilityStore.logger = loggerApi;
}
exports.configureLogger = configureLogger;
function startSpan(name, kind, message) {
var _a, _b;
let messageParameters = {};
if (message) {
messageParameters = setDefaultAttributes(message.endpoint, message.content);
}
const span = (_a = o11yStore_1.observabilityStore.tracer) === null || _a === void 0 ? void 0 : _a.startSpan(name, {
kind,
attributes: Object.assign({ stack: 'planner-message-bus', aws_region: process.env.AWS_REGION, aws_account: process.env.AWS_ACCOUNT }, messageParameters),
startTime: (_b = message === null || message === void 0 ? void 0 : message.content) === null || _b === void 0 ? void 0 : _b.Timestamp
});
return span;
}
exports.startSpan = startSpan;
function setDefaultAttributes(endpoint, content) {
var _a, _b, _c;
return {
endpoint,
correlationId: (_a = content === null || content === void 0 ? void 0 : content.CorrelationId) !== null && _a !== void 0 ? _a : 'none',
accountName: (_b = content === null || content === void 0 ? void 0 : content.Account.Name) !== null && _b !== void 0 ? _b : ' vtex',
accountId: (_c = content === null || content === void 0 ? void 0 : content.Account.Id) !== null && _c !== void 0 ? _c : 'vtex'
};
}
exports.setDefaultAttributes = setDefaultAttributes;
function getLogger() {
return o11yStore_1.observabilityStore.logger;
}
exports.getLogger = getLogger;