Nodejs 互換性要件

リリース

バージョン

Datadog Node.js のトレーシングライブラリのバージョンは、semver に従っています。新しいメジャーバージョンがリリースされると、それが主要なリリースラインとなり、すべての新機能、バグ修正、セキュリティパッチがそこに置かれます。以下は、semver の各タイプの変更を構成するものの概要です。

メジャーマイナーパッチ
旧バージョンと互換性のない変更点。旧バージョンとの互換性がある (壊れない) ものを追加する。セキュリティ修正
旧バージョンと互換性のない API の変更点。API の追加バグ修正
旧バージョンと互換性のない機能の変更点。機能の追加
Node.js のバージョン、対応ライブラリ、その他の機能など、あらゆるもののサポートを打ち切る。Node.js のバージョン、対応ライブラリ、その他の機能など、あらゆるもののテスト済みのサポートを追加する。

リリースに複数のカテゴリーがある場合、最も高いカテゴリーが選択されます。 リリースノートは、GitHub の各リリースに掲載されています。

メンテナンス

_メンテナンスモード_とは、可能な限りセキュリティとバグ修正のみを行い、新しい機能はケースバイケースで提供しない期間のことです。dd-trace のメジャーバージョンは、後続の dd-trace のメジャーバージョンがリリースされた時点でメンテナンスモードに移行します。メンテナンスモードの期間は、後続バージョンのリリース日から 1 年間です。

例えば、dd-trace のバージョン 5.0.0 が 2023 年 5 月 4 日にリリースされた場合、4.x.x リリースラインは 2024 年 5 月 4 日までメンテナンスモードベースでサポートされます。このメンテナンスモード期間中は、セキュリティパッチやバグパッチが可能な限り適用されます。

もし、特定のバージョンの dd-trace-js のサポートについて質問や懸念がある場合は、サポートにお問い合わせください。

Node.js のバージョンサポート

Node.js プロジェクトが LTS のメジャーリリースラインのサポートを終了すると (EOL になると)、次のメジャーバージョンの dd-trace でそのサポートが停止されます。 dd-trace ライブラリの最後のメジャーサポートリリースラインは、メンテナンスモードベースで、少なくともあと 1 年間はその EOL バージョンの Node.js をサポートします。

いくつかの問題は dd-trace で解決できず、代わりに Node.js で解決しなければなりません。このような場合、問題のある Node.js のリリースが EOL であれば、EOL ではない別のリリースに移行しなければ問題を解決することは不可能です。 Datadog は、LTS でない Node.js のメジャーリリースライン (奇数バージョン) に対する特定のサポートを提供するために、dd-trace の新しいリリースを作成することはありません。

最高のサポートレベルを得るためには、常に最新の LTS リリースの Node.js と、最新のメジャーバージョンの dd-trace を実行します。Node.js のどのリリースラインを使用する場合でも、最新のセキュリティ修正を確実に行うために、そのリリースラインの最新バージョンの Node.js を使用します。

Node.js のリリースについては、Node.js の公式ドキュメントを参照してください。

オペレーティングシステム対応

以下のオペレーティングシステムが dd-trace によって公式にサポートされています。リストにないオペレーティングシステムも動作する可能性はありますが、例えば ASM やプロファイリング、ランタイムメトリクスなど、いくつかの機能が欠けています。一般的には、メジャーバージョンの最初のリリース時に活発にメンテナンスされているオペレーティングシステムがサポートされます。

dd-trace バージョンオペレーティングシステムアーキテクチャ最小バージョン
3.xLinux (glibc)arm、arm64、x64CentOS 7、Debian 9、RHEL 7、Ubuntu 14.04
Linux (musl)arm、arm64、x64Alpine 3.13
macOSarm64、x64Catalina (10.15)
Windowsia32、x64Windows 8.1、Windows Server 2012
2.xLinux (glibc)arm、arm64、ia32、x64CentOS 7、Debian 9、RHEL 7、Ubuntu 14.04
Linux (musl)arm、arm64、ia32、x64Alpine 3.10
macOSarm64、x64Yosemite (10.10)
Windowsia32、x64Windows 8.1、Windows Server 2012

