Splunk OpenTelemetry Lambda レイヤーのトラブルシューティング 🔗
インストルメンテーションされた AWS Lambda 関数が Splunk Observability Cloud にデータを送信しない、またはデータが欠落している場合は、以下の手順に従って問題を特定し、解決してください。
Splunk Observability Cloud にデータが表示されない 🔗
インストルメンテーションされた AWS Lambda 関数からのデータが Splunk Observability Cloud に表示されない場合は、以下の手順をお試しください:
AWS Lambda FunctionのCloudWatchメトリクスを確認します。Lambda関数が呼び出しに応答していることを確認します。エラーを確認することもできます。
SPLUNK_REALM
とSPLUNK_ACCESS_TOKEN
環境変数を指定したことを確認してください。Splunk OpenTelemetry Lambda レイヤーを設定する を参照してください。バックエンドやネットワークが遅い場合は、
OTEL_INSTRUMENTATION_AWS_LAMBDA_FLUSH_TIMEOUT
環境変数の値を増やしてみてください。拡張機能の冗長ロギングを有効にします。デバッグロギングを有効にする を参照してください。
Splunk Observability Cloud にデータポイントやメトリクスがない 🔗
インストルメンテーションされた AWS Lambda 関数からのメトリクスデータが Splunk Observability Cloud に表示されない場合は、次の手順をお試しください:
AWS Lambda FunctionのCloudWatchメトリクスを確認します。Lambda関数が呼び出しに応答していることを確認します。エラーを確認することもできます。
SPLUNK_REALM
とSPLUNK_ACCESS_TOKEN
環境変数を指定したことを確認してください。Splunk OpenTelemetry Lambda レイヤーを設定する を参照してください。バッファリングモードにより、エクステンションがデータポイントを大幅に遅延して送信している可能性があります。メトリクスの設定 を参照してください。
拡張機能の冗長ロギングを有効にします。デバッグロギングを有効にする を参照してください。
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 レイヤーに含まれるラッパーの中には、一般的なライブラリやフレームワークのインストルメンテーションを自動的にロードするものがあります。自動的にロードされるインストルメンテーションを無効にするには、以下の手順に従ってください:
Enter the instrumentations you want to deactivate as comma-separated values for the OTEL_PYTHON_DISABLED_INSTRUMENTATIONS
environment variable. For a list of automatically loaded instrumentations, see the requirements list in the OpenTelemetry repository on GitHub: 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 の依存関係を圧縮ファイルとしてパッキングしてデプロイできます。Serverless Frameworkを使って圧縮されたパッケージをインストルメンテーションするには、SPLUNK_LAMBDA_SLS_ZIP
環境変数を true
に設定します。詳細はGitHubのhttps://github.com/serverless/serverless-python-requirements#dealing-with-lambdas-size-limitations を参照してください。
スリム機能 🔗
スリム機能は、dist-info
フォルダを含むいくつかのファイルを削除することで、Lambda パッケージのサイズを縮小します。Slim 機能で削除されるファイルの中には、OpenTelemetry Python 自動インストルメンテーションに必要なものもあります。serverless.yml ファイルで slim
オプションを無効にするか、カスタム slimPatterns
を定義してください。詳細については、GitHub の https://github.com/serverless/serverless-python-requirements#slim-package を参照してください。