import { Controller, Get } from '@nestjs/common'; import { Ctx, EventPattern, MessagePattern, Payload, RedisContext, } from '@nestjs/microservices'; import { randomInt } from 'crypto'; import { AppService } from './app.service'; import { trace, Span, propagation, context, createContextKey, SpanContext, } from '@opentelemetry/api'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @MessagePattern('test_message') getMessage(payload: { data: any; spanCtx: SpanContext }) { const { data } = payload; const parentSpanCtx = payload.spanCtx; console.log(parentSpanCtx); const parentSpan = trace.setSpanContext(context.active(), parentSpanCtx); const span2 = trace .getTracer('user-serive') .startSpan('childspan', {}, parentSpan); console.log('MessagePattern', { data }); span2.end(); return 10; } @EventPattern('test_event') message(data: any) { console.log('EventPattern', { data }); return 11; } }