- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Datadog のトレーシングライブラリ (dd-trace
) は、条件付きインポートの使用やその他の問題により、Webpack などのバンドラーと互換性がないことが知られています。Webpack は dd-trace
をビルドできませんが、アプリケーションは、ビルド済みの Datadog Lambda レイヤーによって提供される dd-trace
および datadog-lambda-js
ライブラリを引き続き使用できます。以下の手順に従ってください。
Node.js のインストール手順に従い、Node.js の Datadog Lambda レイヤーが Lambda 関数に追加されていることを確認します。
package.json
とビルドプロセスから datadog-lambda-js
と dd-trace
を削除します。
externals として datadog-lambda-js
と dd-trace
をマークします。これは、Datadog Lambda レイヤーによって提供される Lambda ランタイムですでに利用可能であるため、依存関係としてのビルドをスキップするようにバンドラーに指示します。
webpack.config.js
var nodeExternals = require("webpack-node-externals");
module.exports = {
// use webpack-node-externals to exclude all node dependencies.
// You can manually set the externals too.
externals: [nodeExternals(), "dd-trace", "datadog-lambda-js"],
};
serverless-webpack
を使用していて、オプション includeModules
に false
以外の値を設定している場合、serverless-webpack は自動的に node_modules 以下に外部モジュールをパックします。そのため、datadog-lambda-js
と dd-trace
を強制的に除外する必要があります。serverless-webpack
を使用しない場合、または serverless.yml に includeModules
オプションがない場合は、このステップをスキップしてください。
serverless.yml
custom:
webpack:
# Note: You only need the following if you already have the includeModules option configured
includeModules:
# ... your existing configuration for includeModules
forceExclude:
- dd-trace
- datadog-lambda-js
packagerOptions:
scripts:
# optional, only needed when they are included as transitive dependencies
- rm -rf node_modules/datadog-lambda-js node_modules/dd-trace
Node.js のインストール手順に従い、Node.js の Datadog Lambda レイヤーが Lambda 関数に追加されていることを確認します。
package.json
とビルドプロセスから datadog-lambda-js
と dd-trace
を削除します。
externals として datadog-lambda-js
と dd-trace
をマークします。これは、Datadog Lambda レイヤーによって提供される Lambda ランタイムですでに利用可能であるため、依存関係としてのビルドをスキップするようにバンドラーに指示します。
Esbuild サポートのページの手順に従って、Datadog の Esbuild プラグインを使用します。これにより、バンドルされた依存関係のインスツルメンテーションが可能になります。
esbuild.config.js (esbuild-config を使用している場合)
{
"external": ["dd-trace", "datadog-lambda-js"],
}
serverless.yml (serverless-esbuild を使用している場合)
custom:
esbuild:
exclude: ["dd-trace", "datadog-lambda-js", "aws-sdk"] # aws-sdk is needed because it is the default value for `exclude`
お役に立つドキュメント、リンクや記事: