ブラウザ監視インストール時のトラブルシューティング

New Relic Browser を利用してブラウザ監視するように設定した後、データが表示されるまで、数分待ってください。数分待っても何も表示されない場合は、以下のトラブルシューティングを参考にしてください。

以下のヒントは、APM 監視対象のアプリ経由で New Relic Browser 用 JavaScript を挿入しているのか、手動で JavaScript のスニペットを追加しているかによって異なることがあります。

APM エージェントを利用してデプロイした場合

New Relic APM を利用するアプリをデプロイしている際に問題が発生した場合は、以下の手順を試してみてください。

アプリを有効にする

アプリの Browser 設定上、New Relic Browser が有効になっていることを確認します

  1. New Relic のメニューバーから、Browser > (選択したアプリ) > Settings を選択します。
  2. 通常の手順に従って、アプリごとにブラウザ設定を有効にします。
  3. ウェブサーバーのキャッシュをフラッシュします。
  4. データが送信されるまで数分待ちます。
  5. それでもデータが表示されない場合は、次の手順を実行してみてください。
New Relic APM エージェントを更新する
新しいエージェントほど、正しくページ読み込みタイミング用のスクリプトを設置します。以下のトラブルシューティングのヒントを実施する前に、お使いのエージェントが最新リリースであることを確認してください。
ヒント: ページ読み込みタイミングが利用可能なエージェントのバージョン要件については、互換性と要件をご覧ください。
JavaScript のスニペットを検証する
メトリックをキャプチャし、New Relic へのデータの送信に必要な2つのスクリプトがページのソースにあるか確認してください。ブラウザでページのソースを表示し、ページ先頭近くに以下のようなスクリプトがあるかチェックしてください。

