ブラウザーモニタリングインストールのトラブルシューティング
ブラウザーモニタリングインストールのトラブルシューティング

ブラウザーモニタリングインストールのトラブルシューティング

New Relic Browserを利用してブラウザーモニタリング用のアプリケーションを設定したら、データが表示されるまで少し待ってください。しばらく待ってもデータが表示されない場合、以下のトラブルシューティングの手順に従ってください。
また、AJAXまたはセッショントレースのデータだけがない場合もトラブルシューティングできます。

この手順は、New Relic BrowserにJavaScriptスニペットをAPM監視アプリに挿入することを許可しているか、または自身でJavaScripstスニペットを挿入するかどちらの方法でアプリをデプロイしているかによって変わってきます。

APM agentのデプロイ

New Relic APMも監視しているアプリをデプロイするにあたっての問題点の解決に関しては以下のトラブルシューティングの手順に従って下さい。

アプリを有効にする

アプリケーションのブラウザー設定でNew Relic Browserが有効になっていることを確認してください。

  1. New Relicのメニューバーからブラウザー>(選択したアプリ)>設定の順に選択します。
  2. 各アプリでブラウザー設定を有効にするには標準の手順に従ってください。
  3. Webサーバーキャッシュをフラッシュします。
  4. データが到着するまで少し待ちます。データが表示されない場合は、次の手順を試してください。

New Relic APM agentをアップデートする

APM各エージェントは新しければ新しいほど、より正確なページ読み込みのタイミングのスクリプトを提供します。以下のトラブルシューティングの手順に進む前に、APM agentの最新のリリースを利用しているかを必ず確認します。

ページ読み込みのタイミングに対応するエージェントバージョン要件に関しては、互換性と要件を参照してください。

JavaScriptスニペットを確認する

メトリクスをキャプチャし、New Relicに送信するために必要な2つのスクリプト要素を含むページのソースを確認します。ブラウザーでページのソースを閲覧し、以下と類似した内容で始まるスクリプト要素を探します。

または以下のようなもの

また、アプリサーバーエージェント言語次第では、2番目のスクリプト要素が2つの場所のうち1つに存在することを確認します。

  • Go:現在、n/a。
  • Javaタグ(ない場合はページに追加する必要がある)の前
  • .NET1番目のスクリプト要素の直前
  • Node.js1番目のスクリプトの直前
  • PHPbody要素の末尾
  • Pythonhead要素内またはbody要素の末尾
  • Ruby1番目のスクリプト要素の直前

2番目のタグは設定とタイミングデータを含み、以下のように表示されます。

どちらかのスクリプトがない場合、以下の手順に従ってトラブルシューティングしてください。スクリプト要素があるのに少し待ってもデータが表示されない場合、support.newrelic.comでサポートを受けてください。

その他のJavaScriptエラーモニタリングを確認する

Webページ上でJavaScriptエラーが表示された場合、またはNew Relic BrowserのJavaScriptエラーページ上でデータが表示されない場合、アプリで他になんらかのJavaScriptエラーモニタリングフレームワークが有効になっていないか確認します。JavaScriptエラーモニタリングがNew Relic Browserの機能に干渉している場合があります。

自動インストルメンテーションを設定する

New Relicの自動インストルメンテーション機能を利用している場合、エージェントが正しく設定されていることを確認します。各エージェントには構成ファイル設定があり、それぞれ自動インストルメンテーションのオン・オフを切り替える手順が違います。

  • Go:現在、n/a。
  • Java
  • .NET
  • Node.js agent:現在サポートされていません。詳しくは手動インストルメンテーション手順を参考にしてください。
  • PHP
  • Python
  • Ruby
エージェントの構成ファイルを変更する場合は、必ずアプリを再起動してください。

手動APIインストルメンテーションを確認する
JavaScriptを生成し挿入するためにNew RelicエージェントAPIを手動でコールする場合、必ずコールが実際に実行されていることを確認します。APIやAPIの利用法はエージェントにより異なります。

  • Go:現在、n/a。
  • Java agent
  • .NET agent
  • Node.js agentNode.jsのトラブルシューティング手順も参考にしてください。)
  • PHP agent
  • Python agent
  • Ruby agent

APMアプリの再起動

APM agentの構成ファイルを変更した場合、変更した設定が反映されるようにアプリケーションを再起動します。

  • Java agent:アプリサーバーの「作業」キャッシュをフラッシュします。
    こうすることでアプリサーバーに再コンパイルさせます。
  • .NET agent:flush_dotnet_temp.cmdコマンドを利用して必ずasp.netキャッシュディレクトリを空にしてください。こうすることでページ読み込みのタイミングのインストルメンテーションを利用してアプリサーバーにASPを再コンパイルさせます。

