UNPKG

@awesomeniko/kafka-trail

Version:

A Node.js library for managing message queue with Kafka

25 lines 1.14 kB
import { context, SpanKind, trace } from "@opentelemetry/api"; export const KTHandler = (params) => { return { topic: params.topic, run: async (payload, ctx, publisher, kafkaTopicParams) => { const tracer = trace.getTracer(`kafka-trail`, '1.0.0'); const { partition, lastOffset } = kafkaTopicParams; const span = tracer.startSpan(`kafka-trail: handler ${params.topic.topicSettings.topic}`, { kind: SpanKind.CONSUMER, attributes: { 'messaging.system': 'kafka', 'messaging.destination': params.topic.topicSettings.topic, 'messaging.kafka.partition': partition, 'messaging.kafka.offset': lastOffset, 'messaging.kafka.payload': JSON.stringify(payload), }, }); await context.with(trace.setSpan(context.active(), span), async () => { await params.run(payload, ctx, publisher, kafkaTopicParams); span.end(); }); }, }; }; //# sourceMappingURL=consumer-handler.js.map