Docs » Splunk APMのAlwaysOn Profilingの概要 » AlwaysOn Profilingのトラブルシューティング

AlwaysOn Profilingのトラブルシューティング 🔗

アプリケーションのインストルメンテーションを行ったが、Splunk APMにプロファイリングデータが表示されないという場合は、以下のガイドラインを使用してAlwaysOn Profilingのトラブルシューティングを行います:

注釈

AlwaysOn Profilingには、Splunk Distribution of OpenTelemetry Collectorのバージョン0.44以上が必要です。

Splunk Observability Cloudにプロファイリングデータが表示されない 🔗

If profiling data does not appear in Splunk Observability Cloud, do the following:

アプリケーションがインストルメント済みであることを確認する 🔗

AlwaysOn Pofilingのデータは、Splunk APM用にアプリケーションまたはサービスをインストルメントした場合にのみ抽出できます。APMのインストルメンテーションが読み込まれない、または機能しない場合は、プロファイラーは動作しません。

これを解決するには、アプリケーションがインストルメント済みであることと、アプリケーションがAPMにトレースデータを送信していることを確認します。アプリケーションやサービスをインストルメントする を参照してください。

OpenTelemetry Collectorの設定を確認する 🔗

AlwaysOn Profilingでは、Splunk Observability Cloudにプロファイリングデータを送信するためにSplunk HTTP Event Collector(HEC)エクスポーターが必要です。Splunk HECエクスポーターが設定されていない場合、Collectorはプロファイリングデータを除外します。

この問題を解決するには、Collectorの設定ファイルを編集し、OTLP gRPCレシーバーとSplunk HECエクスポーターを持つプロファイリングパイプラインが存在することを確認します。詳細は Splunk HEC エクスポーター を参照してください。

次の例は、agent-config.yaml ファイルでパイプラインを設定する方法を示しています。SPLUNK_ACCESS_TOKEN 環境変数に有効なアクセストークンを設定します。Splunk Observability Cloudを使用した組織のアクセストークンの作成および管理 を参照してください。

receivers:
  otlp:
    protocols:
      grpc:

exporters:
  # Profiling
  splunk_hec/profiling:
    token: "${SPLUNK_ACCESS_TOKEN}"
    endpoint: "${SPLUNK_INGEST_URL}/v1/log"
    log_data_enabled: false

processors:
  batch:
  memory_limiter:
    check_interval: 2s
    limit_mib: ${SPLUNK_MEMORY_LIMIT_MIB}

service:
  pipelines:
    logs/profiling:
      receivers: [otlp]
      processors: [memory_limiter, batch]
      exporters: [splunk_hec, splunk_hec/profiling]

エクスポーターは、Splunk OTel Collectorのバージョン0.44.0以降で自動的に設定されます。0.44.0よりも低いバージョンのCollectorを使用している場合は、設定を手動で編集しなければならない場合があります。

AlwaysOn Profilingが有効になっていることを確認する 🔗

Depending on the programming language, you can activate AlwaysOn Profiling by setting a system property, a function argument, or an environment variable. System properties and function arguments always take precedence. If the profiler is not activated, Splunk Observability Cloud can’t receive profiling data.

この問題を解決するには、プロファイラーが有効になっていることを確認してください。AlwaysOn Profilingの有効化 を参照してください。

Helmチャートの設定を確認する 🔗

Kubernetes環境でCollectorをデプロイした場合は、splunkObservability.profilingEnabled=true が存在していることを確認してください。詳細は Helmチャートのデプロイメント を参照してください。

プロファイリングデータのエクスポートエラー、「エラー:14 UNAVAILABLE:接続が確立されていません」 🔗

以下の設定を確認します:

  1. プロファイリングのエクスポートエンドポイントが、OTELコレクターが実行されているホストとポートに正しく設定されていること。

    • SPLUNK_PROFILER_LOGS_ENDPOINT 環境変数または splunk.profiler.logs-endpoint システムプロパティが設定されている場合、この値が使用されます。

    • そうでない場合、OTEL_EXPORTER_OTLP_ENDPOINT 環境変数または otel.exporter.otlp.endpoint システムプロパティが設定されていれば、この値が使用されます。

    • 最後に、どちらも設定されていない場合は、デフォルト値の http://localhost:4317 になります。

  2. OTelコレクターが動作しており、ポートが開いていて、プロファイルされたアプリケーションが動作しているホストからアクセ ス可能であること。

  3. OTLP/gRPCのレシーバーが、OTelコレクターの設定内で有効になっていること。

  4. プロファイリングパイプラインが、OTelコレクターの設定内で有効になっていること。

スパンに使用可能なコールスタックがない 🔗

スパンの期間がコールスタックをキャプチャするためのスナップショット間隔より 短い場合、スパンにコールスタックが含まれないことがあります。例えば、Javaインストルメンテーションのデフォルトのスナップショット間隔は10秒であるため、10秒より短いスパンにはコールスタックが含まれない可能性があります。より短い間隔を設定するには、SPLUNK_PROFILER_CALL_STACK_INTERVAL 環境変数を 10000 ミリ秒より小さい値に設定します。

コールスタックが表示されないもう一つの原因は、HTTPリクエストがasync/awaitパターンに従っている場合です。スナップショットが記録されたときに、処理スレッドが他のトレースからのスパンのスコープで実行されていた場合です。

AlwaysOn Profiling is not accessible in Splunk Observability Cloud 🔗

If you’re sending profiling data to Splunk Observability Cloud but can’t see AlwaysOn Profiling in Splunk APM, your organization might be lacking the profiler entitlement.

AlwaysOn Profilingは、ホストベースのすべてのサブスクリプションで有効になっています。TAPMベースのサブスクリプションの場合、契約によってはAlwaysOn Profilingが非アクティブになっていることがあります。

この問題を解決するには、Splunkサポートに連絡して、AlwaysOn Profiling機能の有効化を依頼してください。

インストルメンテーション固有のトラブルシューティング 🔗

プロファイラーの問題の中には、APMインストルメンテーション固有のものもあります。インストルメンテーション固有の問題のトラブルシューティングについては、以下の説明を参照してください:

特定のホストのプロファイリングログデータを無効にする 🔗

特定のホストまたはコンテナのAlwaysOn Profilingデータが不要な場合は、Splunk Observability Cloud に不要なプロファイリングログが表示される を参照してください。

このページは 2024年05月28日 に最終更新されました。