javascript @开放遥测/SDK节点与@开放遥测/SDK跟踪节点

wkyowqbh  于 2023-01-16  发布在  Java
关注(0)|答案(1)|浏览(173)

我正在尝试在Node应用程序中玩开放遥测,我发现有些示例要求我安装@opentelemetry/sdk-node(就像这个official guide),而另一些示例要求我安装@opentelemetry/sdk-tracing-node(就像这个,也是offical guide),这有点令人困惑。
需要@opentelemetry/sdk-node的示例具有如下代码:

const sdk = new opentelemetry.NodeSDK({
  traceExporter: new opentelemetry.tracing.ConsoleSpanExporter(),
  instrumentations: [
    // instrumentations...
  ]
});

sdk.start()

使用@opentelemetry/sdk-tracing-node的代码如下所示:

registerInstrumentations({
  instrumentations: [
    // instrumentations...
  ]
});

const provider = new NodeTracerProvider();
const exporter = new ConsoleSpanExporter();
const processor = new BatchSpanProcessor(exporter);
provider.addSpanProcessor(processor);

provider.register();

它们有些相似,我猜它们最终达到了同样的目的。问题是:

  • 这两种方法有什么区别?
  • 其中一个更好,也许现在更值得推荐?
dkqlctbz

dkqlctbz1#

sdk-node还提供了指标和日志SDK,而sdk-tracing-node仅提供了跟踪SDK。
如果您现在只关心跟踪,并且希望避免拉取无用的依赖项,则可以使用sdk-tracing-node

相关问题