対応インテグレーション

APM は、プラグインシステムを使用することで追加設定なしで使用できる装置を多くの一般的なフレームワークやライブラリ向けに提供しています。一覧にないモジュールのサポートをご希望の場合は、サポートチームまでお問い合わせください。

プラグインの切り替え方法と構成方法の詳細については、API ドキュメントをご確認ください。

Web フレームワークの互換性

モジュールバージョンサポートの種類
connect2 以降完全対応
express4 以降完全対応Sails、Loopback、その他に対応
fastify1 以降完全対応
graphql0.10 以降完全対応Apollo Server および express-graphql に対応
gRPC>=1.13完全対応
hapi2 以降完全対応対応 [@hapi/hapi] バージョン 17.9 以降
koa2 以降完全対応
microgateway-core2.1 以降完全対応Apigee Edge 用のコアライブラリ。edgemicro CLI への対応には @datadog/cli を使用した静的パッチが必要。
moleculer>=0.14完全対応
next>=9.5完全対応CLI で使用する場合は、NODE_OPTIONS='-r dd-trace/init' が必要です。
paperplane2.3 以降完全対応serverless-mode では非対応
restify3 以降完全対応

ネイティブモジュールの互換性

モジュールサポートの種類
dns完全対応
fs完全対応
http完全対応
https完全対応
http2一部対応現在、HTTP2 クライアントのみ対応。サーバーは非対応。
net完全対応

データストアの互換性

モジュールバージョンサポートの種類
cassandra-driver3 以降完全対応
couchbase2.4.2 以降完全対応
elasticsearch10 以降完全対応バージョン 5 以降の @elastic/elasticsearch に対応
ioredis2 以降完全対応
knex0.8 以降完全対応このインテグレーションはコンテキストの伝搬のみが目的
memcached2.2 以降完全対応
mongodb-core2 以降完全対応Mongoose に対応
mysql2 以降完全対応
mysql21 以降完全対応
oracledb>=5完全対応
pg4 以降完全対応pg と共に使用した場合 pg-native に対応
redis0.12 以降完全対応
sharedb1 以降完全対応
tedious1 以降完全対応mssql および sequelize 用の SQL Server ドライバー

ワーカーの互換性

モジュールバージョンサポートの種類
@google-cloud/pubsub1.2 以降完全対応
amqp103 以降完全対応AMQP 1.0 ブローカー (ActiveMQ、または Apache Qpid など) に対応
amqplib0.5 以降完全対応AMQP 0.9 ブローカー (RabbitMQ、または Apache Qpid など) に対応
generic-pool2 以降完全対応
kafkajs>=1.4完全対応
kafka-node間もなく対応
rhea1 以降完全対応

SDK の互換性

モジュールバージョンサポートの種類
aws-sdk>=2.1.35完全対応CloudWatch、DynamoDB、Kinesis、Redshift、S3、SNS、SQS、一般的なリクエスト。

Promise ライブラリの互換性

モジュールバージョンサポートの種類
bluebird2 以降完全対応
promise7 以降完全対応
promise-js0.0.3 以降完全対応
q1 以降完全対応
when3 以降完全対応

ロガーの互換性

モジュールバージョンサポートの種類
bunyan1 以降完全対応
paperplane2.3.2 以降完全対応
pino2 以降完全対応
winston1 以降完全対応

非対応のライブラリ

Fibers

fibersasync_hooks と互換性がありません。これは Node.js のモジュールで、dd-trace-js が非同期コンテキストを追跡するために使用し、それによって正確なトレースを保証しています。fibersasync_hooks の間の相互作用は、予防できないクラッシュや未定義の挙動につながる可能性があります。そのため、fibers を直接、あるいは Meteor などのフレームワークを介して間接的に呼び出すアプリケーションで dd-trace-js を使用すると、不安定 (クラッシュ) や不正確なトレースが発生する可能性があります。

追加情報または議論については、この github 問題にコメントを残すか、サポートにお問い合わせください。

その他の参考資料

お役に立つドキュメント、リンクや記事: