我正在尝试在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();
它们有些相似,我猜它们最终达到了同样的目的。问题是:
- 这两种方法有什么区别?
- 其中一个更好,也许现在更值得推荐?
1条答案
按热度按时间dkqlctbz1#
sdk-node
还提供了指标和日志SDK,而sdk-tracing-node
仅提供了跟踪SDK。如果您现在只关心跟踪,并且希望避免拉取无用的依赖项,则可以使用
sdk-tracing-node
。