EC2 の Collector ゲートウェイを使用して AWS Lambda 関数をインストルメンテーションする 🔗
ランタイム用のレイヤーと EC2 の Collector ゲートウェイを使用して、AWS Lambda 関数を Splunk Observability Cloud 用に自動的にインストルメンテーションできます。Collector ゲートウェイを使用すると、データを集約して負荷を軽減できます。
以下の手順に従って、Java、Python、または Node.js 関数用の Splunk OpenTelemetry Lambda レイヤーをインストールしてください。オールインワンのデフォルトデプロイ手順は、AWS Lambda 関数を Splunk Observability Cloud にインストルメンテーションする を参照してください。
互換性と必要条件をチェック 🔗
Splunk OpenTelemetry Lambda レイヤーは、AWS Lambda の以下のランタイムをサポートしています:
Java 8.al2、11、17、21
Python 3.8 and higher
Node.js 14以上
Go 1.21
AWS Lamda レイヤーは、標準的な x86_64 システムで 90 MB のオンディスクを必要とします。
詳細については、AWSのドキュメントサイトでLambdaのランタイムやその他のシステム要件を検索してください。
言語用のAWS Lambdaレイヤーをインストールする 🔗
以下の手順に従って、Splunk OpenTelemetry Lambda レイヤーを使用して関数をインストルメンテーションします:
AWS Lambdaコンソールで、インストルメンテーションしたい関数を選択します。
Layers セクションで Add a layer を選択し、次に Specify an ARN を選択します。
AWS Lambda 関数のリージョンの Amazon Resource Name (ARN) を、アーキテクチャーに合ったリストからコピーします:
<h3>Splunk OpenTelemetry Lambda Java Layer</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-java:170 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-java:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-java:12 </pre>
<h3>Splunk OpenTelemetry Lambda Java Layer (arm64)</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-java-arm:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-java-arm:12 </pre>
<h3>Splunk OpenTelemetry Lambda Node.js Layer</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-js:170 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-js:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-js:12 </pre>
<h3>Splunk OpenTelemetry Lambda Node.js Layer (arm64)</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-js-arm:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-js-arm:12 </pre>
<h3>Splunk OpenTelemetry Lambda Python Layer</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-python:170 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-python:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-python:12 </pre>
注釈
サーバーレス・フレームワークを使ったPython関数については、サーバーレス・フレームワークのサポート を参照してください。
<h3>Splunk OpenTelemetry Lambda Python Layer (arm64)</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-python-arm:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-python-arm:12 </pre>
注釈
サーバーレス・フレームワークを使ったPython関数については、サーバーレス・フレームワークのサポート を参照してください。
選択したARNを Specify an ARN フィールドに貼り付け、Add を選択します。
Splunk レイヤーが Layers テーブルに表示されていることを確認します。
(オプション) 前の手順を繰り返して、Splunk Infrastructure Monitoring 用の AWS Lambda メトリクス拡張レイヤーをインストールします。
<h3>Splunk Metrics Extension Layer</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-lambda-metrics:170 arn:aws:lambda:us-east-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-lambda-metrics:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-lambda-metrics:12 </pre>
<h3>Splunk Metrics Extension Layer (arm64)</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:us-east-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:us-west-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:us-west-2:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:af-south-1:254067382080:layer:splunk-lambda-metrics-arm:12 arn:aws:lambda:me-south-1:254067382080:layer:splunk-lambda-metrics-arm:12 </pre>
注釈
AWS CLI やその他の自動化ツールを使って、Lambda レイヤーの更新を自動化できます。
Splunk OpenTelemetry Lambda レイヤーを設定する 🔗
以下の手順に従って、Splunk OpenTelemetry Lambda レイヤーに必要な設定を追加します:
AWS Lambdaコンソールで、インストルメンテーションしている関数を開きます。
Configuration に移動し、次に Environment variables に移動します。
Edit を選択します。
Add environment variable を選択して、以下の各環境変数を追加します:
環境変数
説明
SPLUNK_REALM
Splunk レルムを見つけるには、レルムに関する注意事項 を参照してください。
SPLUNK_ACCESS_TOKEN
Splunk Observability Cloud に直接データを送信するための Splunk 認証トークン。認証トークン を参照してください。EC2 の Splunk OTel Collector にデータを送信するには、EC2 で Collector ゲートウェイをセットアップする を参照してください。
AWS_LAMBDA_EXEC_WRAPPER
プログラミング言語に応じて、環境変数の値を設定します:
# Select the most appropriate value # Wraps regular handlers that implement RequestHandler /opt/otel-handler # Same as otel-handler, but proxied through API Gateway, # with HTTP context propagation activated /opt/otel-proxy-handler # Wraps streaming handlers that implement RequestStreamHandler /opt/otel-stream-handler
注釈
デフォルトでは、AWS SDK v2 のインストルメンテーションのみが有効になっています。他のライブラリをインストルメンテーションするには、OpenTelemetry Java SDK から対応するライブラリのインストルメンテーションをインクルードするようにコードを修正してください。
/opt/otel-instrument
/opt/nodejs-otel-handler
OTEL_SERVICE_NAME
サービス名
(オプション)
OTEL_RESOURCE_ATTRIBUTES
この環境変数を
deployment.environment=<name-of-your-environment>
に設定することで、関数のデプロイ環境の名前を定義します。Save を選択し、環境変数が表に表示されていることを確認します。
メトリクス・インジェストのモードを設定するには、メトリクスの設定 を参照してください。
注釈
デフォルトでは、レイヤーは、Collector レイヤーを使用して localhost 上の Collector インスタンスにテレメトリを送信します。ローカルの Collector を使用しない場合は、データ転送モードで Collector のアドレスを指定する必要があります。EC2 で Collector ゲートウェイをセットアップする を参照してください。
EC2 で Collector ゲートウェイをセットアップする 🔗
To send spans and metrics from the instrumented AWS Lambda function to the Collector gateway running in EC2, do the following:
Collector をゲートウェイモードで、機能が到達できるサービス (EC2など) プロイします。データ転送(ゲートウェイ)モード を参照してください。
インストルメンテーションしたい AWS Lambda 関数が EC2の Collector ゲートウェイに到達でき、同じ VPC 内にあることを確認します。
Configuration、Environment variables の順に移動し、次に Edit を選択します。
以下の環境変数をインストルメンテーションされた関数に追加します:
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
with the address of the EC2 instance that runs the gateway, for examplehttp://10.0.0.123:4318/v1/traces
otlp
の値を持つOTEL_TRACES_EXPORTER
http/protobuf
の値を持つOTLP_EXPORTER_OTLP_TRACES_PROTOCOL
false
の値を持つSPLUNK_LAMBDA_LOCAL_COLLECTOR_ENABLED
SPLUNK_METRICS_ENDPOINT
with the address of the EC2 instance that runs the gateway, for examplehttp://10.0.0.123:9943
Collectorの設定でアクセストークンとレルムを設定済みの場合は、
SPLUNK_ACCESS_TOKEN
とSPLUNK_REALM
環境変数を削除してください。
Splunk Observability Cloud にデータが表示されることを確認する 🔗
AWS Lambda 関数が実行されるたびに、トレースデータとメトリクスデータが Splunk Observability Cloud に表示されます。データが表示されない場合は、Splunk OpenTelemetry Lambda レイヤーのトラブルシューティング を参照してください。