注意
SignalFx Instrumentation for .NETは、2024年2月21日をもって非推奨となり、2025年2月21日にサポート終了となります。それまでは、重要なセキュリティ修正とバグ修正のみが提供されます。それ以降は、ライブラリはアーカイブされ、保守されなくなります。
新規に .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 にデータが表示されない場合は、以下のトラブルシューティング手順に従ってください。
一般的なトラブルシューティング 🔗
以下の手順に従って、一般的なインストルメンテーションの問題をトラブルシューティングしてください:
ニーズに合わせてすべての設定を行ったか確認してください。SignalFx Instrumentation for .NETの設定 を参照してください。
プロセス・エクスプローラーなどのツールを使って、どの環境変数が自分のプロセスに適用されるかを確認します。Linuxでは、
cat /proc/<pid>/environ
を実行します。<pid>
はプロセスIDです。以下のコマンドを使用して、すべての環境変数が設定されていることを確認します:
# Run a tool like Process Explorer or execute the following: [System.Diagnostics.Process]::GetProcessById(<pid>).StartInfo.EnvironmentVariables
cat /proc/<pid>/environ # where <pid> is the process ID
デバッグロギングを有効にする 🔗
SignalFx Instrumentation for .NETは、起動時に INF
のログ・メッセージを使用して設定を記録します。
デバッグロギングを有効にして、問題についての詳細な情報を得ることができます:
インストルメンテーションされたアプリケーションを起動する前に、環境変数
SIGNALFX_TRACE_DEBUG
をtrue
に設定します。アプリケーションまたはサービスを実行し、アクティビティを生成します。
デバッグログを収集します。デフォルトでは、ログファイルは以下の場所にあります:
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が実行されていることを確認します。
zipkin
レシーバーとsapm
エクスポーターが設定されていることを確認します。access_token
、endpoint
フィールドが設定されていることを確認します。トレースパイプラインが
zipkin
レシーバーとsapm
エクスポーターを使用するように設定されていることを確認します。
Splunk Observability Cloud にメトリクスが表示されない 🔗
インストルメンテーションされたアプリケーションまたはサービスからのメトリクスが Splunk Observability Cloud で利用できない場合は、以下の条件が真であることを確認してください:
Splunk Distribution of OpenTelemetry Collectorが実行されています。
A
signalfx
receiver and asignalfx
exporter are configured.access_token
とrealm
フィールドを設定します。メトリクス・パイプラインは、
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_PROCESSES
と SIGNALFX_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 に表示されない場合があります。
この問題を解決するには、次のようにしてください:
SignalFx Instrumentation for .NET、特に
SIGNALFX_PROFILER_LOGS_ENDPOINT
の設定を確認してください。Splunk Distribution of OpenTelemetry Collectorが期待されるエンドポイントで実行されていること、アプリケーションホストまたはコンテナがホスト名を解決して OTLP ポートに接続できることを確認します。
Splunk Distribution of OpenTelemetry Collectorを実行していることと、バージョンが 0.34 以上であることを確認してください。メモリプロファイリングに必要なバージョンは 0.44 です。他のコレクタディストリビューションでは、プロファイリングデータを含むログデータをルーティングできない場合があります。
カスタム設定は、コレクタにプロファイリングデータを処理させる設定をオーバーライドする場合があります。正しいトークンとエンドポイントフィールドを持つ
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を削除してください:
インストルメンテーションされたサービスまたはアプリケーションをすべて停止します。
インストルメンテーション用に設定した可能性のある環境変数をすべて削除します。
Programs and Features コントロールパネルから SignalFx .NET Tracing をアンインストールします。
Linux 🔗
以下の手順に従って、SignalFx Instrumentation for .NETを削除してください:
インストルメンテーションされたサービスまたはアプリケーションをすべて停止します。
インストルメンテーション用に設定した可能性のある環境変数をすべて削除します。
パッケージ・マネージャーを使って
signalfx-dotnet-tracing
を削除するか、tar ファイルを使ってインストルメンテーションをインストールした場合は/opt/signalfx
からファイルを削除してください。
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 マニュアルの チャットグループ を参照してください。