Azure SDK documentation update:@azure/opentelemetry-instrumentation-azure-sdk 1.0.0 GAの変更点と対応手順

Azure SDK documentation updateとして公開された「@azure/opentelemetry-instrumentation-azure-sdk 1.0.0」は、JavaScript/TypeScriptアプリでAzure SDKのOpenTelemetry計装を使っている開発者が確認すべきGAリリースです。結論から言うと、1.0.0-beta.10から1.0.0への昇格が中心で、PR上の差分はバージョン更新、SDK_VERSION更新、CHANGELOG追加です。既にbeta版を使っている場合は、依存関係の固定、ロックファイル、OpenTelemetryの登録順、Azure Monitor側の設定を確認してから本番反映するのが安全です。(GitHub)

目次

今回のAzure SDK documentation updateで変わったこと

今回の更新は、Azure SDK for JavaScriptリポジトリのPR「[Release] @azure/opentelemetry-instrumentation-azure-sdk 1.0.0」によるものです。PRでは、@azure/opentelemetry-instrumentation-azure-sdk1.0.0-beta.10から1.0.0 GAへ昇格させたことが明記されています。変更ファイルはCHANGELOG.mdpackage.jsonsrc/configuration.tsの3つです。(GitHub)

確認項目変更内容実務での見方
パッケージバージョン1.0.0-beta.10から1.0.0へ変更beta指定を続ける必要があるか見直す
SDK_VERSION1.0.0へ更新テレメトリや診断情報上のSDKバージョン表記に影響する可能性がある
CHANGELOG1.0.0 (2026-05-05)として初の安定版リリースを追加リリース日ベースで社内変更管理に反映する
検証結果ビルド成功、41件のテスト成功、lint/format問題なしただし自社アプリ側のE2E確認は別途必要
API変更PR上は機能追加というよりGA化が中心既存コードの大幅修正が必要とは限らない

CHANGELOGでは、1.0.0は「Azure SDK OpenTelemetry Instrumentation library」の初の安定版リリースとして記載されています。直前の1.0.0-beta.10では@opentelemetry/instrumentation依存関係の更新、さらに過去のbetaではOpenTelemetry v2対応なども含まれているため、古いbetaから一気に上げる場合は差分を広めに確認してください。(GitHub)

対応が必要な人、様子見でよい人

このリリースは、すべてのAzure利用者に影響するものではありません。対象は主に、JavaScript/TypeScriptでAzure SDKクライアントライブラリを使い、OpenTelemetryによる分散トレーシングを有効化しているアプリケーションです。

利用状況対応優先度確認すべきこと
@azure/opentelemetry-instrumentation-azure-sdkのbeta版を直接使っている1.0.0へ更新し、トレース出力を確認する
Azure Monitor OpenTelemetry経由でAzure SDKトレースを使っている中〜高バンドルされる計装設定、依存関係、ダッシュボード表示を確認する
Azure SDKは使っているがOpenTelemetryを使っていない今回の更新だけでアプリ挙動は変わりにくい
Application Insights SDKのみを使っている低〜中OpenTelemetry移行予定がある場合のみ調査する
古いbeta版から更新するOpenTelemetry v2系、spanステータス、環境変数設定の影響を確認する

Azure SDKのトレーシングは、@azure/core-tracing側では既定でno-opのInstrumenterが使われ、OpenTelemetryベースのトレーシングを有効化するには@azure/opentelemetry-instrumentation-azure-sdkをインストールして登録する必要があります。つまり、パッケージがGAになったからといって、未設定のアプリで突然トレースが出始めるわけではありません。(GitHub)

GA化で「変わること」と「変わらないこと」

変わること

最も分かりやすい変化は、betaパッケージではなく安定版として扱えるようになったことです。社内ルールで「beta版やpreview版は本番利用不可」としている場合、1.0.0への昇格により採用しやすくなります。

また、package.jsonのバージョンとSDK_VERSION定数が1.0.0に更新されています。監視基盤やログにSDKバージョンを出している場合、リリース後に表示が変わる可能性があります。(GitHub)

変わらないこと

今回のPRだけを見る限り、Azure Storage、Key Vault、Cosmos DBなど各AzureサービスのAPI呼び出し仕様が変わる更新ではありません。アプリケーションロジックそのものより、観測性、依存関係、リリース管理に関わる変更と捉えるのが現実的です。

ただし、古いbeta版から更新する場合は別です。過去のbetaリリースではOpenTelemetryパッケージ更新やspanの扱いに関する変更が含まれているため、1.0.0-beta.10からの更新と、1.0.0-beta.61.0.0-beta.8からの更新ではリスクが異なります。現在使っているバージョンを先に確認してください。

