OpenTelemetry JavaScript SDK 3.0 のリリース
OpenTelemetry JavaScript は SDK 3.0(安定版 v3.0.0 パッケージ および 実験的 v0.300.0 パッケージ)と API 1.10.0 をリリースしました。
破壊的変更の詳細については、OpenTelemetry JS SDK 3.x マイグレーションガイドを参照してください。
JS SDK 3.x とは
JS SDK 3.x は、opentelemetry-js リポジトリから公開されている @opentelemetry/* JavaScript パッケージの新しいリリースを包含するもので、API パッケージおよび semantic-conventions パッケージは除きます。
この新しいメジャーバージョンのパッケージバージョンは、安定版が >=3.0.0、不安定版が >=0.300.0 です。
パッケージの完全な一覧についてはマイグレーションガイドを参照してください。
加えて、opentelemetry-js-contrib リポジトリのすべてのパッケージが JS SDK 3.x にアップグレードされ、リリースされました。
OpenTelemetry のガイドラインに従い、安定版 SDK パッケージの 2.x バージョンは 3.0.0 リリースから1年間サポートされます。
変更点
- サポートされる Node.js の最小バージョンが
>=22.15.0に引き上げられました。 これは、Node.js 18 および 20 のサポートが廃止されたことを意味します。 - すべてのパッケージが適切な ES Module(ESM)および CommonJS エクスポートを提供するようになりました。 これにより、ESM やバンドラーを使用するユーザーにとって使い勝手が大幅に向上します。
- OTEP 4485 に基づく複合属性のサポートが API の一部(スパン属性、ログレコード属性など)に追加されました。 API の一部では単純属性のみサポートされています(リソース属性、メトリクス属性など)。 詳細はマイグレーションガイドの解説を参照してください。
@opentelemetry/api-logsパッケージが@opentelemetry/apiに統合されました。 ログシグナルが安定版になりました! ログの安定化により、OpenTelemetry の3つのシグナル(トレース、メトリクス、ログ)すべてが JavaScript で安定版となりました。 この安定化については別途ブログ記事を投稿する予定です。- 複数のトレーシング SDK パッケージが統合され、
@opentelemetry/sdk-traceパッケージにまとめられました。 これにより、紛らわしい API が排除され、他のシグナルの SDK との一貫性が確保されました。 - 多くの非推奨パッケージが削除されました。
@opentelemetry/propagator-jaeger、@opentelemetry/exporter-jaeger、@opentelemetry/shim-opentracing、@opentelemetry/shim-opencensusなどが含まれます。 完全な一覧についてはマイグレーションガイドを参照してください。 - パブリックインターフェイスが変更されました。 いくつかのパブリック型やクラス名が名前変更または移動されました。
API パッケージ(@opentelemetry/api)には破壊的変更はありません。
また、ゼロコード計装で説明されているように @opentelemetry/auto-instrumentations-node パッケージを使用しているユーザーは変更の必要はありません。
3.x / 0.300.x への移行に関する詳細と注意事項については、マイグレーションガイドを参照してください。
なぜこの変更が行われたのか
2025年3月の SDK 2.0 リリース以降、OTel JS SIG はおよそ1年ごとに新しい SDK メジャーリリースを行うことを目標としてきました。 このケイデンスにより、新しい Node.js メジャーリリースや、より最近の JavaScript エコシステムおよびツールの改善に対応し続けることができます。
3.0 に関して具体的には以下の理由があります。
- Node.js 20 は2026年4月にサポート終了を迎えました。
- 適切な ESM エクスポートを提供するにはパッケージエントリポイントの変更が必要でした。
- 非推奨かつメンテナンスされていないパッケージを削除することで、SIG は現在の機能に集中できるようになります。
- ログの安定化と複合属性のサポートには API と SDK の変更が必要でした。
参加するには
SDK 3.x 以降の開発に貢献するにはいくつかの方法があります。
- v3.0.0 と v0.300.0 のリリースを試して、フィードバックを提供してください。
- コントリビューションの詳細については、コントリビューションガイドを確認してください。
- SIG ミーティングに参加してください。
- Slack でコラボレーションしてください。
謝辞
メジャーリリースには多くの協調的な作業が必要であり、SDK 3.0 は多くの人々が時間を費やしてくれなければ実現しませんでした。 設計に関する議論、移行に関するプルリクエスト、長時間にわたるレビュー、そして何を破壊的変更とし何を維持するかについての慎重な判断に取り組んでくれた OpenTelemetry JavaScript SIG に感謝します。 また、より広い OpenTelemetry コミュニティと、このリリースに貢献してくださったすべての方々にも感謝します。