UNPKG

@vtexlab/planner-message-bus

Version:

A Message Bus that uses AWS SNS, AWS SQS, and AWS EventBridge

33 lines (32 loc) 1.5 kB
import { observabilityStore } from './o11yStore'; export function configureTrace(tracerApi) { observabilityStore.tracer = tracerApi; } export function configureLogger(loggerApi) { observabilityStore.logger = loggerApi; } export function startSpan(name, kind, message) { var _a, _b; let messageParameters = {}; if (message) { messageParameters = setDefaultAttributes(message.endpoint, message.content); } const span = (_a = 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; } export 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' }; } export function getLogger() { return observabilityStore.logger; }