import { Controller, Get } from '@nestjs/common'; import { AppService } from './app.service'; import { trace, Span, propagation, context, createContextKey, } from '@opentelemetry/api'; @Controller() export class AppController { constructor(private readonly appService: AppService) {} @Get() async getHello() { const newTracer = trace.getTracer('user-serive'); const ctx = context.active(); const ctxKey = createContextKey('First ctx key'); ctx.setValue(ctxKey, 'ctx1'); const output = {}; propagation.inject(ctx, output); console.log(output, ctx); const span1 = newTracer.startSpan('start1', {}, ctx); const spanCtx = span1.spanContext(); await this.appService.getHello(spanCtx); span1.end(); // let activeContext = propagation.extract(context.active(), {}); // activeContext.getValue(); const span2 = newTracer.startSpan('start2'); this.appService.getHello2(); span2.end(); } }