Splunk OpenTelemetry Lambda レイヤーを設定する

環境変数を通じて Splunk OpenTelemetry Lambda レイヤーのエージェントを設定することで、AWS Lambda 関数のインストルメンテーションのほとんどのニーズに対応できます。

Splunk OpenTelemetry Lambda レイヤーは、インストルメンテーションのニーズに合わせて設定できます。ほとんどの場合、基本設定を調整するだけで開始するには十分です。「Splunk OpenTelemetry Lambda Layer を設定する」を参照してください。

以下の設定を変更することで、Splunk OpenTelemetry Lambda レイヤー独自の新機能を有効にするオプションを含め、Lambda レイヤーを完全に設定することができます。

一般設定

以下の設定は、Splunk Observability Cloud にデータを送信する Lambda レイヤーを有効にします:

環境変数

説明

SPLUNK_REALM

組織のレルムの名前。レルムを指定しない場合は、トレースデータとメトリクスデータのカスタムエンドポイントを定義する必要があります。「エクスポータの設定」および「メトリクスの設定」を参照してください。

SPLUNK_ACCESS_TOKEN

エクスポータがデータを Splunk Observability Cloud に直接送信するための Splunk 認証トークン。SPLUNK_REALM 環境変数が存在する場合は必須です。「Splunk Observability Cloud を使用して認証トークンを作成および管理する」を参照してください。

トレース設定

以下の設定は、トレースの制限と属性を制御します:

環境変数

説明

OTEL_SERVICE_NAME

インストルメンテーションしているサービスまたはアプリケーションの名前。OTEL_RESOURCE_ATTRIBUTES で定義されたサービス名よりも優先されます。

OTEL_RESOURCE_ATTRIBUTES

報告されたスパンごとに追加されるリソース属性のカンマ区切りリスト。たとえば、変数を deployment.environment=<name-of-your-environment> に設定することで、関数のデプロイ環境の名前を定義できます。

OTEL_SPAN_ATTRIBUTE_COUNT_LIMIT

スパンごとの属性の最大数。デフォルトでは無制限です。

OTEL_SPAN_EVENT_COUNT_LIMIT

スパンあたりの最大イベント数。デフォルトでは無制限です。

OTEL_SPAN_LINK_COUNT_LIMIT

スパンあたりの最大リンク数。デフォルトは 1000 です。

OTEL_ATTRIBUTE_VALUE_LENGTH_LIMIT

属性値の文字列の最大長。上限より大きい値は切り捨てられます。デフォルトは 1200 です。

エクスポーターの設定

以下の設定は、トレースエクスポーターとそのエンドポイントをコントロールします:

環境変数

説明

OTEL_TRACES_EXPORTER

使用するエクスポータを追跡します。複数のカンマ区切り値を設定できます。使用可能な値は otlpjaeger-thrift-splunk です。

OTEL_EXPORTER_OTLP_ENDPOINT

OTLP エンドポイント。OTLP エンドポイント。デフォルトは localhost、http://localhost:4318 で動作しているコレクタです。

OTEL_EXPORTER_JAEGER_ENDPOINT

Jaeger エクスポータのエンドポイント。環境変数 SPLUNK_REALM に値を設定すると、デフォルトのエンドポイントは https://ingest.<realm>.signalfx.com/v2/trace という形式になります。

注: ほとんどの場合、エクスポータとエンドポイント URL の設定は必要ありません。デフォルトでは、このレイヤーはテレメトリを Lambda レイヤーで実行される Collector に直接送信し、この Collector はデータを Splunk Observability Cloud インジェストエンドポイントに送信します。

プロパゲータの構成

以下の設定はトレース伝搬をコントロールします:

環境変数

説明

OTEL_PROPAGATORS

使用するプロパゲータのカンマ区切りリスト。デフォルトは tracecontext,baggage です。サポートされているプロパゲータの一覧は、OpenTelemetry の公式ドキュメントにあります。

メトリクスの設定

以下の設定は、AWS Lambda のメトリクスデータの Splunk Observability Cloud への送信を制御します:

