Splunk OpenTelemetry Lambda レイヤーのトラブルシューティング
インストルメンテーションされた AWS Lambda 関数が Splunk Observability Cloud にデータを送信しない、またはデータが欠落している場合は、以下の手順に従って問題を特定し、解決してください。
インストルメンテーションされた AWS Lambda 関数が Splunk Observability Cloud にデータを送信しない、またはデータが欠落している場合は、以下の手順に従って問題を特定し、解決してください。
Splunk Observability Cloud にデータが表示されない
インストルメンテーションされた AWS Lambda 関数からのデータが Splunk Observability Cloud に表示されない場合は、以下の手順をお試しください:
-
AWS Lambda 関数の CloudWatch メトリクスを確認します。Lambda 関数が呼び出しに応答していることを確認します。エラーを確認することもできます。
-
SPLUNK_REALMとSPLUNK_ACCESS_TOKEN環境変数を指定したことを確認してください。「Splunk OpenTelemetry Lambda Layer を設定する」を参照してください。 -
バックエンドやネットワークが遅い場合は、
OTEL_INSTRUMENTATION_AWS_LAMBDA_FLUSH_TIMEOUT環境変数の値を増やしてみてください。 -
拡張機能の冗長ロギングを有効にします。「デバッグロギングを有効にする」を参照してください。
Splunk Observability Cloud にデータポイントやメトリクスがない
インストルメンテーションされた AWS Lambda 関数からのメトリクスデータが Splunk Observability Cloud に表示されない場合は、次の手順をお試しください:
-
AWS Lambda 関数の CloudWatch メトリクスを確認します。Lambda 関数が呼び出しに応答していることを確認します。エラーを確認することもできます。
-
SPLUNK_REALMとSPLUNK_ACCESS_TOKEN環境変数を指定したことを確認してください。「Splunk OpenTelemetry Lambda Layer を設定する」を参照してください。 -
バッファリングモードにより、データポイントが大幅に遅延して送信されている可能性があります。「メトリクスの設定」を参照してください。
-
拡張機能の冗長ロギングを有効にします。「デバッグロギングを有効にする」を参照してください。
SPLUNK_ACCESS_TOKENとSPLUNK_REALMに関するエラー
以下のエラーが表示される場合は、SPLUNK_ACCESS_TOKEN 環境変数の値を設定する必要があります:
[ERROR] SPLUNK_REALM is set, but SPLUNK_ACCESS_TOKEN is not set. To export data to Splunk Observability Cloud, define a Splunk Access Token.
詳細については、「一般情報の設定」を参照してください。
エクスポーター・エンドポイントとSPLUNK_REALMに関するエラー
以下のエラーが表示される場合は、SPLUNK_REALM と SPLUNK_ACCESS_TOKEN 環境変数の値を設定するか、エクスポータエンドポイントを定義する必要があります。
[ERROR] Exporter endpoint must be set when SPLUNK_REALM is not set. To export data, either set a realm and access token or a custom exporter endpoint.
カスタム エクスポータ エンドポイントを定義する方法については、「エクスポータの設定」を参照してください。
自動的にロードされるインストルメンテーションを無効にする
Splunk OpenTelemetry Lambda レイヤーに含まれるラッパーの中には、一般的なライブラリやフレームワークのインストルメンテーションを自動的にロードするものがあります。自動的にロードされるインストルメンテーションを無効にするには、以下の手順に従ってください。
- Python
-
非アクティブ化したいインストルメンテーションを
OTEL_PYTHON_DISABLED_INSTRUMENTATIONS環境変数のカンマ区切りの値として入力します。自動的にロードされるインストルメンテーションのリストについては、GitHub の OpenTelemetry リポジトリにある要件リストを参照してください(https://github.com/open-telemetry/opentelemetry-lambda/blob/main/python/src/otel/otel_sdk/nodeps-requirements.txt)。
デバッグロギングを有効にする
それでも関数のトレースデータが Splunk Observability Cloud に表示されない場合は、ロギングを有効にしてデバッグ情報を収集します。
-
インストルメンテーションされた関数に対し、環境変数
OTEL_LAMBDA_LOG_LEVELをDEBUGに設定します。 -
AWS CloudWatchでスパンを確認します。
-
バックエンドで特定のスパンを検索します。
メトリクスデータについては、以下の手順に従ってください:
-
環境変数
VERBOSEをtrueに設定します。 -
環境変数
HTTP_TRACINGをtrueに設定します。 -
AWS CloudWatchで関連するログメッセージを検索します。
サーバーレス・フレームワークのサポート
Serverless Frameworkのいくつかの機能は、Python Lambda関数のOpenTelemetryトレースに影響を与える可能性があります。
Pythonライブラリの圧縮
pythonRequirements の zip 機能を使用すると、Lambda の依存関係を圧縮ファイルとしてパックおよび展開できます。サーバレスフレームワークを使用して圧縮されたパッケージをインストルメンテーションするには、SPLUNK_LAMBDA_SLS_ZIP 環境変数を true に設定します。詳細については、GitHub(https://github.com/serverless/serverless-python-requirements#dealing-with-lambdas-size-limitations)を参照してください。
スリム機能
スリム機能は、dist-info フォルダを含む一部のファイルを削除することで、Lambda パッケージのサイズを削減します。スリム機能によって削除されたファイルの一部は、OpenTelemetry Python 自動インストルメンテーションに必要です。serverless.yml ファイルの slim オプションを無効にするか、カスタム slimPatterns を定義します。詳細については、GitHub(https://github.com/serverless/serverless-python-requirements#slim-package)を参照してください。