Docs » Splunk Observability Cloud でサポートされているインテグレーション » バックエンドアプリケーションをインストルメンテーションして、スパンを Splunk APM に送信する » Splunk Observability Cloud 用 Python アプリケーションのインストルメンテーション » Splunk Observability Cloud の Python インストルメンテーションのトラブルシューティング

Splunk Observability Cloud の Python インストルメンテーションのトラブルシューティング 🔗

Splunk Distribution of OpenTelemetry Python を使用して Python アプリケーションをインストルメンテーションしているときに Splunk Observability Cloud にデータが表示されない場合は、以下のトラブルシューティング手順に従ってください。

Python OpenTelemetryの問題のトラブルシューティングの手順 🔗

以下の手順は Python エージェントの問題のトラブルシューティングに役立ちます:

  1. PATHにpipのインストールディレクトリがあるか確認します。

  2. デバッグロギングを有効にする

PATHにpipのインストールディレクトリがあるか確認します。 🔗

splunk-py-tracesplunk-py-trace-bootstrap を実行するには、pip のインストールディレクトリが、システムの PATH 環境変数上になければなりません。

pip がユーザーローカル環境にパッケージをインストールする場合、ユーザーベース bin ディレクトリを PATH に追加します。

  1. python -m site --user-base を実行して、Pythonのユーザー数を調べます。

  2. ユーザー・ベース・ディレクトリをパスに追加します:

    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 間の接続不足をトラブルシューティングするには、以下を試してください:

  1. OTEL_EXPORTER_OTLP_ENDPOINT が正しい OpenTelemetry Collector インスタンスホストを指していることを確認します。

  2. OTel Collector インスタンスが構成され、実行されていることを確認します。Splunk OpenTelemetry Collector のトラブルシューティング を参照してください。

  3. OTLP gRPC レシーバーが OTel Collector でアクティブになり、トレースパイプラインに接続されていることを確認します。

  4. 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 の間の接続不足をトラブルシューティングするには、以下をお試しください:

  1. OTEL_EXPORTER_JAEGER_ENDPOINT が OpenTelemetry Collector、Collector または Smart Agent (廃止予定) の設定インスタンス、または Splunk Ingest URL を指していることを確認してください。Splunk Observability Cloud API エンドポイントの概要 の Splunk Ingest URL の概要を参照してください。

  2. OTel CollectorまたはSmart Agentインスタンスが構成され、実行されていることを確認します。

  3. Jaeger Thrift HTTPレシーバーが有効化され、トレースパイプラインに接続されていることを確認してください。公開ポートとエンドポイント を参照してください。

  4. エンドポイントが正しいことを確認します。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をご利用のお客様

見込み客および無料トライアルユーザー様

  • Splunk Answers のコミュニティサポートで質問し、回答を得る

  • Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。

This page was last updated on 2024年05月29日.