AWS Lambda 関数を Splunk Observability Cloud にインストルメンテーションする 🔗
Splunk OpenTelemetry Lambda レイヤーを使用して、多くのプログラミング言語用の AWS Lambda 関数を自動的にインストルメンテーションします。開始するには、ガイド付きセットアップを使用するか、手動で手順に従ってください。
Splunk OpenTelemetry Lambda レイヤーを使用して AWS Lambda 関数をインストルメンテーションするテンプレートを生成するには、AWS Lambda ガイド付きセットアップを使用します。AWS Lambda ガイド付きセットアップにアクセスするには、次の手順に従います:
Splunk Observability Cloud にログインします。
AWS Lambda ガイド付きセットアップ を開きます。オプションで、ガイド付きセットアップに自分で移動することもできます:
ナビゲーションメニューで、
を選択します。Go to the Available integrations tab, or select Add Integration in the Deployed integrations tab.
インテグレーションフィルターーメニューで、All を選択します。
Search フィールドで AWS Lambda を検索します。
AWS Lambda タイルを選択し、AWS Lambda のガイド付きセットアップを開きます。
ガイド付きセットアップを使用しない場合は、以下の手順に従って Splunk OpenTelemetry Lambda レイヤーを手動でインストールしてください。
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のランタイムやその他のシステム要件を検索してください。
このレイヤーのデフォルトバージョンは、複数のランタイムをサポートし、Collector とメトリクス拡張レイヤーを含んでいます。パフォーマンスのオーバーヘッドを削減する必要がある場合は、以下のデプロイ方法から選択することを検討してください:
以下の手順に従って、Splunk OpenTelemetry Lambda レイヤーを使用して関数をインストルメンテーションします:
AWS Lambdaコンソールで、インストルメンテーションしたい関数を選択します。
Layers セクションで Add a layer を選択し、次に Specify an ARN を選択します。
AWS Lambda 関数のリージョンの Amazon Resource Name (ARN) を、アーキテクチャーに合ったリストからコピーします:
<h3>Splunk OpenTelemetry Lambda Layer</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm:737 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm:109 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm:109 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm:109 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm:109 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm:108 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm:108 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm:108 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm:108 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm:107 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm:107 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm:107 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm:107 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm:107 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm:107 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm:107 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm:54 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm:54 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm:54 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm:54 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm:54 </pre>
<h3>Splunk OpenTelemetry Lambda Layer (arm64)</h3> <pre> arn:aws:lambda:us-east-2:254067382080:layer:splunk-apm-arm:58 arn:aws:lambda:us-east-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:eu-central-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:us-west-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:us-west-2:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ap-south-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ap-northeast-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ap-northeast-2:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ap-southeast-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ap-southeast-2:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ca-central-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:eu-west-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:eu-west-2:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:eu-west-3:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:eu-north-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:sa-east-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:eu-south-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ap-northeast-3:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:ap-east-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:af-south-1:254067382080:layer:splunk-apm-arm:38 arn:aws:lambda:me-south-1:254067382080:layer:splunk-apm-arm:38 </pre>
選択したARNを Specify an ARN フィールドに貼り付け、Add を選択します。
Splunk OpenTelemetry Lambda レイヤーが Layers テーブルに表示されていることを確認します。
ローカルの Collector を使用しない場合は、データ転送モードの Collector のアドレスを指定する必要があります。EC2 で Collector ゲートウェイをセットアップする を参照してください。
注釈
AWS Lambda レイヤーの更新は、AWS CLI やその他の自動化ツールを使って自動化できます。
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 ゲートウェイをセットアップする を参照してください。
スパンを 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>
を組織のレルム名で置き換えます。
AWS Lambda 関数が実行されるたびに、トレースデータとメトリクスデータが Splunk Observability Cloud に表示されます。データが表示されない場合は、Splunk OpenTelemetry Lambda レイヤーのトラブルシューティング を参照してください。