問題 New Relic の Azure 用 .NET エージェントをインストールした 後、次の 1 つ以上の問題が発生します。
データは表示されません。 アプリケーション名は New Relic に表示されますが、データが欠落しています。 解決 確認して理解する重要事項:
Web アプリの再起動を含め、インストールと実行の手順が実行されている ことを確認します。 .NET エージェントが正しく動作するには、アプリケーション サイトを無効にしてください ( must )。 アプリmust は、.NET エージェントを起動するためのトラフィックを取得しています。 .NET エージェント バージョン 8.22.181.0 以降、エージェントに干渉することなく、Azure の Always On
設定を有効にすることができます。アプリケーションが .NET Framework 4.0 以下をターゲットにしている場合、 Always On
はエージェントに干渉しますが、 ここでの 回避策は引き続き適用できます。 ステップ1:アプリケーションのエージェントログの確認 重要 Kudu を使用してエージェント ログを確認できます。エージェント ログは Web サイトと並行して実行され、プロセスの調査、ファイル システムの確認、ファイルとディレクトリのダウンロードに使用できるさまざまなツールを提供します。
Web サイトの URL が example.azurewebsites.net
の場合、Kudu サイトは example.scm.azurewebsites.net
です。サイトのデプロイ資格情報を使用して、Kudu サイトにログインします。
ログを確認する際の重要なヒント:
New Relic Azure Site Extension を使用する場合、Azure Web アプリが D:
ファイル システム ルートを使用すると仮定すると、ログの場所はデフォルトで D:\home\LogFiles\NewRelic
になります。Azure Web で C:
ルートを使用している場合は、正しいドライブ文字を使用する必要があります。 NewRelic.Agent
または NewRelic.Azure.WebSites
NuGet パッケージを使用してエージェントをインストールした場合、プロジェクト内でエージェントが抽出されたディレクトリに logs
フォルダがあります。多くの場合、これは wwwroot
フォルダー内の newrelic
フォルダーです。エージェント ログを確認するには:
現在のデータを見ていることを確認してください。生成するログがシステムの現在の状態を確実に反映するように、logs ディレクトリ内の既存のファイルを削除または移動します。 アプリケーションを再起動します。 New Relic アカウントで期待されるトラフィックを生成する方法で、アプリケーションを少なくとも数分間実行します。 アプリケーションが実行されているプロセス ID (PID) をメモしておくと、そのプロセスに対してログが作成されているかどうかを確認できます。 PID は、Kudu の組み込みProcess Explorer を使用して見つけることができます。 エージェント ログ ディレクトリに戻り、 NewRelic.Profiler.[PID].log
など、アプリケーションのプロセス ID を含む名前のログ ファイルを探します。 プロファイラーのログ ファイルがログ ディレクトリにある場合は、対応するエージェント ログがあるかどうかも確認してください。エージェント ログにはプレフィックス newrelic_agent
が含まれています。ホストで複数の .NET アプリケーションを実行している場合は、これらのアプリケーションが複数存在する可能性があります。1 つ以上表示された場合は、監視しようとしているアプリケーションに対応するものを特定する必要があります。 エージェント ログで文字列(pid [your PID])
を検索します (例: (pid 1573)
。ログ ファイルにその文字列が見つかった場合は、それがアプリケーションに関連付けられたエージェント ログであることがわかります。 エージェントが New Relic にデータを送信できない原因となる可能性のあるネットワークまたはその他のエラーを探します。 手順 2: .NET エージェント プロファイラーがアプリケーションのプロセスに読み込まれているかどうかを確認する プロファイラーがロードされているかどうかを確認するには:
Kudu のビルトイン Process Explorer for Windows インストールを使用します。Linux インストールの場合は、 この記事 のコマンドを参照してください。 Process Explorer で、監視しようとしているプロセスを見つけて、PID 列の番号を書き留めます。 Web アプリケーションを監視しようとしている場合、プロセス名は SCM ラベルのないw3wp.exe
になる可能性があり、これは Kudu プロセス自体を参照します。 エージェントは SCM (Kudu) プロセスを監視すべきではありません。アプリケーションのプロセスを見つけたら、 Properties
ボタンをクリックします。 Modules タブをクリックし、 NewRelic.Profiler.dll
を探します。この DLL は、エージェントがアプリケーションを監視するために必要です。 見つからない場合は、正しい環境変数が存在すること (手順 3 で詳しく説明します) と、 Microsoft アプリケーション インサイトが無効になっていること を確認してください。NewRelic.Profiler.dll
が表示されない場合は、次の手順に進みます。この DLL が表示され、アプリがトラフィックを受信している場合は、 手順 1 で説明したログが表示されているはずです。
ステップ 3: 必要な環境変数を確認する 必要な環境変数を確認するには:
Process Explorer でアプリケーションのプロセスを見つけて、 Properties
ボタンをクリックします。Environment タブを選択します。正しい変数が設定されていて、監視しようとしているアプリケーションがそれらにアクセスできる場合、インストールしたエージェントが .NET Framework か .NET Core かに応じて、特定の環境変数のセットが表示されます。
重要 これらの例はすべて、AzureWebアプリがD:
ファイルシステムルートを使用していることを前提としています。 Azure WebでC:
ルートを使用する場合は、これらのパスを構成するときに正しいドライブ文字を使用する必要があります。
.NET Framework: New Relic Azure Site Extension 経由でインストールするときに環境変数を確認する Kudu のProcess Explorer のEnvironment タブに表示される環境変数は次のようになります。
COR_PROFILER = {71DA0A04-7777-4EC6-9643-7D28B46A8A41}
COR_PROFILER_PATH = D:\home\NewRelicAgent\Framework\NewRelic.Profiler.dll
COR_PROFILER_PATH_32 = D:\home\NewRelicAgent\Framework\x86\NewRelic.Profiler.dll
COR_PROFILER_PATH_64 = D:\home\NewRelicAgent\Framework\NewRelic.Profiler.dll
NEWRELIC_HOME = D:\home\NewRelicAgent\Framework
NEW_RELIC_LICENSE_KEY = YOUR_LICENSE_KEY
NEW_RELIC_APP_NAME = YOUR_APP_NAME
環境変数が上記の内容と一致しない場合は、New Relic Azure サイト拡張機能を再インストールしてみてください。
重要 .NET Framework の場合、監視するアプリケーションが IIS でホストされていない場合 (自己ホスト型 Windows サービスなど)、 インストール ドキュメント に記載されているように、そのアプリケーションのエージェントを明示的に有効にする必要があります。
環境変数に変更を加えた場合は、Azure ポータル経由でアプリケーションを再起動してください。次に、変更が正常に行われたことを確認するために、Process Explorer で新しいプロセス ID を調べます。
.NET Framework: NuGet 経由でインストールするときに環境変数を確認する NuGet パッケージの場合、環境変数をアプリケーション設定として追加する必要があります 。
Kudu のProcess Explorer のEnvironment タブに表示される環境変数は次のようになります。
COR_PROFILER = {71DA0A04-7777-4EC6-9643-7D28B46A8A41}
COR_PROFILER_PATH = D:\Home\site\wwwroot\newrelic\NewRelic.Profiler.dll
NEWRELIC_HOME = D:\Home\site\wwwroot\newrelic
NEW_RELIC_LICENSE_KEY = YOUR_LICENSE_KEY
NEW_RELIC_APP_NAME = YOUR_APP_NAME
環境変数が上記の内容と一致しない場合は、New Relic Azure サイト拡張機能の再インストールを試すことができます。
重要 .NET フレームワークの場合、監視するアプリケーションが IIS でホストされていない場合 (自己ホスト型 Windows サービスなど)、 インストール ドキュメント に記載されているように、そのアプリケーションのエージェントを明示的に有効にする必要があります。
環境変数に変更を加えた場合は、Azure Portal からアプリケーションを再起動してください。 次に、変更が成功したことを確認するために、 Process Explorer の新しいプロセス PID を検査します。
.NET Core (Windows): New Relic Azure Site Extension の使用時に環境変数を確認します Kudu のProcess Explorer のEnvironment タブに表示される環境変数は次のようになります。
CORECLR_ENABLE_PROFILING = 1
CORECLR_PROFILER = {36032161-FFC0-4B61-B559-F6C5D41BAE5A}
CORECLR_NEWRELIC_HOME = D:\home\NewRelicAgent\Core
CORECLR_PROFILER_PATH_32 = D:\home\NewRelicAgent\Core\x86\NewRelic.Profiler.dll
CORECLR_PROFILER_PATH_64 = D:\home\NewRelicAgent\Core\NewRelic.Profiler.dll
NEW_RELIC_LICENSE_KEY = YOUR_LICENSE_KEY
NEW_RELIC_APP_NAME = YOUR_APP_NAME
.NET Core (Windows): NuGet パッケージの使用時に環境変数を確認する NuGet パッケージの場合、環境変数をアプリケーション設定として追加する必要があります 。 Kudu のProcess Explorer のEnvironment タブに表示される環境変数は次のようになります。
CORECLR_ENABLE_PROFILING = 1
CORECLR_PROFILER = {36032161-FFC0-4B61-B559-F6C5D41BAE5A}
CORECLR_PROFILER_PATH_32 = D:\Home\site\wwwroot\newrelic\x86\NewRelic.Profiler.dll
CORECLR_PROFILER_PATH_64 = D:\Home\site\wwwroot\newrelic\NewRelic.Profiler.dll
CORECLR_NEWRELIC_HOME = D:\Home\site\wwwroot\newrelic
NEW_RELIC_LICENSE_KEY = YOUR_LICENSE_KEY
NEW_RELIC_APP_NAME = YOUR_APP_NAME
newrelic.config
ファイルのログ ノードにディレクトリ属性が含まれていることを確認してください。NuGet によってプロジェクトに追加された newrelic.config
ファイルを Visual Studio で編集できない場合は、アプリケーションでこのファイルのローカル コピーを作成する必要があります。
< log directory = " D:\Home\LogFiles\NewRelic " level = " info " > </ log >
このディレクトリ属性を構成ファイルに追加していない場合は、アプリケーション設定を使用できます。 NEWRELIC_LOG_DIRECTORY=D:\Home\LogFiles\NewRelic
.NET Core (Linux): NuGet パッケージの使用時に環境変数を確認する NuGet パッケージの場合、環境変数をアプリケーション設定として追加する必要があります 。
Kudu のProcess Explorer のEnvironment タブに表示される環境変数は次のようになります。
CORECLR_ENABLE_PROFILING = 1
CORECLR_PROFILER = {36032161-FFC0-4B61-B559-F6C5D41BAE5A}
CORECLR_PROFILER_PATH = /home/site/wwwroot/newrelic/libNewRelicProfiler.so
CORECLR_NEWRELIC_HOME = /home/site/wwwroot/newrelic
NEW_RELIC_LICENSE_KEY = YOUR_LICENSE_KEY
NEW_RELIC_APP_NAME = YOUR_APP_NAME
newrelic.config
ファイルのlog ノードにディレクトリ属性が含まれていることを確認してください。 Visual Studio で NuGet によってプロジェクトに追加されたnewrelic.config
ファイルを編集できない場合は、アプリケーション内にこのファイルのローカル コピーを作成する必要があります。
< log directory = " /home/LogFiles/NewRelic " level = " info " > </ log >
このディレクトリ属性を構成ファイルに追加していない場合は、アプリケーション設定を使用できます。 NEWRELIC_LOG_DIRECTORY=/home/LogFiles/NewRelic
これらの環境変数とその機能の詳細については、 .NET エージェントの環境変数を理解する 方法を参照してください。
アプリケーション名が New Relic に表示されているのに、トランザクションが表示されていない場合は、トラフィックがアプリにヒットしていないか、エージェントが自動的に計測できる既知のフレームワークに遭遇していない可能性があります。
.NET Core および .NET フレームワーク用に自動的にインストゥルメントされたフレームワークについては、互換性ページ を参照してください。 アプリケーションでこれらの互換性のあるアプリ フレームワークのいずれも使用しない場合は、アプリケーションのどの部分が監視に重要で、何がトランザクションのスコープを構成するかをエージェントに伝えるために 、カスタム インストルメンテーション を実装する必要がある場合があります。 上記の手順で問題を解決できなかった場合は、サポートに連絡するか、 サポート フォーラム で質問することをお勧めします。