0

我正在尝试使用 OpenTelementry 检测 Node.js 程序。此应用程序不使用任何 http 框架(Express 等)。它处理 Kafka 消息,需要调用 Redis 和一些 REST API(通过 Axios)。我为 OpenTelementry 创建了一个简单的测试,但无论我做什么,我都无法获得一个跨度来生成任何东西。任何帮助,将不胜感激。

import { NodeTracerProvider } from '@opentelemetry/node';
import { ConsoleSpanExporter, SimpleSpanProcessor } from '@opentelemetry/tracing';

const provider = new NodeTracerProvider();
const consoleExporter = new ConsoleSpanExporter();

provider.addSpanProcessor(new SimpleSpanProcessor(consoleExporter));
provider.register();

import opentelemetry, { context, getSpan, getSpanContext } from '@opentelemetry/api';

const tracer = opentelemetry.trace.getTracer('test');

const spanContext = getSpanContext(context.active());
console.log(spanContext);
const traceId = spanContext && spanContext.traceId;
console.log(traceId);

const span = tracer.startSpan('message');

setTimeout(() => {
  console.log('message processed');
}, 1000);

span.end();

在我的控制台中,我得到的只是跨度上下文和跟踪 ID 的未定义,我得到了处理我的消息。

4

0 回答 0