エンドユーザーのネットワークへのアクセスの確認
アプリケーションが安全なローカルネットワークで基本的には読み込まれるとしても、必ずユーザーが必要なネットワークエンドポイントにアクセスし、ブラウザーデータをレポートできることを確認します。例えば、New RelicのCDNやビーコンではそうします。

コピー&ペーストによるデプロイ

New Relic Browserでコピー&ペーストによるデプロイ方法を利用する場合のアプリの問題に関しては、次のトラプルシューティング手順に従います。

JavaScriptスニペットを確認する

メトリクスをキャプチャし、New Relicに送信するために必要なスクリプト要素を含むページのソースを確認します。ブラウザーでページのソースを閲覧し、以下と類似した内容で始まるスクリプト要素を探します。

このスクリプト要素がない場合、スクリプトを確かにペーストし、新しいコードをデプロイしたことを必ず確認します。JavaScriptスニペットの中にまだペーストしていなかった場合、ブラウザー設定ページから再度コピーできます。可能であれば、これらのページを表示するアプリケーションを再起動します。それでもスクリプトが表示されない場合、次の手順でトラブルシューティングを続けてください。

ページの全てのキャッシュを削除する

アプリケーションが提供するページでJavaScriptスニペットを表示するには、コードを書き加える前から存在するキャッシュページが全て削除されていることを確認します。

  1. 全てのCDNキャッシュを確認します。
  2. Webサーバーキャッシュをフラッシュします。

JavaScriptの配置と適切な動作を確認する

JavaScriptをHEADの冒頭にできる限り近い位置に挿入します。ただし、配置の影響を受けやすい全てのMETAタグ(X-UAに対応、文字コード)よりは後の部分に挿入します。なお、コメント外に配置します。一般的なフォーマットは次のようになります。

JavaScriptが正しく配置されているなら、JavaScriptと生成した元のスニペットとを比較し、JavaScriptが適切に動作し、元のスニペットと同じようになっていることを必ず確認します。スニペットが不完全であるか、変更された場合は正しくレポートがされません。

その他のJavaScriptエラーモニタリングを確認する

Webページ上でJavaScriptエラーが表示された場合、またはNew Relic BrowserのJavaScriptエラーページでデータが全く表示されない場合、アプリで他のJavaScriptエラーモニタリングフレームワークが有効になっていないか確認します。JavaScriptエラーモニタリングがNew Relic Browserの機能に干渉している場合があるからです。

エンドユーザーネットワークへのアクセスを確認する

アプリケーションが安全なローカルネットワークで基本的に読み込まれるとしても、ユーザーが必要なネットワークエンドポイントにアクセスし、ブラウザーのデータをレポートできることを必ず確認します。例えば、New RelicのCDNやビーコンなどが当てはまります。

Razorフレームワーク:パーサーエラーメッセージを確認する

Razorフレームワークを利用するa.NETアプリでコピー&ペーストのインストール方法を利用すると、以下のエラーが発生します。

このエラーはNew Relic Browser JavaScriptスニペットのアットマークが原因で起こります。アットマークはRazorのコードブロックが始まることを表します。例えば問題を引き起こすコードは以下のようなものです。

この問題を解決するには、以下の回避策のいずれかを取ります。
Browser JavaScriptスニペットをタグでラップし、コンテンツとして解釈されるようにします。
または、コードにもう1つアットマークを追加し、エスケープします。その場合のコードは以下のようになります。

利用する回避策はかならずいずれかの1つとします。両方の回避策を同時に利用すると、またコードがエラーになってしまいます。

関連情報

追加のドキュメンテーションリソースは次のとおりです。

  • ページ読み込みのタイミングのインストルメンテーション(JavaScript要素、データ伝送)
  • ページ読み込みのタイミングのプロセス(タイムセグメント、色、アプリサーバーリクエストとページ読み込みのタイミングの違いを含む概要)
  • New Relicクッキー(NREUMを含めNew Relicが利用するクッキーの記述)
  • New Relicがデータを伝送するために利用するネットワーク(サーバーロケーションやIPアドレス)

New Relicのオンラインテクニカルコミュニティでブラウザーモニタリングについて議論しましょう!トラブルシューティングや質問をしたり、JavaScriptエラーレポートAJAXタイミングの詳細を話し合うことができます。