JavaScript 用 Azure OpenTelemetry インストルメンテーション ライブラリ
はじめに
現在サポートされている環境
- Node.js の LTS バージョン
- Safari、Chrome、Edge、Firefox の最新バージョン。
詳細については、Microsoft のサポート ポリシーを参照してください。
前提条件
テレメトリ データを生成するには、OpenTelemetry SDK を構成する必要があります。 OpenTelemetry の構成は、この README の範囲外ですが、OpenTelemetry の使用を開始するには、 OpenTelemetry のドキュメント を確認することをお勧めします。
@azure/opentelemetry-instrumentation-azure-sdk
パッケージのインストール
を使用して Azure OpenTelemetry Instrumentation クライアント ライブラリを npm
インストールします。
npm install @azure/opentelemetry-instrumentation-azure-sdk
ブラウザーのサポート
JavaScript バンドル
ブラウザーでこのクライアント ライブラリを使用するには、まず bundler を使用する必要があります。 これを行う方法の詳細については、 バンドルに関するドキュメントを参照してください。
主要な概念
- createAzureSdkInstrumentation 関数は、OpenTelemetry に登録する Azure SDK Instrumentation オブジェクトを作成する方法を提供する、このライブラリによってエクスポートされるメインフックです。
例
OpenTelemetry インストルメンテーションを有効にする
const { registerInstrumentations } = require("@opentelemetry/instrumentation");
const { createAzureSdkInstrumentation } = require("@azure/opentelemetry-instrumentation-azure-sdk");
// Set-up and configure a Node Tracer Provider using OpenTelemetry
const opentelemetry = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/sdk-trace-node");
const { SimpleSpanProcessor, ConsoleSpanExporter } = require("@opentelemetry/tracing");
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.
const { KeyClient } = require("@azure/keyvault-keys");
const keyClient = new KeyClient(url, new DefaultAzureCredential());
async function main() {
// 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
に設定します。 または、@azure/logger
で setLogLevel
を呼び出して、実行時にログ記録を有効にすることもできます。
const { setLogLevel } = require("@azure/logger");
setLogLevel("info");
ログを有効にする方法の詳細については、@azure/logger パッケージに関するドキュメントを参照してください。
共同作成
このライブラリに投稿する場合、コードをビルドしてテストする方法の詳細については、投稿ガイドを参照してください。
関連プロジェクト
Azure SDK for JavaScript
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示