• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

Windows での .NET エージェントのデバッグ

問題

New Relic の Windows 用 .NET エージェントをインストールした後、次のような問題が 1 つ以上発生します。

  • データが表示されない
  • データの欠落に気付く
  • ログが表示されない

解決

確認して理解する重要事項:

ステップ1:アプリケーションのエージェントログの確認

ログを確認する前の重要なヒント:

  • MSI Windows インストーラーを使用する場合、デフォルトは%ALLUSERSPROFILE%\New Relic\.NET Agent\Logsです。
  • NewRelic.Agent NuGet パッケージを使用してエージェントをインストールした場合、システム上でエージェントが抽出されたディレクトリにlogsフォルダがあります。

エージェント ログを確認するには:

  1. 現在のデータを見ていることを確認してください。生成するログがシステムの現在の状態を確実に反映するように、logs ディレクトリ内の既存のファイルを削除または移動します。
  2. アプリケーションを再起動します。アプリケーションが IIS でホストされている場合は、管理コマンド ライン プロンプトでコマンド ライン IISRESET を実行します。
  3. New Relic アカウントで期待されるトラフィックを生成する方法で、アプリケーションを少なくとも数分間実行します。
  4. アプリケーションが実行されているプロセス ID (PID) を書き留めて、そのプロセスのログが作成されているかどうかを確認できるようにします。PID は、Windows タスク マネージャーまたは Process Explorer を使用して見つけることができます。
  5. エージェント ログ ディレクトリに戻り、アプリケーションのプロセス ID を含む名前のログ ファイルを探します (例: NewRelic.Profiler.[PID].log )。
  6. ログ ディレクトリにprofiler logファイルがある場合は、対応するエージェント ログがあるかどうかも確認してください。エージェント ログにはプレフィックスnewrelic_agentが含まれています。ホストで複数の .NET アプリケーションを実行している場合は、これらのアプリケーションが複数存在する可能性があります。1 つ以上表示された場合は、監視しようとしているアプリケーションに対応するものを特定する必要があります。
  7. エージェント ログで文字列(pid [your PID])を検索します (例: (pid 1573) 。ログ ファイルにその文字列が見つかった場合は、それがアプリケーションに関連付けられたエージェント ログであることがわかります。
  8. エージェントが New Relic にデータを送信できない原因となる可能性のあるネットワークまたはその他のエラーを探します。

手順 2: .NET エージェント プロファイラーがアプリケーションのプロセスに読み込まれているかどうかを確認する

プロファイラーがロードされているかどうかを確認するには:

  1. Microsoft Process Explorerをサーバーにダウンロードして展開します。

  2. ご使用の環境 (32 ビットと 64 ビット) に適したバージョンの Process Explorer を管理者として起動します ([管理者として実行] を右クリック)。

  3. Process Explorer のメイン ウィンドウで、監視しようとしているプロセスを見つけ、PID 列の番号を書き留めます。IIS がホストする Web アプリケーションを監視しようとしている場合、プロセス名はw3wp.exeになります。

  4. Process Explorer のメニュー バーで、[表示] > [下部ペインを表示] を選択し、次に[表示] > [下部ペイン ビュー] > [DLLs] を選択します。

  5. 上部ペインでアプリケーション プロセスを強調表示し、下部ペインで次の DLL を確認します。

    • NewRelic.Profiler.dll - この DLL は、エージェントがアプリケーションを監視するために必要です。存在しない場合は、アプリケーションを実行しているユーザーに、エージェントがインストールされたフォルダーへの読み取りアクセス許可があることを確認してください。

      重要

      • .NET Framework エージェントでは、これはNEWRELIC_INSTALL_PATH環境変数と同じである必要があります。
      • .NET Core エージェントでは、これはCORECLR_NEWRELIC_HOME環境変数と同じである必要があります。
    • mscorlib.dll: .NET Framework エージェントのみ。この DLL の存在は、エージェントがアプリを .NET Framework アプリケーションとして識別する方法です。存在しない場合、エージェントはアプリを完全に無視します。アプリにこの DLL が含まれていない場合は、アプリがエージェントの互換性要件を満たしていることを再確認してください。

重要

コードアクセスセキュリティの使用は、完全信頼が有効になっている場合にのみ.NETエージェントと互換性があります。エージェントには、より制限された信頼レベルとの互換性はありません。

NewRelic.Profiler.dllが表示されない場合は、次の手順に進みます。結果が得られた場合は、ステップ 4 (アクセス許可) までスキップします。

ステップ 3: 必要な環境変数を確認する

必要な環境変数を確認するには: Process Explorer でプロセスを右クリックし、[プロパティ] を選択します。ポップアップするウィンドウの上部に一連のタブが表示されます。[環境] タブを選択します。

正しい変数が設定されていて、監視しようとしているアプリケーションがそれらにアクセスできる場合、インストールしたエージェントが .NET Framework か .NET Core かに応じて、特定の環境変数のセットが表示されます。

ステップ4:パーミッションの確認

以下のパーミッションタスクを確認してください。

  • アプリケーション プロセスを実行しているユーザーが、システム上で .NET エージェントが抽出されたディレクトリ ( NEWRELIC_INSTALL_PATHまたはCORECLR_NEWRELIC_HOME ) とそのすべてのサブディレクトリに対する読み取り/書き込み/実行権限を持っていることを確認してください。
  • 変更があった場合は、アプリを再起動して、 ステップ1 に戻ってください。

上記の手順で問題が解決しない場合は、サポートに連絡するか、エクスプローラー ハブ フォーラムでサポートを依頼することをお勧めします。

Copyright © 2023 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.