AWS Lambda 関数を Splunk Observability Cloud にインストルメンテーションする
Splunk OpenTelemetry Lambda レイヤーは、多くのプログラミング言語用の AWS Lambda 関数を自動的にインストルメンテーションします。次の手順に従って、操作を開始します。
Splunk OpenTelemetry Lambda レイヤーを使用して、多くのプログラミング言語用の AWS Lambda 関数を自動的にインストルメンテーションします。開始するには、ガイド付きセットアップを使用するか、手動で指示に従ってください。
ガイド付きセットアップを使用してカスタマイズされた指示を生成する
Splunk OpenTelemetry Lambda レイヤーを使用して AWS Lambda 関数をインストルメンテーションするテンプレートを生成するには、AWS Lambda ガイド付きセットアップを使用します。AWS Lambda ガイド付きセットアップにアクセスするには、次の手順に従います。
-
Splunk Observability Cloud にログインします。
-
AWS Lambda のガイド付きセットアップを開きます。オプションで、ガイド付きセットアップに自分で移動することもできます:
-
ナビゲーションメニューで、Data Management を選択します。
-
Available integrations タブにアクセスするか、Deployed integrations タブで Add Integration を選択します。
-
インテグレーションフィルターメニューで、All を選択します。
-
[Search] フィールドで、AWS Lambda を検索します。
-
AWS Lambda タイルを選択し、AWS Lambda のガイド付きセットアップを開きます。
-
Splunk OpenTelemetry Lambda レイヤーを手動でインストールする
ガイド付きセットアップを使用しない場合は、以下の手順に従って Splunk OpenTelemetry Lambda レイヤーを手動でインストールしてください。
互換性と必要条件をチェック
Splunk OpenTelemetry Lambdaレイヤーは、AWS Lambdaの以下のランタイムをサポートしています:
- Java 8.al2、11、17、21
- Python 3.8以上
- Node.js 14以上
- Go 1.21
AWS Lambdaレイヤーは、標準的なx86_64システムで90MBのオンディスクを必要とします。
詳細については、AWSのドキュメントサイトでLambdaのランタイムやその他のシステム要件を検索してください。
サイジングとスケーリングに関する考慮事項
オールインワン AWS Lambda レイヤーのインストール
以下の手順に従って、Splunk OpenTelemetry Lambda レイヤーを使用して関数をインストルメンテーションします:
-
AWS Lambdaコンソールで、インストルメンテーションしたい関数を選択します。
-
Layers セクションで Add a layer を選択し、次に Specify an ARN を選択します。
-
AWS Lambda 関数のリージョンの Amazon Resource Name (ARN) を、アーキテクチャーに合ったリストからコピーします:
https://raw.githubusercontent.com/signalfx/lambda-layer-versions/main/splunk-apm/splunk-apm.md
- Standard x86_64
-
Splunk OpenTelemetry Lambda レイヤー
arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm:913 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm:119 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm:119 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm:119 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm:119 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm:118 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm:118 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm:118 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm:118 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm:117 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm:117 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm:117 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm:117 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm:117 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm:117 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm:117 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm:64 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm:64 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm:64 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm:64 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm:64 - Graviton2 ARM64
-
Splunk OpenTelemetry Lambda レイヤー(arm64)
arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-arm:65 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-arm:45 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-arm:45
-
選択したARNを Specify an ARN フィールドに貼り付け、Add を選択します。
-
Splunk OpenTelemetry Lambda レイヤーが Layers テーブルに表示されていることを確認します。
ローカルの Collector を使用しない場合は、データ転送モードの Collector のアドレスを指定する必要があります。「EC2 で Collector ゲートウェイをセットアップする」を参照してください。
Splunk OpenTelemetry Lambda レイヤーを設定する
以下の手順に従って、Splunk OpenTelemetry Lambda レイヤーに必要な設定を追加します:
-
AWS Lambdaコンソールで、インストルメンテーションしている関数を開きます。
-
Configuration に移動し、次に Environment variables に移動します。
-
Edit を選択します。
-
Add environment variable を選択して、以下の各環境変数を追加します:
環境変数
説明
SPLUNK_REALMSplunk レルムを見つけるには、「Note about realms」を参照してください。
SPLUNK_ACCESS_TOKENエクスポータがデータを Splunk Observability Cloud に直接送信するための Splunk 認証トークン。「Authentication token」を参照してください。EC2 の Splunk OTel Collector にデータを送信するには、「EC2 で Collector ゲートウェイをセットアップする」を参照してください。
AWS_LAMBDA_EXEC_WRAPPERプログラミング言語に応じて、環境変数の値を設定します:
- Java
-
# 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 から対応するライブラリのインストルメンテーションをインクルードするようにコードを修正してください。 - Python
-
/opt/otel-instrument - Node.js
-
/opt/nodejs-otel-handler
OTEL_SERVICE_NAMEサービス名
(オプション)
OTEL_RESOURCE_ATTRIBUTESこの環境変数を
deployment.environment=<name-of-your-environment>に設定することで、関数のデプロイ環境の名前を定義します。 -
Save を選択し、環境変数が表に表示されていることを確認します。
メトリクスインジェストのモードを構成するには、「メトリクスの設定」を参照してください。
localhost 上の Collector インスタンスにテレメトリを送信します。ローカルの Collector を使用しない場合は、データ転送モードの Collector のアドレスを指定する必要があります。「EC2 で Collector ゲートウェイをセットアップする」を参照してください。スパンを Splunk Observability Cloud に直接送信する
デフォルトでは、Splunk OpenTelemetry Lambdaレイヤーは、AWS Lambdaと一緒に動作しているCollectorインスタンスにテレメトリを送信します。
Splunk OpenTelemetry Lambdaレイヤーを使用してインストルメンテーションされたAWS Lambda関数からSplunk Observability Cloudに直接スパンを送信するには、次の環境変数を追加します:
-
http/protobufの値を持つOTEL_EXPORTER_OTLP_TRACES_PROTOCOL -
https://ingest.<realm>.signalfx.com/v2/trace/otlpの値を持つOTEL_EXPORTER_OTLP_TRACES_ENDPOINTは、<realm>を組織のレルム名で置き換えます。
Splunk Observability Cloud にデータが表示されることを確認する
AWS Lambda 関数が実行されるたびに、トレースデータとメトリクスデータが Splunk Observability Cloud に表示されます。データが表示されない場合、「Splunk OpenTelemetry Lambda レイヤーのトラブルシューティング」を参照してください。