共用方式為


適用於 JavaScript 的 Azure OpenTelemetry Instrumentation 連結庫

開始

目前支持的環境

如需詳細資訊,請參閱我們的 支持原則

先決條件

您必須設定 OpenTelemetry SDK,才能產生遙測數據。 設定 OpenTelemetry 超出此自述檔的範圍時,建議您檢閱 OpenTelemetry 檔,以開始使用 OpenTelemetry。

安裝 @azure/opentelemetry-instrumentation-azure-sdk 套件

使用 npm安裝 Azure OpenTelemetry Instrumentation 用戶端連結庫:

npm install @azure/opentelemetry-instrumentation-azure-sdk

瀏覽器支援

JavaScript 套件組合

若要在瀏覽器中使用此用戶端連結庫,您必須先使用配套程式。 如需如何執行這項作的詳細資訊,請參閱我們的 組合檔

重要概念

  • createAzureSdkInstrumentation 函式是此連結庫所匯出的主要攔截,其提供建立 Azure SDK Instrumentation 物件以向 OpenTelemetry 註冊的方式。

例子

啟用 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";
import { trace, context } from "@opentelemetry/api";

// 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 = trace.getTracer("my-tracer");
const span = tracer.startSpan("main");
const ctx = trace.setSpan(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/檢測的自述檔

貢獻

如果您想要參與此連結庫,請閱讀 參與指南,以深入瞭解如何建置和測試程序代碼。