- 重要な情報
- はじめに
- 用語集
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
go1.x
を使用していて、provided.al2
ランタイムに移行できない場合、Datadog Forwarder を使用してインスツルメントする必要があります。それ以外の場合は、このガイドの指示に従って、Datadog Lambda 拡張機能を使用してインスツルメンテーションを行います。datadoghq.com
Datadog サイトには AWS PrivateLink を、それ以外のサイトにはプロキシを使用してデータを送信することができます。Datadog Serverless Plugin は、Datadog Lambda 拡張機能 を介してメトリクス、トレース、ログを Datadog に送信するように関数を自動的に構成します。
Datadog サーバーレスプラグインをインストールして構成するには、次の手順に従います。
serverless plugin install --name serverless-plugin-datadog
serverless.yml
を更新します:custom:
datadog:
site: <DATADOG_SITE>
apiKeySecretArn: <DATADOG_API_KEY_SECRET_ARN>
関数をインスツルメントするには、AWS CDK アプリの Stack
オブジェクトに DatadogServerless
変換と CfnMapping
を追加します。以下の Python のサンプルコードを参照してください (他の言語での使用方法も同様です)。
<DATADOG_SITE>
を、テレメトリーの送信先となる Datadog サイトに置き換えます。<DATADOG_API_KEY_SECRET_ARN>
を、Datadog API キーが安全に保存されている AWS シークレットの ARN に置き換えます。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。また、secretsmanager:GetSecretValue
権限が必要です。迅速なテストのために、代わりに apiKey
を使用して、Datadog API キーをプレーンテキストで設定することができます。詳細および追加設定については、プラグインドキュメントを参照してください。
Datadog Lambda 拡張機能のインストール
COPY --from=public.ecr.aws/datadog/lambda-extension:<TAG> /opt/. /opt/
<TAG>
を特定のバージョン番号 (たとえば 43
) または latest
に置き換えます。利用可能なタグのリストは、Amazon ECR リポジトリで確認できます。
必要な環境変数を設定する
DD_SITE
に
を設定します。(右側で正しい SITE が選択されていることを確認してください)。DD_API_KEY_SECRET_ARN
を、Datadog API キーが安全に保存されている AWS シークレットの ARN に設定します。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。また、secretsmanager:GetSecretValue
権限が必要です。迅速なテストのために、代わりに DD_API_KEY
を使用して、Datadog API キーをプレーンテキストで設定することができます。DD_UNIVERSAL_INSTRUMENTATION: true
を設定すると、Lambda のリクエストとレスポンスのペイロードをキャプチャしたり、受信する Lambda イベントから APM スパンを推測したりといった高度な構成を活用できます。AWS のリージョンやアーキテクチャに応じた ARN 形式で、Datadog Lambda 拡張機能の Lambda レイヤーを Lambda 関数に追加します。
# AWS 商用リージョンにデプロイされた x86 ベースの Lambda にはこの形式を使用します
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension:43
# AWS 商用リージョンにデプロイされた arm64 ベースの Lambda にはこの形式を使用します
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension-ARM:43
# AWS GovCloud リージョンにデプロイされた x86 ベースの Lambda にはこの形式を使用します
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:43
# AWS GovCloud リージョンにデプロイされた arm64 ベースの Lambda にはこの形式を使用します
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:43
# AWS 商用リージョンにデプロイされた x86 ベースの Lambda にはこの形式を使用します
arn:aws:lambda:<AWS_REGION>:417141415827:layer:Datadog-Extension:43
# AWS 商用リージョンにデプロイされた arm64 ベースの Lambda にはこの形式を使用します
arn:aws:lambda:<AWS_REGION>:417141415827:layer:Datadog-Extension-ARM:43
# AWS GovCloud リージョンにデプロイされた x86 ベースの Lambda にはこの形式を使用します
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:43
# AWS GovCloud リージョンにデプロイされた arm64 ベースの Lambda にはこの形式を使用します
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:43
<AWS_REGION>
を us-east-1
などの有効な AWS リージョンに置き換えてください。
DD_SITE
に
を設定します。(右側で正しい SITE が選択されていることを確認してください)。DD_API_KEY_SECRET_ARN
を、Datadog API キーが安全に保存されている AWS シークレットの ARN に設定します。キーはプレーンテキスト文字列として保存する必要があります (JSON blob ではありません)。また、secretsmanager:GetSecretValue
権限が必要です。迅速なテストのために、代わりに DD_API_KEY
を使用して、Datadog API キーをプレーンテキストで設定することができます。go get github.com/DataDog/datadog-lambda-go
package main
import (
"github.com/aws/aws-lambda-go/lambda"
"github.com/DataDog/datadog-lambda-go"
"gopkg.in/DataDog/dd-trace-go.v1/ddtrace/tracer"
httptrace "gopkg.in/DataDog/dd-trace-go.v1/contrib/net/http"
)
func main() {
// Lambda ハンドラーをラップします
lambda.Start(ddlambda.WrapFunction(myHandler, nil))
}
func myHandler(ctx context.Context, event MyEvent) (string, error) {
// HTTP リクエストをトレースします
req, _ := http.NewRequestWithContext(ctx, "GET", "https://www.datadoghq.com", nil)
client := http.Client{}
client = *httptrace.WrapClient(&client)
client.Do(req)
// カスタムメトリクスを送信します
ddlambda.Metric(
"coffee_house.order_value", // メトリクス名
12.45, // メトリクス値
"product:latte", "order:online" // 関連タグ
)
// カスタムスパンを作成します
s, _ := tracer.StartSpanFromContext(ctx, "child.span")
time.Sleep(100 * time.Millisecond)
s.Finish()
}