問題New Relic の Azure 用 .NET エージェントをインストールした 後、次の 1 つ以上の問題が発生します。
データは表示されません。 アプリケーション名は New Relic に表示されますが、データが欠落しています。 解決確認して理解する重要事項:
インストールと実行の手順に従っている ことを確認してください。.NET エージェントが正常に動作するために、Application Insightsを無効にする 必要があります 。 .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) をメモしておくと、そのプロセスのログが作成されているかどうかを確認できます。Kudu の組み込みの Process Explorer を使用して、PID を見つけることができます。 エージェント ログ ディレクトリに戻り、 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 アプリケーションを監視しようとしている場合、プロセス名は、Kudu プロセス自体を指す SCM ラベルのない w3wp.exe
になる可能性があります。エージェントは、SCM (Kudu) プロセスをインストルメント化しないでください。アプリケーションのプロセスを見つけたら、 Properties
ボタンをクリックします。 Modules [モジュール] タブをクリックし、 NewRelic.Profiler.dll
を探します。この DLL は、エージェントがアプリケーションを監視するために必要です。 見つからない場合は、正しい環境変数が存在すること (詳細については 手順 3 を参照) を確認し、 Microsoft Application Insights が無効になっていることを 確認してください。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 ポータル経由でアプリケーションを再起動してください。次に、 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
COR_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
ファイルの ログ ノードにディレクトリ属性が含まれていることを確認してください。NuGet によってプロジェクトに追加された newrelic.config
ファイルを Visual Studio で編集できない場合は、アプリケーションでこのファイルのローカル コピーを作成する必要があります。
< log directory = " /home/LogFiles/NewRelic " level = " info " > </ log >
このディレクトリ属性を構成ファイルに追加していない場合は、アプリケーション設定を使用できます。 NEWRELIC_LOG_DIRECTORY=/home/LogFiles/NewRelic
これらの環境変数とその機能の詳細については、 .NET エージェントの環境変数を理解する 方法を参照してください。
アプリケーション名が New Relic に表示されているのに、トランザクションが表示されていない場合は、トラフィックがアプリにヒットしていないか、エージェントが自動的に計測できる既知のフレームワークに遭遇していない可能性があります。
.NET Framework によって自動的にインストルメント化されたフレームワークについては、 互換性に関するページ を参照してください。 .NET Core が自動的にインストルメント化するフレームワークについては、 互換性に関するページ を参照してください。 アプリケーションでこれらの互換性のあるアプリ フレームワークのいずれも使用しない場合は、アプリケーションのどの部分が監視に重要で、何がトランザクションのスコープを構成するかをエージェントに伝えるために 、カスタム インストルメンテーション を実装する必要がある場合があります。 上記の手順で問題を解決できなかった場合は、サポートに連絡するか、 サポート フォーラム で質問することをお勧めします。