- 重要な情報
- アプリ内
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
go1.x
を使用していて、provided.al2
ランタイムに移行できない場合、代わりに Datadog Forwarder を使用してインスツルメントする必要があります。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 キーをプレーンテキストで設定することができます。詳細および追加設定については、プラグインドキュメントを参照してください。
AWS のリージョンやアーキテクチャに応じた ARN 形式で、Datadog Lambda 拡張機能の Lambda レイヤーを Lambda 関数に追加します。
# AWS 商用リージョンにデプロイされた x86 ベースの Lambda にはこの形式を使用します
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension:36
# AWS 商用リージョンにデプロイされた arm64 ベースの Lambda にはこの形式を使用します
arn:aws:lambda:<AWS_REGION>:464622532012:layer:Datadog-Extension-ARM:36
# AWS GovCloud リージョンにデプロイされた x86 ベースの Lambda にはこの形式を使用します
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension:36
# AWS GovCloud リージョンにデプロイされた arm64 ベースの Lambda にはこの形式を使用します
arn:aws-us-gov:lambda:<AWS_REGION>:002406178527:layer:Datadog-Extension-ARM:36
<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()
}