- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
分散型トレーシングでサーバーレスアプリケーションを完全にインスツルメントするには、Java Lambda 関数が Java 8 Corretto (java8.al2
)、Java 11 (java11
) または Java 17 (java17
) ランタイムを使用し、少なくとも 1024 MB のメモリが必要です。
Lambda 関数が公衆インターネットにアクセスできない VPC にデプロイされている場合、datadoghq.com
Datadog サイトの場合は AWS PrivateLink を使用し、その他のサイトの場合はプロキシを使用してデータを送信することができます。
以前に Datadog Forwarder を使用して Lambda 関数をセットアップした場合は、Datadog Forwarder を使用したインスツルメントを参照してください。それ以外の場合は、このガイドの指示に従って、Datadog Lambda 拡張機能を使用してインスツルメンテーションを行います。
Datadog Lambda レイヤーの dd-trace-java:4
(またはそれ以前) と Datadog-Extension:24
(またはそれ以前) を使用している場合、アップグレードに関する特別指示に従ってください。
Datadog は、サーバーレスアプリケーションのインスツルメンテーションを有効にするためのさまざまな方法を提供しています。以下からニーズに合った方法を選択してください。Datadog では、一般的に Datadog CLI の使用を推奨しています。アプリケーションがコンテナイメージとしてデプロイされる場合は、「コンテナイメージ」の指示に従うことが必要です。
Datadog CLI は、既存の Lambda 関数のコンフィギュレーションを修正し、新しいデプロイを必要とせずにインスツルメンテーションを可能にします。Datadog のサーバーレスモニタリングをすばやく開始するための最適な方法です。
Datadog CLI クライアントをインストールする
npm install -g @datadog/datadog-ci
Datadog サーバーレスモニタリングに慣れていない場合は、クイックスタートとして最初のインストールを導くためにインタラクティブモードで Datadog CLI を起動し、このページの残りのステップを無視することができます。本番アプリケーションに Datadog を恒久的にインストールするには、このステップをスキップし、残りのステップに従って通常のデプロイの_後に_ CI/CD パイプラインで Datadog CLI コマンドを実行します。
datadog-ci lambda instrument -i
AWS の認証情報を構成する
Datadog CLI は、AWS Lambda サービスへのアクセスを必要とし、AWS JavaScript SDK に依存して資格情報を解決します。AWS CLI を呼び出すときに使用するのと同じ方法を使用して、AWS の資格情報が構成されていることを確認します。
Datadog サイトを構成する
export DATADOG_SITE="<DATADOG_SITE>"
<DATADOG_SITE>
を に置き換えます。(右側で正しい SITE が選択されていることを確認してください)。
Datadog API キーを構成する
Datadog は、セキュリティと簡単なローテーションのために、AWS Secrets Manager に Datadog API キーを保存することを推奨します。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。Lambda 関数に必要な secretsmanager:GetSecretValue
IAM 権限があることを確認します。
export DATADOG_API_KEY_SECRET_ARN="<DATADOG_API_KEY_SECRET_ARN>"
迅速なテスト目的のために、Datadog API キーをプレーンテキストで設定することも可能です。
export DATADOG_API_KEY="<DATADOG_API_KEY>"
Lambda 関数をインスツルメントする
注: Lambda 関数は、まず開発環境またはステージング環境でインスツルメントしてください。インスツルメンテーションの結果が思わしくない場合は、同じ引数で uninstrument
を実行し、変更を元に戻すことができます。
Lambda 関数をインスツルメントするには、次のコマンドを実行します。
datadog-ci lambda instrument -f <functionname> -f <another_functionname> -r <aws_region> -v 10 -e 43
プレースホルダーを埋めるには
<functionname>
と <another_functionname>
は Lambda 関数の名前に置き換えます。また、--functions-regex
を使用すると、指定した正規表現にマッチする名前を持つ複数の関数を自動的にインスツルメントすることができます。<aws_region>
を AWS リージョン名に置き換えます。その他のパラメーターは、CLI ドキュメントに記載されています。
Datadog Serverless Plugin は、Datadog Lambda 拡張機能 を介してメトリクス、トレース、ログを Datadog に送信するように関数を自動的に構成します。
Datadog サーバーレスプラグインをインストールして構成するには、次の手順に従います。
Datadog サーバーレスプラグインをインストールします。
serverless plugin install --name serverless-plugin-datadog
serverless.yml
を更新します:
custom:
datadog:
site: <DATADOG_SITE>
apiKeySecretArn: <DATADOG_API_KEY_SECRET_ARN>
プレースホルダーを埋めるには
<DATADOG_SITE>
を
に置き換えます。(右側で正しい SITE が選択されていることを確認してください)。<DATADOG_API_KEY_SECRET_ARN>
を、Datadog API キーが安全に保存されている AWS シークレットの ARN に置き換えます。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。また、secretsmanager:GetSecretValue
権限が必要です。迅速なテストのために、代わりに apiKey
を使用して、Datadog API キーをプレーンテキストで設定することができます。詳細および追加設定については、プラグインドキュメントを参照してください。
Datadog CDK コンストラクト は、Lambda レイヤーを使用して Datadog を関数に自動的にインストールします。これは、Datadog Lambda 拡張機能を介してメトリクス、トレース、ログを Datadog に送信するように関数を構成します。
Datadog CDK コンストラクトライブラリのインストール
Node.js:
# For AWS CDK v1
npm install datadog-cdk-constructs --save-dev
# For AWS CDK v2
npm install datadog-cdk-constructs-v2 --save-dev
Python:
# For AWS CDK v1
pip install datadog-cdk-constructs
# For AWS CDK v2
pip install datadog-cdk-constructs-v2
Lambda 関数をインスツルメントする
Node.js:
// For AWS CDK v1
import { Datadog } from "datadog-cdk-constructs";
// For AWS CDK v2
import { Datadog } from "datadog-cdk-constructs-v2";
const datadog = new Datadog(this, "Datadog", {
javaLayerVersion: 10,
extensionLayerVersion: 43,
site: "<DATADOG_SITE>",
apiKeySecretArn: "<DATADOG_API_KEY_SECRET_ARN>"
});
datadog.addLambdaFunctions([<LAMBDA_FUNCTIONS>])
Python:
# For AWS CDK v1
from datadog_cdk_constructs import Datadog
# For AWS CDK v2
from datadog_cdk_constructs_v2 import Datadog
datadog = Datadog(self, "Datadog",
java_layer_version=10,
extension_layer_version=43,
site="<DATADOG_SITE>",
api_key_secret_arn="<DATADOG_API_KEY_SECRET_ARN>",
)
datadog.add_lambda_functions([<LAMBDA_FUNCTIONS>])
プレースホルダーを埋めるには
<DATADOG_SITE>
を
に置き換えます。(右側で正しい SITE が選択されていることを確認してください)。<DATADOG_API_KEY_SECRET_ARN>
を、Datadog API キーが安全に保存されている AWS シークレットの ARN に置き換えます。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。また、Lambda の実行ロールが、シークレット値を読み取るための secretsmanager:GetSecretValue
IAM 権限を持つことを確認します。迅速なテストのために、代わりに apiKey
を使用して、Datadog API キーをプレーンテキストで設定することができます。Datadog CDK のドキュメントに詳細と追加のパラメーターがあります。
Datadog Lambda 拡張機能のインストール
COPY --from=public.ecr.aws/datadog/lambda-extension:<TAG> /opt/. /opt/
<TAG>
を特定のバージョン番号 (たとえば 43
) または latest
に置き換えます。利用可能なタグのリストは、Amazon ECR リポジトリで確認できます。
Datadog Java APM クライアントをインストールする
RUN yum -y install tar wget gzip
RUN wget -O /opt/java/lib/dd-java-agent.jar https://dtdg.co/latest-java-tracer
必要な環境変数を設定する
AWS_LAMBDA_EXEC_WRAPPER
を /opt/datadog_wrapper
に設定します。DD_SITE
に
を設定します。(右側で正しい SITE が選択されていることを確認してください)。DD_API_KEY_SECRET_ARN
を、Datadog API キーが安全に保存されている AWS シークレットの ARN に設定します。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。また、secretsmanager:GetSecretValue
権限が必要です。迅速なテストのために、代わりに DD_API_KEY
を使用して、Datadog API キーをプレーンテキストで設定することができます。Datadog トレーサーのインストール
以下のフォーマットで、ARN を使用して Lambda 関数にレイヤーを構成します。
# Use this format for Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:dd-trace-java:10
# Use this format for Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-java:10
<AWS_REGION>
を us-east-1
などの有効な AWS リージョンに置き換えてください。
Datadog Lambda 拡張機能のインストール
以下のフォーマットで、ARN を使用して Lambda 関数にレイヤーを構成します。
# Use this format for x86-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension:43
# Use this format for arm64-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension-ARM:43
# Use this format for x86-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:43
# Use this format for arm64-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:43
<AWS_REGION>
を us-east-1
などの有効な AWS リージョンに置き換えてください。
Datadog トレーサーのインストール
以下のフォーマットで、ARN を使用して Lambda 関数にレイヤーを構成します。
# Use this format for Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:dd-trace-java:10
# Use this format for Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:dd-trace-java:10
<AWS_REGION>
を us-east-1
などの有効な AWS リージョンに置き換えてください。
Datadog Lambda 拡張機能のインストール
以下のフォーマットで、ARN を使用して Lambda 関数にレイヤーを構成します。
# Use this format for x86-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:Datadog-Extension:43
# Use this format for arm64-based Lambda deployed in AWS commercial regions
arn:aws:lambda:<AWS_REGION>:417141415827:layer:Datadog-Extension-ARM:43
# Use this format for x86-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:43
# Use this format for arm64-based Lambda deployed in AWS GovCloud regions
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:43
<AWS_REGION>
を us-east-1
などの有効な AWS リージョンに置き換えてください。
必要な環境変数を設定する
AWS_LAMBDA_EXEC_WRAPPER
を /opt/datadog_wrapper
に設定します。DD_SITE
に
を設定します。(右側で正しい SITE が選択されていることを確認してください)。DD_API_KEY_SECRET_ARN
を、Datadog API キーが安全に保存されている AWS シークレットの ARN に設定します。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。また、secretsmanager:GetSecretValue
権限が必要です。迅速なテストのために、代わりに DD_API_KEY
を使用して、Datadog API キーをプレーンテキストで設定することができます。