移行前に確認するチェックリスト

本番反映前に、まず次の順で確認すると手戻りを減らせます。

手順コマンド・確認内容判断基準
現在の利用有無を確認npm ls @azure/opentelemetry-instrumentation-azure-sdk直接依存か推移的依存かを確認する
beta指定を確認package.jsonpackage-lock.jsonpnpm-lock.yamlyarn.lock1.0.0-beta.*が残っていないか見る
Node.jsバージョンを確認CI、Dockerfile、App Service、Functionsなどパッケージのenginesnode >=20.0.0
OpenTelemetry登録順を確認アプリ起動時の初期化ファイルAzure SDKクライアントの読み込み前に登録できているか
トレース出力を確認Application Insights、Azure Monitor、OTLP Collectorなど代表的なAzure SDK呼び出しでspanが出るか
アラート影響を確認依存関係マップ、失敗率、レイテンシ、サンプリングspan名や件数の変化で誤検知しないか

現在のpackage.jsonでは、@opentelemetry/api@opentelemetry/core@opentelemetry/instrumentationなどが依存関係に含まれ、enginesにはnode >=20.0.0が指定されています。Node.js 18以前で動かしている古いアプリや、CIだけ古いNode.jsを使っている環境では、更新前にランタイムを確認してください。(GitHub)

更新手順の例

まず、現在のバージョンを確認します。

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

beta版を使っている場合は、明示的に1.0.0へ更新します。

npm install @azure/[email protected]

pnpmを使っている場合は次のように更新します。

pnpm add @azure/[email protected]

yarnの場合は次の通りです。

yarn add @azure/[email protected]

更新後は、ロックファイルを含めて差分を確認します。

npm ls @azure/opentelemetry-instrumentation-azure-sdk
npm test

単にインストールするだけではテレメトリは出力されません。OpenTelemetry SDK側のTracer Provider、Exporter、Resource、Samplerなどの構成が必要です。公式READMEでも、テレメトリデータを生成するにはOpenTelemetry SDKの構成が必要と説明されています。(GitHub)

登録コードで見直すべきポイント

このライブラリの中心は、createAzureSdkInstrumentationです。OpenTelemetryのregisterInstrumentationsに登録することで、Azure SDK向けの計装を有効化します。公式READMEでは、createAzureSdkInstrumentationがOpenTelemetryへ登録するAzure SDK Instrumentationオブジェクトを作る主要なフックとして説明されています。(Microsoft Learn)

import { registerInstrumentations } from "@opentelemetry/instrumentation";
import { createAzureSdkInstrumentation } from "@azure/opentelemetry-instrumentation-azure-sdk";

registerInstrumentations({
  instrumentations: [createAzureSdkInstrumentation()],
});

実務では、次の点が重要です。

確認点なぜ重要か
アプリ起動の早い段階で登録するAzure SDKクライアント読み込み後だと、期待したspanが取れない場合がある
Provider/Exporterを別途設定する計装だけでは送信先が決まらない
サンプリング設定を確認するspanが出ていないように見えて、実際はサンプリングで落ちていることがある
ローカルと本番で環境変数を比較する本番だけトレース無効化設定が入っているケースがある

特に注意したいのは、「登録したのにAzure SDKのspanが見えない」というケースです。原因はライブラリの不具合とは限りません。登録順、サンプリング、Exporter設定、接続文字列、環境変数、Collector側のフィルタリングを順に切り分けてください。

Azure Monitor OpenTelemetryを使っている場合の確認点

@azure/monitor-opentelemetryを使っている場合は、スタンドアロンの@azure/opentelemetry-instrumentation-azure-sdkを直接登録している構成とは確認箇所が異なります。Azure Monitor OpenTelemetryのREADMEでは、Azure SDK、Azure Functions、MongoDB、MySQL、PostgreSQL、Redisなどのinstrumentationが分散トレーシング向けに既定で有効と説明されています。(GitHub)

そのため、次の観点で確認します。

確認対象見るべきポイント
instrumentationOptions.azureSdk明示的に無効化していないか
Application Insights接続文字列APPLICATIONINSIGHTS_CONNECTION_STRINGが正しく設定されているか
サンプリングOTEL_TRACES_SAMPLEROTEL_TRACES_SAMPLER_ARGで意図せず落としていないか
ESMアプリloaderや初期化順が正しいか
ダッシュボード依存関係、トレース、失敗率の表示に変化がないか

