@awesomeniko/kafka-trail
Version:
A Node.js library for managing message queue with Kafka
25 lines • 1.14 kB
JavaScript
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