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

注意

The SignalFx Instrumentation for .NET reached End of Support on February 21, 2025. The library has been archived and is no longer maintained.

新規に .NET エコシステムをインストルメンテーションするお客様は、Splunk Distribution of OpenTelemetry .NET をご利用ください。既存のお客様は、同様の機能を提供する Splunk Distribution of OpenTelemetry .NET への移行をご検討ください。移行方法については、SignalFx .NET Instrumentationからの移行 を参照してください。

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

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

一般的なトラブルシューティング 🔗

以下の手順に従って、一般的なインストルメンテーションの問題をトラブルシューティングしてください:

  1. ニーズに合わせてすべての設定を行ったか確認してください。SignalFx Instrumentation for .NETの設定 を参照してください。

  2. プロセス・エクスプローラーなどのツールを使って、どの環境変数が自分のプロセスに適用されるかを確認します。Linuxでは、cat /proc/<pid>/environ を実行します。<pid> はプロセスIDです。

  3. 以下のコマンドを使用して、すべての環境変数が設定されていることを確認します:

    # Run a tool like Process Explorer or execute the following:
    
    [System.Diagnostics.Process]::GetProcessById(<pid>).StartInfo.EnvironmentVariables
    

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

SignalFx Instrumentation for .NETは、起動時に INF のログ・メッセージを使用して設定を記録します。

デバッグロギングを有効にして、問題についての詳細な情報を得ることができます:

  1. インストルメンテーションされたアプリケーションを起動する前に、環境変数 SIGNALFX_TRACE_DEBUGtrue に設定します。

  2. アプリケーションまたはサービスを実行し、アクティビティを生成します。

  3. デバッグログを収集します。デフォルトでは、ログファイルは以下の場所にあります:

    • Windows: %ProgramData%\SignalFx .NET Tracing\logs\

    • Linux: /var/log/signalfx/dotnet/.存在しない場合は、/opt/signalfx/createLogPath.sh を実行してください。

デフォルトの場所は、SIGNALFX_TRACE_LOG_DIRECTORY 環境変数を更新することで変更できます。詳細と設定については 診断ロギングの設定 を参照してください。

注釈

デバッグロギングを有効にしてアプリケーションを再起動しても、以前の場所にログが見つからない場合は、他のAPMエージェントが実行されていないか、ホストにインストールされていないかを確認してください。複数のAPMエージェントが、SignalFx Instrumentation for .NET によるアプリケーションのインストルメンテーションを妨げている可能性があります。

注意

必要なときだけデバッグロギングを有効にします。デバッグモードはより多くのリソースを必要とします。

Splunk Observability Cloud にトレースが表示されない 🔗

インストルメンテーションされたアプリケーションまたはサービスからのトレースが Splunk Observability Cloud で利用できない場合は、OpenTelemetry Collector の設定を確認してください:

  • Splunk Distribution of OpenTelemetry Collectorが実行されていることを確認します。

  • Make sure that a zipkin receiver and an otlp exporter are configured.

  • access_tokenendpoint フィールドが設定されていることを確認します。

  • Check that the traces pipeline is configured to use the zipkin receiver and otlp exporter.

Splunk Observability Cloud にメトリクスが表示されない 🔗

インストルメンテーションされたアプリケーションまたはサービスからのメトリクスが Splunk Observability Cloud で利用できない場合は、以下の条件が真であることを確認してください:

  • Splunk Distribution of OpenTelemetry Collectorが実行されています。

  • signalfx レシーバーと signalfx エクスポーターが構成されています。

  • access_tokenrealm フィールドを設定します。

  • メトリクス・パイプラインは、 signalfx レシーバーと signalfx エクスポーターを使用するように構成されています。

Linux上で.NETインストルメンテーションが動作しない 🔗

互換性のないパッケージを使用すると、Linuxへのインストルメンテーションのインストールに失敗することがあります。

お使いのLinuxディストリビューションと互換性のあるインストール・パッケージを使用していることを確認してください。お使いのディストリビューションまたはパッケージ・マネージャーを調べるには、以下のコマンドを実行してください:

