問題
New Relic の Windows 用 .NET エージェントをインストールした後、次のような問題が 1 つ以上発生します。
- データが表示されない
- データの欠落に気付く
- ログが表示されない
解決
確認して理解する重要事項:
- ホストの管理者権限があることを確認してください。
- インストールと実行の手順に従っていることを確認します
ステップ1:アプリケーションのエージェントログの確認
ログを確認する前の重要なヒント:
- MSI Windows インストーラーを使用する場合、デフォルトは
%ALLUSERSPROFILE%\New Relic\.NET Agent\Logs
です。 NewRelic.Agent
NuGet パッケージを使用してエージェントをインストールした場合、システム上でエージェントが抽出されたディレクトリにlogs
フォルダがあります。
エージェント ログを確認するには:
- 現在のデータを見ていることを確認してください。生成するログがシステムの現在の状態を確実に反映するように、logs ディレクトリ内の既存のファイルを削除または移動します。
- アプリケーションを再起動します。アプリケーションが IIS でホストされている場合は、管理コマンド ライン プロンプトでコマンド ライン IISRESET を実行します。
- New Relic アカウントで期待されるトラフィックを生成する方法で、アプリケーションを少なくとも数分間実行します。
- アプリケーションが実行されているプロセス ID (PID) を書き留めて、そのプロセスのログが作成されているかどうかを確認できるようにします。PID は、Windows タスク マネージャーまたは Process Explorer を使用して見つけることができます。
- エージェント ログ ディレクトリに戻り、アプリケーションのプロセス ID を含む名前のログ ファイルを探します (例:
NewRelic.Profiler.[PID].log
)。 - ログ ディレクトリに
profiler log
ファイルがある場合は、対応するエージェント ログがあるかどうかも確認してください。エージェント ログにはプレフィックスnewrelic_agent
が含まれています。ホストで複数の .NET アプリケーションを実行している場合は、これらのアプリケーションが複数存在する可能性があります。1 つ以上表示された場合は、監視しようとしているアプリケーションに対応するものを特定する必要があります。 - エージェント ログで文字列
(pid [your PID])
を検索します (例:(pid 1573)
。ログ ファイルにその文字列が見つかった場合は、それがアプリケーションに関連付けられたエージェント ログであることがわかります。 - エージェントが New Relic にデータを送信できない原因となる可能性のあるネットワークまたはその他のエラーを探します。
手順 2: .NET エージェント プロファイラーがアプリケーションのプロセスに読み込まれているかどうかを確認する
プロファイラーがロードされているかどうかを確認するには:
Microsoft Process Explorerをサーバーにダウンロードして展開します。
アドミニストレーターとして、環境に適したバージョンの Process Explorer (32 ビットまたは 64 ビット) をリリースします ( Run as Administratorを右クリック)。
Process Explorer のメイン ウィンドウで、監視しようとしているプロセスを見つけ、PID 列の番号を書き留めます。IIS がホストする Web アプリケーションを監視しようとしている場合、プロセス名は
w3wp.exe
になります。Process Explorer メニュー バーで、 View > Show lower pane選択し、次にView > Lower pane view > DLLs選択します。
上部ペインでアプリケーション プロセスを強調表示し、下部ペインで次の DLL を確認します。
NewRelic.Profiler.dll
- この DLL は、エージェントがアプリケーションを監視するために必要です。存在しない場合は、アプリケーションを実行しているユーザーに、エージェントがインストールされたフォルダーへの読み取りアクセス許可があることを確認してください。重要
- .NET Framework agentでは、これは
NEWRELIC_INSTALL_PATH
環境変数と同じである必要があります。 - .NET Core agentでは、これは
CORECLR_NEWRELIC_HOME
環境変数と同じである必要があります。
- .NET Framework agentでは、これは
mscorlib.dll
: .NET Framework agent only.この DLL が存在することで、エージェントはアプリを .NET フレームワーク アプリケーションとして識別します。 存在しない場合、エージェントはアプリを完全に無視します。 アプリにこのDLLが含まれていない場合は、アプリがエージェントの互換性要件を満たしているかどうかを再確認してください。
重要
コードアクセスセキュリティの使用は、完全信頼が有効になっている場合にのみ.NETエージェントと互換性があります。エージェントには、より制限された信頼レベルとの互換性はありません。
NewRelic.Profiler.dll
が表示されない場合は、次の手順に進みます。結果が得られた場合は、ステップ 4 (アクセス許可) までスキップします。
ステップ 3: 必要な環境変数を確認する
必要な環境変数を確認するには、プロセス エクスプローラーでプロセスを右クリックし、 Propertiesを選択します。 ポップアップウィンドウの上部に一連のタブが表示されます。 Environmentタブを選択します。
正しい変数が設定されていて、監視しようとしているアプリケーションがそれらにアクセスできる場合、インストールしたエージェントが .NET Framework か .NET Core かに応じて、特定の環境変数のセットが表示されます。
ステップ4:パーミッションの確認
以下のパーミッションタスクを確認してください。
- アプリケーション プロセスを実行しているユーザーが、システム上で .NET エージェントが抽出されたディレクトリ (
NEWRELIC_INSTALL_PATH
またはCORECLR_NEWRELIC_HOME
) とそのすべてのサブディレクトリに対する読み取り/書き込み/実行権限を持っていることを確認してください。 - 変更があった場合は、アプリを再起動して、 ステップ1 に戻ってください。
上記の手順で問題が解決されなかった場合は、サポートに連絡するか、サポート フォーラム フォーラムで質問することをお勧めします。