<script type="text/javascript">
    (window.NREUM||(NREUM={})).loader_config={xpid:"VRUGVVJS";window.NREUM||(NREUM={}),__nr_require=function a(b,c,d){ ...

もしくは、以下のようなスクリプトがあるかチェックしてください。

  <script type="text/javascript">
    window.NREUM||(NREUM={}),__nr_require=function a (b,c,d){ ...

アプリサーバーで使用しているエージェントの言語に応じて、2番目のスクリプト要素を確認します。

  • Java: </body> タグの前 (見つからない場合は、ページに追加する必要があります)
  • .NET: 最初のスクリプトの直前
  • Node.js: 最初のスクリプトの直前
  • PHP: body 要素の最後
  • Python: head 要素内もしくは、body 要素の最後
  • Ruby: 最初のスクリプトの直前

2番目のタグには、以下のように、設定やタイミングデータが含まれています。

  <script type="text/javascript">
    window.NREUM||(NREUM={});NREUM.info={"beacon":"bam.nr-data.net","errorBeacon":"bam.nr-data.net"...

どちらかのスクリプト要素が欠如している場合は、次の手順を試してください。スクリプト要素が存在するにも関わらず、データが数分後に表示されない場合は、support.newrelic.com [英語] [external link] からサポートを得てください。

他の JavaScript エラー監視をチェックする
ページ上に JavaScript エラーが発生している、もしくは、New Relic Browser の JavaScript errors ページに何のデータも表示されていない場合、アプリケーション内で他の JavaScript エラー監視フレームワークが有効になっていないかチェックしてください。それらの JavaScript エラー監視が New Relic Browser を妨害している可能性があります。
自動計測をを設定する

New Relic の自動計測を使っている場合、エージェントが正しい設定であることを確認してください。各エージェントは、構成ファイルの設定で、自動計測の有効/無効することもできます。

注: エージェントの設定ファイルを変更した後はアプリの再起動を行ってください。

手動 API 計測の検証

New Relic エージェント API を明示的に呼び出し、JavaScript を生成し、挿入している場合、API コールが実際に行われていることを確認します。API とその使い方は、エージェント毎に異なります。

アプリを再起動する

エージェントの設定ファイルを変更した後は、以下を行い、アプリを再起動し、変更を反映してください。

  • Java エージェント: アプリサーバーの「work」キャッシュをフラッシュします。これにより、再コンパイルが実行されるようになります。
  • .NET エージェント: flush_dotnet_temp.cmd コマンドを実行し、asp.net キャッシュディレクトが空になっていることを確認してください。これにより、ページ読み込みタイミングの計測を含むASPの再コンパイルが行われるようになります。
エンドユーザーのネットワークアクセスを検証する
アプリケーションが、セキュアなローカルネットワーク内でロードしている場合は、ユーザーがブラウザのデータをレポートする先のネットワークのエンドポイントに到達できることを確認してください。CDN とビーコンも含まれています。

コピー&ペーストによってデプロイした場合

New Relic Browser をコピー/ペーストによってデプロイしようとして問題が発生した場合は、以下のトラブルシューティング手順を参考にしてください。

JavaScript スニペットを検証する
メトリクスをキャプチャし、New Relic に送信を行うスクリプトが正しく配置されているか、ページソースを確認してください。ページソースを表示し、先頭近くに以下のようなスクリプト要素があるか確認します。

  <script type="text/javascript">
    window.NREUM||(NREUM={}),__nr_require=function a (b,c,d){ ...

スクリプト要素が見つからない場合、新しいコードを貼り付けて、展開していることを確認してください。それでもまだ、JavaScript スニペットが見つからない場合は、Browser Settingsページから再びコピーします。コピーして、貼り付けた後は、そのページを提供するアプリを再起動してください。

それでもスクリプトが表示されない場合は、以下を続けてご覧ください。

ページのキャッシュされているバージョンをクリアする

Javascript スニペットをアプリのページに表示するには、コードを追加する前の時点のキャッシュされているページをクリアしてください

  1. CDN キャッシュをチェックする
  2. ウェブサーバーのキャッシュをフラッシュする
JavaScript の配置と完全性をチェックする
できるだけ HEAD に近い場所に JavaScript を挿入します。META タグ(X-UA-Compatible および文字セット)の後にします。コメントの外側に配置してください。以下は一般的な形式の例です。

<!DOCTYPE html>
<html>
<head>
 <meta tags>
 {PLACE NEW RELIC SCRIPT TAG HERE}
 <script and link tags>
</head>
<body>
   ...
</body>
</html>

JavaScript が正しく配置されている場合は、オリジナルのスニペットと比較して、完全に同一であることを確認します。不完全だったり、変更されていたりするスニペットの場合は、正しくレポートが行われないことがあります。

他の JavaScript エラー監視をチェックする
ウェブページに JavaScript エラーがあったり、New Relic Browser のJavaScript errors ページにデータが何も表示されない場合は、他の JavaScript エラー監視のフレームワークがアプリ上で有効にされているかもしれません。確認してください。それらの JavaScript エラー監視が New Relic Browser を妨害している可能性があります。
エンドユーザーのネットワークアクセスを検証する
アプリケーションが、セキュアなローカルネットワーク内にロードされている場合は、ユーザーがブラウザのデータをレポートする先のネットワークのエンドポイントに到達できることを確認してください。CDN とビーコンも含まれています。
Razor フレームワーク: パースのエラーメッセージを確認する
Razor フレームワークを使った .NET アプリにおいてい、コピー/ペーストによってデプロイしている場合は、以下のエラーとなる場合があります。

Parser Error Message: "").pop().split("" is not valid at the start of a code block. Only identifiers, keywords, comments, "(" and "{" are valid.

エラーが New Relic Browser の JavaScript スニペット内に @ 記号があるとエラーが発生します。@ 記号は、Razor のコードブロックの先頭を表します。問題の原因となっている行は次のとおりです。

.split("@").pop().split(":")

以下のどちらかの手段を行い、この問題に対処してください。

  • コンテンツとして、解釈されるようにするために、Browser の JavaScript スニペットを <text></text> でラップします。
  • エスケープするようにするため、その行に別の @ を追加します。そのとき、その行は以下のようになります。
    .split("@@").pop().split(":")

上記のどちらかの対策のみを行ってください。両方行うと、コードが再び壊れた状態になります。

関連情報

関連する情報は以下のとおりです。