Azure Monitor OpenTelemetry側の設定と、このAzure SDK instrumentationパッケージのGA化を混同しないことも大切です。今回の更新はAzure SDK用のOpenTelemetry計装ライブラリのGA化であり、監視基盤全体の設計変更を強制するものではありません。

環境変数でトレースが無効化されていないか確認する

過去のCHANGELOGでは、AZURE_TRACING_DISABLEDtrueにすることでAzure SDK spanの記録を無効化できること、AZURE_HTTP_TRACING_CHILDREN_DISABLEDでcore HTTP span配下の子span記録を制御できることが記載されています。現在のconfiguration.tsにも、これらの環境変数キーが含まれています。(GitHub)

本番だけspanが出ない場合は、アプリコードより先に環境変数を確認してください。

echo $AZURE_TRACING_DISABLED
echo $AZURE_HTTP_TRACING_CHILDREN_DISABLED

コンテナ環境では、Dockerfile、KubernetesのConfigMap/Secret、Azure App Serviceのアプリケーション設定、GitHub ActionsやAzure Pipelinesの環境変数に古い設定が残っていることがあります。

失敗しやすいポイント

インストールだけで監視できると思い込む

@azure/opentelemetry-instrumentation-azure-sdkはAzure SDK向けの計装ライブラリです。Exporterではありません。Application Insights、Azure Monitor、OTLP Collector、Jaegerなどへ送る設定は別途必要です。

betaからGAに上げてもロックファイルが古い

package.jsonだけを更新しても、ロックファイルにbeta版が残ることがあります。CIでnpm ciを使っている場合、ロックファイルが優先されるため、手元では更新済みでもビルド環境では旧版のままになることがあります。

古いbetaからの更新差分を軽く見る

1.0.0-beta.10から1.0.0への差分は小さく見えます。しかし、古いbetaから更新する場合は、OpenTelemetry依存関係やspanの扱いに関する過去の変更もまとめて取り込むことになります。特に監視ダッシュボードやアラートがspan属性に依存している場合は、ステージング環境で比較してください。

HTTP spanとAzure SDK spanの見え方を誤解する

Azure SDKの操作spanと、その下位にあるHTTP通信のspanが並んで見えることがあります。これは必ずしも「二重計測の不具合」ではありません。依存関係マップやトレースツリーで親子関係を確認し、必要に応じてサンプリングや表示側のフィルタを調整します。

Node.jsの実行環境を確認しない

開発端末は新しいNode.jsでも、CI、Dockerイメージ、本番ホストだけ古いことがあります。今回のパッケージのengines指定はnode >=20.0.0です。Azure Functions、App Service、コンテナ、オンプレミス実行環境でNode.jsバージョンが揃っているか確認してください。(GitHub)

本番反映前のおすすめ検証シナリオ

ステージング環境では、単にテストが通るかだけでなく、実際にAzure SDKの呼び出しを発生させてトレースを確認します。

シナリオ確認する内容
Key Vaultからシークレットやキーを取得Azure SDK操作spanが記録されるか
StorageへBlobをアップロード依存関係、レイテンシ、エラー時のspan状態を確認
失敗するリクエストを意図的に発生例外、ステータス、アラートが想定通りか
サンプリング率を下げた状態で実行span欠落と設定ミスを区別できるか
本番相当の起動方法で実行ESM、CommonJS、loader、初期化順の差を確認

監視の移行では、「トレースが出る」だけでは不十分です。運用チームが普段見ているダッシュボードで、依存関係名、エラー率、レイテンシ、相関ID、ログとの関連付けが維持されているか確認してください。

今回の更新をどう扱うべきか

今回のAzure SDK documentation updateは、@azure/opentelemetry-instrumentation-azure-sdkを本番採用しやすくする重要な節目です。1.0.0-beta.10から使っているチームにとっては、比較的低リスクなGA追従として扱える可能性があります。一方、古いbeta版から更新する場合や、Azure Monitor OpenTelemetry、独自OTLP Collector、複雑なサンプリング設定を組み合わせている場合は、テレメトリの見え方が変わらないか慎重に確認すべきです。

まずやるべきことは明確です。現在の利用バージョンを確認し、beta指定を1.0.0へ更新できるか判断し、ステージング環境で代表的なAzure SDK呼び出しのトレースを確認してください。そのうえで、ロックファイル、Node.jsバージョン、環境変数、Azure Monitor側の設定を点検すれば、本番移行時のトラブルをかなり減らせます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次