开始
当前支持的环境
- LTS 版本的 Node.js
- Safari、Chrome、Edge 和 Firefox 的最新版本。
有关详细信息,请参阅我们的 支持策略。
先决条件
需要配置 OpenTelemetry SDK 才能生成遥测数据。 虽然配置 OpenTelemetry 超出了此自述文件的范围,但我们建议你查看 OpenTelemetry 文档,以便开始使用 OpenTelemetry。
安装 @azure/opentelemetry-instrumentation-azure-sdk
包
使用 npm
安装 Azure OpenTelemetry Instrumentation 客户端库:
npm install @azure/opentelemetry-instrumentation-azure-sdk
浏览器支持
JavaScript 捆绑包
若要在浏览器中使用此客户端库,首先需要使用捆绑程序。 有关如何执行此操作的详细信息,请参阅我们的 捆绑文档。
关键概念
- createAzureSdkInstrumentation 函数是此库导出的主要挂钩,该库提供了创建要注册到 OpenTelemetry 的 Azure SDK Instrumentation 对象的方法。
例子
启用 OpenTelemetry 检测
import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
import { SimpleSpanProcessor, ConsoleSpanExporter } from "@opentelemetry/tracing";
import { registerInstrumentations } from "@opentelemetry/instrumentation";
import { createAzureSdkInstrumentation } from "@azure/opentelemetry-instrumentation-azure-sdk";
import { KeyClient } from "@azure/keyvault-keys";
import { DefaultAzureCredential } from "@azure/identity";
// Set-up and configure a Node Tracer Provider using OpenTelemetry SDK.
const provider = new NodeTracerProvider();
provider.addSpanProcessor(new SimpleSpanProcessor(new ConsoleSpanExporter()));
provider.register();
registerInstrumentations({
instrumentations: [createAzureSdkInstrumentation()],
});
// Continue to import any Azure SDK client libraries after registering the instrumentation.
// import { KeyClient } from "@azure/keyvault-keys";
// import { DefaultAzureCredential } from "@azure/identity";
const keyClient = new KeyClient("https://my.keyvault.azure.net", new DefaultAzureCredential());
// Tracing is now enabled using automatic span propagation with an active context.
await keyClient.getKey("MyKeyName");
// If your scenario requires manual span propagation, all Azure client libraries
// support explicitly passing a parent context via an `options` parameter.
// Get a tracer from a registered provider, create a span, and get the current context.
const tracer = opentelemetry.trace.getTracer("my-tracer");
const span = tracer.startSpan("main");
const ctx = opentelemetry.trace.setSpan(opentelemetry.context.active(), span);
await keyClient.getKey("MyKeyName", {
tracingOptions: {
// ctx will be used as the parent context for all operations.
tracingContext: ctx,
},
});
故障 排除
伐木
启用日志记录可能有助于发现有关故障的有用信息。 若要查看 HTTP 请求和响应的日志,请将 AZURE_LOG_LEVEL
环境变量设置为 info
。 或者,可以通过在 setLogLevel
中调用 @azure/logger
在运行时启用日志记录:
import { setLogLevel } from "@azure/logger";
setLogLevel("info");
有关如何启用日志的更详细说明,可以查看 @azure/记录器包文档。
ES 模块的检测
此包利用 @opentelemetry/检测 来设置必要的挂钩和加载程序。 有关配置 ESM 包跟踪的说明,请参阅 @opentelemetry/instrumentation 的自述文件。
贡献
若要参与此库,请阅读 贡献指南 了解有关如何生成和测试代码的详细信息。
相关项目
- 用于 Javascript 的 Azure SDK Microsoft