UNPKG

@message-in-the-middle/core

Version:

Framework-agnostic middleware pattern for message queue processing. Core package with all middlewares.

59 lines 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TracingOutboundMiddleware = exports.TracingInboundMiddleware = void 0; class TracingInboundMiddleware { tracer; serviceName; constructor(tracer, serviceName = 'sqs-consumer') { this.tracer = tracer; this.serviceName = serviceName; } async process(context, next) { const span = this.tracer.startSpan('sqs.process_message', { messageId: context.raw?.MessageId, }); span.setTag('service.name', this.serviceName); span.setTag('message.id', context.raw?.MessageId); span.setTag('message.attributes', context.attributes); try { await next(); span.setTag('status', 'success'); } catch (error) { span.setTag('status', 'error'); span.setError(error); throw error; } finally { span.finish(); } } } exports.TracingInboundMiddleware = TracingInboundMiddleware; class TracingOutboundMiddleware { tracer; serviceName; constructor(tracer, serviceName = 'sqs-producer') { this.tracer = tracer; this.serviceName = serviceName; } async processOutbound(context, next) { const span = this.tracer.startSpan('sqs.send_message'); span.setTag('service.name', this.serviceName); span.setTag('message.size', JSON.stringify(context.message).length); try { await next(); span.setTag('status', 'success'); } catch (error) { span.setTag('status', 'error'); span.setError(error); throw error; } finally { span.finish(); } } } exports.TracingOutboundMiddleware = TracingOutboundMiddleware; //# sourceMappingURL=tracing.middleware.js.map