環境変数

説明

SPLUNK_METRICS_ENDPOINT

メトリクスデータ取り込み用のエンドポイント。環境変数 SPLUNK_REALM に値を設定すると、デフォルトのエンドポイントは https://ingest.<realm>.signalfx.com という形式になります。

FAST_INGEST

データポイントの送信に使用する方法を指定します。false を使用してメトリクスデータをバッファリングし、REPORTING_RATE 変数で定義された間隔で Splunk Observability Cloud に送信します。デフォルトは true です。

REPORTING_RATE

レイヤーが Splunk Observability Cloud にデータポイントを送信する頻度を秒単位で指定します。デフォルト値は 15 です。最小値は 1 です。

REPORTING_TIMEOUT

データポイントを Splunk Observability Cloud に送信するタイムアウト(秒単位)。デフォルト値は 5 です。最小値は 1 です。

VERBOSE

メトリクスデータ収集の冗長ロギングをアクティブにします。AWS CloudWatch は、ログを Lambda 関数に関連付けられたロググループとして保存します。デフォルトは false です。

HTTP_TRACING

Splunk Observability Cloud への HTTP 呼び出しの詳細ログを有効にします。デフォルトは false です。

詳細については、「Splunk Observability Cloud の AWS Lambda メトリクスとディメンション」を参照してください。

サーバートレース情報

モバイルおよびウェブアプリケーションからのリアルユーザーモニタリング (RUM) リクエストとサーバーレスのトレースデータを接続するために、Splunk OpenTelemetry Lambda レイヤーは HTTP レスポンスに以下のレスポンスヘッダーを追加します:

Access-Control-Expose-Headers: Server-Timing
Server-Timing: traceparent;desc="00-<serverTraceId>-<serverSpanId>-01"

Server-Timing ヘッダーには traceIdspanId パラメータが traceparent 形式で含まれます。詳しくは、W3C Web サイトの Server-Timing と traceparent のドキュメントを参照してください。

その他の設定

環境変数

説明

OTEL_INSTRUMENTATION_AWS_LAMBDA_FLUSH_TIMEOUT

スパンのバッファリングのタイムアウトをミリ秒単位で指定します。デフォルト値は 30000 ミリ秒です。

OTEL_LOG_LEVEL

デバッグロギングのレベル。デフォルトは WARN です。DEBUG に設定すると、レイヤーは追加のログを AWS CloudWatch に送信します。

SPLUNK_LAMBDA_SLS_ZIP

Serverless Framework を使って圧縮された Python ライブラリをインストルメンテーションするには true に設定します。デフォルト値は false です。

SPLUNK_EXTENSION_WRAPPER_ENABLED

レガシー SignalFx メトリクス インストルメンテーションを非アクティブにするには、false に設定します。これは、インフラストラクチャのモニタリングを使用せず、ウォームアップ時間を短縮する場合に役立ちます。デフォルト値は true です。

SPLUNK_LAMBDA_LOCAL_COLLECTOR_ENABLED

各 Lambdaランタイム内で実行されている OpenTelemetry Collector インスタンスを非アクティブにするには、false に設定します。バンドルされている Collector を非アクティブにする場合は、REST API インジェストエンドポイントに直接通信するか、Collector のフォワーディング インスタンスを設定し、そこにデータを送信するようにインストルメンテーションを設定します。デフォルト値は true です。詳細については、「EC2 で Collector ゲートウェイをセットアップする」を参照してください。

OTEL_PYTHON_DISABLED_INSTRUMENTATIONS

非アクティブ化する Python インストルメンテーションのカンマ区切りリスト。自動的にロードされるインストルメンテーションのリストについては、GitHub の OpenTelemetry リポジトリにある要件リストを参照してください(https://github.com/open-telemetry/opentelemetry-lambda/blob/main/python/src/otel/otel_sdk/nodeps-requirements.txt)。

注意: DEBUG ロギングを有効にすると、AWS CloudWatch のコストが増加する可能性があります。