lsb_release -a
cat /etc/*release
cat /etc/issue*
cat /proc/version

高いCPU使用率 🔗

デフォルトでは、SignalFx Instrumentation for .NET は、ホスト上で実行されているすべての.NETプロセスを自動的にインストルメンテーションします。システム・スコープまたはユーザー・スコープでインストルメンテーションを有効にしている場合、CPU使用率が大幅に増加する可能性があります。インストルメンテーションの環境変数が常にプロセス・スコープまたはターミナル・スコープに設定されていることを確認してください。

グローバル・インストルメンテーションをプロセス・セットに制限するには、SIGNALFX_PROFILER_PROCESSESSIGNALFX_PROFILER_EXCLUDE_PROCESSES 環境変数を使用します。この環境変数は、インストルメンテーションにプロセスを含めたり除外したりします。詳細は SignalFx Instrumentation for .NETの設定 を参照してください。

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

AlwaysOn Profilingに関する一般的な問題と修正については、以下を参照してください:

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

.NET インストルメンテーションでは、info ログレベルで始まる AlwaysOnProfiler::MemoryProfiling という文字列がログに記録されます。AlwaysOn Profilingが有効になっているかどうかを確認するには、次のような文字列をログから検索します:

10/12/22 12:10:31.962 PM [12096|22036] [info] AlwaysOnProfiler::MemoryProfiling started.

文字列が表示されない場合は、SIGNALFX_PROFILER_ENABLED 環境変数を true に設定して、プロファイラが有効になっていることを確認してください。AlwaysOn Profilingの .NET 設定 を参照してください。

サポートされていないランタイム・バージョンでCPUプロファイラまたはメモリ・プロファイラを有効にした場合、以下のようなエントリーがログに表示されます:

2022-10-12 12:37:18.640 +02:00 [WRN] Cpu profiling activated but not supported.
2022-10-12 12:37:18.640 +02:00 [WRN] Memory profiling activated but not supported.

AlwaysOn Profilingの設定を確認する 🔗

AlwaysOn Profiling が 意図したとおりに動作しない場合は、構成設定を確認してください。.NET インストルメンテーションは、起動時に INF メッセージを使用して AlwaysOn Profiling の設定をログに記録します。TRACER CONFIGURATION という文字列を検索してください。

サポートされていない.NETバージョン 🔗

AlwaysOn Profilingを使用するには、.NET のバージョンを .NET Core 3.1 または .NET 5.0 以降にアップグレードします。メモリプロファイリングには、.NET 5.0 以降が必要です。ランタイムで ICorProfilerInfo10 を使用できる必要があるためです。

どの.NET Frameworkバージョンもサポートしていません。

AlwaysOn Profiling のデータとログが Splunk Observability Cloud に表示されない 🔗

Collector 構成の問題により、AlwaysOn Profilingデータとログが Splunk Observability Cloud に表示されない場合があります。

この問題を解決するには、次のようにしてください:

  1. SignalFx Instrumentation for .NET、特に SIGNALFX_PROFILER_LOGS_ENDPOINT の設定を確認してください。

  2. Splunk Distribution of OpenTelemetry Collectorが期待されるエンドポイントで実行されていること、アプリケーションホストまたはコンテナがホスト名を解決して OTLP ポートに接続できることを確認します。

  3. Splunk Distribution of OpenTelemetry Collectorを実行していることと、バージョンが 0.34 以上であることを確認してください。メモリプロファイリングに必要なバージョンは 0.44 です。他のコレクタディストリビューションでは、プロファイリングデータを含むログデータをルーティングできない場合があります。

  4. カスタム設定は、コレクタにプロファイリングデータを処理させる設定をオーバーライドする場合があります。正しいトークンとエンドポイントフィールドを持つ otlp レシーバーと splunk_hec エクスポーターを設定してください。profiling パイプラインは、設定した OTLP レシーバーと Splunk HEC エクスポーターを使用する必要があります。詳細は Splunk HEC エクスポーター を参照してください。

次のスニペットには、profiling パイプラインのサンプルが含まれています:

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 OpenTelemetry Collector にデータを送信できない場合、AlwaysOn Profiling はエスケープハッチを起動し、バッファが空になるまで、プロファイリングデータを含むすべてのログを削除します。

エスケープハッチが作動すると、以下のメッセージが記録されます:

Skipping a thread sample period, buffers are full.

また、** THIS WILL RESULT IN LOSS OF PROFILING DATA **. のメッセージを探すこともできます。

スレッドサンプラーは、いずれかのバッファが空になるとアクティビティを再開します。

フルバッファによるプロファイリングデータの損失を回避するには、プロセスとSplunk Distribution of OpenTelemetry Collector間の設定と通信レイヤーを確認してください。

SignalFx Instrumentation for .NETをアンインストールします。 🔗

SignalFx Instrumentation for .NETを削除するには、各オペレーティング・システムの手順に従ってください。

Windows 🔗

以下の手順に従って、SignalFx Instrumentation for .NETを削除してください:

  1. インストルメンテーションされたサービスまたはアプリケーションをすべて停止します。

  2. インストルメンテーション用に設定した可能性のある環境変数をすべて削除します。

  3. Programs and Features コントロールパネルから :strong:` SignalFx .NET Tracing ` をアンインストールします。

Linux 🔗

以下の手順に従って、SignalFx Instrumentation for .NETを削除してください:

  1. インストルメンテーションされたサービスまたはアプリケーションをすべて停止します。

  2. インストルメンテーション用に設定した可能性のある環境変数をすべて削除します。

  3. パッケージ・マネージャーを使って signalfx-dotnet-tracing を削除するか、tar ファイルを使ってインストルメンテーションをインストールした場合は /opt/signalfx からファイルを削除してください。

Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。

Splunk Observability Cloudをご利用のお客様

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

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

  • Join the Splunk #observability user group Slack channel to communicate with customers, partners, and Splunk employees worldwide. To join, see Chat groups in the Get Started with Splunk Community manual.

このページは 2025年02月21日 に最終更新されました。