Splunk Observability Cloud に Go Lambda 関数をインストルメンテーションする
以下の手順に従って、OpenTelemetry を使用して AWS の Go Lambda 関数をインストルメンテーションし、Splunk Observability Cloud にトレースを送信します。
AWS Lambda for Splunk APM で Go 関数をインストルメンテーションするには、以下の手順に従います:
-
以下のコマンドを実行して、
otellambdaと Splunk OTel Go ディストリビューションをインストールします:go get -u go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda go get -u github.com/signalfx/splunk-otel-go/distro -
関数のコードの中に、OpenTelemetry インストルメンテーションのラッパーを作成します。例:
package main import ( "context" "fmt" "github.com/aws/aws-lambda-go/lambda" "github.com/signalfx/splunk-otel-go/distro" "go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda" "go.opentelemetry.io/otel" ) func main() { distro.Run() flusher := otel.GetTracerProvider().(otellambda.Flusher) lambda.Start(otellambda.InstrumentHandler(HandleRequest, otellambda.WithFlusher(flusher))) } type MyEvent struct { Name string `json:"name"` } func HandleRequest(ctx context.Context, name MyEvent) (string, error) { return fmt.Sprintf("Hello %s!", name.Name), nil }注:- 完全な例については、GitHub の「OpenTelemetry Lambda tracing examples」を参照してください。
- 「Goアプリケーションを Splunk Observability Cloud 用にインストルメンテーションする」を参照してください。
- OTEL_PROPAGTORS を設定して、W3C トレースコンテキスト、W3C バゲージ、AWS X-Ray 伝播を有効にします。
OTEL_PROPAGATORS=tracecontext,baggage,xray注: 詳細については、「Propagator configiration」を参照してください。 -
必要な環境変数を設定します。「Splunk OpenTelemetry Lambda Layer を設定する」を参照してください。
詳細については、「AWS Lambda 関数を Splunk Observability Cloud にインストルメンテーションする」を参照してください。