Splunk Observability Cloud の Python インストルメンテーションのトラブルシューティング 🔗
Splunk Distribution of OpenTelemetry Python を使用して Python アプリケーションをインストルメンテーションしているときに Splunk Observability Cloud にデータが表示されない場合は、以下のトラブルシューティング手順に従ってください。
Python OpenTelemetryの問題のトラブルシューティングの手順 🔗
以下の手順は Python エージェントの問題のトラブルシューティングに役立ちます:
PATHにpipのインストールディレクトリがあるか確認します。 🔗
splunk-py-trace
と splunk-py-trace-bootstrap
を実行するには、pip
のインストールディレクトリが、システムの PATH
環境変数上になければなりません。
pip
がユーザーローカル環境にパッケージをインストールする場合、ユーザーベース bin
ディレクトリを PATH
に追加します。
python -m site --user-base
を実行して、Pythonのユーザー数を調べます。ユーザー・ベース・ディレクトリをパスに追加します:
export PATH="<user-base-path>:$PATH"
デバッグロギングを有効にする 🔗
デバッグロギングを有効にすると、Python のインストルメンテーションの問題のトラブルシューティングに役立ちます。
ロギングを有効にするには、logging
モジュールをインポートし、ロギング・レベルを DEBUG
に設定します:
import logging
logging.basicConfig(level=logging.DEBUG)
デバッグロギングを有効にしてエージェントを実行すると、デバッグ情報がコンソール (stderr) に送信されます。デバッグログエントリーは、以下の例のようになります:
...
[opentelemetry.auto.trace 2021-10-10 10:57:05:814 +0200] [main] DEBUG io.opencensus.tags.Tags - <Could not load lite implementation for TagsComponent, now using default implementation for TagsComponent.3>
[opentelemetry.auto.trace 2021-10-10 10:57:05:722 +0200] [main] DEBUG io.grpc.netty.shaded.io.netty.util.internal.PlatformDependent0 - direct buffer constructor: unavailable
...
すべてのデバッグ・エントリーが Python のインストルメンテーションに影響する問題に関連するとは限りませんが、根本的な原因はデバッグログに現れる可能性が高いです。
注釈
必要なときだけデバッグロギングを有効にします。デバッグモードはより多くのリソースを必要とします。
トレース・エクスポーターの問題 🔗
デフォルトでは、Splunk Distribution of OpenTelemetry Python は OTLP エクスポーターを使用します。トレースのエクスポートに影響する問題があると、デバッグログにエラーが出力されます。
OTLP がスパンをエクスポートできない 🔗
ログの以下のエラーは、エージェントがトレースデータを OpenTelemetry Collector に送信できないことを意味します:
DEBUG:opentelemetry.exporter.otlp.proto.grpc.exporter:Waiting 1s before retrying export of span
DEBUG:opentelemetry.exporter.otlp.proto.grpc.exporter:Waiting 2s before retrying export of span
OTLPエクスポーターとOTel Collector 間の接続不足をトラブルシューティングするには、以下を試してください:
OTEL_EXPORTER_OTLP_ENDPOINT
が正しい OpenTelemetry Collector インスタンスホストを指していることを確認します。OTel Collector インスタンスが構成され、実行されていることを確認します。Splunk OpenTelemetry Collector のトラブルシューティング を参照してください。
OTLP gRPC レシーバーが OTel Collector でアクティブになり、トレースパイプラインに接続されていることを確認します。
OTel Collector が次のアドレスを指していることを確認してください:
http://<host>:4317
.URL が正しいことを確認してください。
チャンネル・パイプライン・エラー 🔗
ログに以下のようなエラーが表示される場合は、PythonエージェントがSplunk Observability Cloudの取り込みエンドポイントにトレースデータを送信しようとしている可能性があります:
E0908 16:23:32.337704280 5881 ssl_transport_security.cc:1468] Handshake failed with fatal error SSL_ERROR_SSL: error:10000095:SSL routines:OPENSSL_internal:ERROR_PARSING_EXTENSION.
E0908 16:23:32.556405854 5881 ssl_transport_security.cc:1468] Handshake failed with fatal error SSL_ERROR_SSL: error:10000095:SSL routines:OPENSSL_internal:ERROR_PARSING_EXTENSION.
この問題を解決するには、別のエクスポーターを使用するか、Splunk Observability Cloud に直接データを送信します。エクスポーターの設定 および Splunk Observability Cloud に直接データを送信する を参照してください。
Jaeger がスパンをエクスポートできない 🔗
注釈
Jaeger エクスポーターは Python ではサポートされなくなりました。OTLP エクスポーターを使用するか、Splunk Observability Cloud に直接データを送信してください。詳細については、Splunk Observability Cloud に直接データを送信する を参照してください。
Jaeger エクスポーターを使ってトレースデータをエクスポートしている場合、ログにエラーがあると、Python エージェントが OTel Collector、Smart Agent (現在は非推奨)、または Splunk Cloud Platform にトレースデータを送信できない可能性があります:
Jaeger と Splunk Observability Cloud の間の接続不足をトラブルシューティングするには、以下をお試しください:
OTEL_EXPORTER_JAEGER_ENDPOINT
が OpenTelemetry Collector、Collector または Smart Agent (廃止予定) の設定インスタンス、または Splunk Ingest URL を指していることを確認してください。Splunk Observability Cloud API エンドポイントの概要 の Splunk Ingest URL の概要を参照してください。OTel CollectorまたはSmart Agentインスタンスが構成され、実行されていることを確認します。
Jaeger Thrift HTTPレシーバーが有効化され、トレースパイプラインに接続されていることを確認してください。公開ポートとエンドポイント を参照してください。
エンドポイントが正しいことを確認します。OpenTelemetry Collector と Smart Agent はデフォルトで異なるポートとパスを使用します。Jaeger レシーバーの場合、OTel Collector は
http://<host>:14268/api/traces
を使用し、Smart Agent はhttp://<host>:9080/v1/trace
を使用します。
スパン送信時の401エラー 🔗
トレースを Splunk Observability Cloud に直接送信して 401 エラーコードを受け取った場合、SPLUNK_ACCESS_TOKEN
で指定した認証トークンが無効です。次のような理由が考えられます:
値はnullです。
値が整形式トークンではありません。
このトークンは、
authScope
が ingest に設定されているアクセストークンではありません。
Splunk プラットフォームインスタンスに直接データを送信する場合は、有効な Splunk アクセストークンを使用していることを確認してください。Splunk Observability Cloudを使用したユーザー APIアクセストークンの取得と管理 を参照してください。
Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。
Splunk Observability Cloudをご利用のお客様
Submit a case in the Splunk Support Portal .
Contact Splunk Support .
見込み客および無料トライアルユーザー様
Splunk Answers のコミュニティサポートで質問し、回答を得る
Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。