アプリのサーバーリクエストがBrowser Pageviewを大きく上回る
アプリのサーバーリクエストがBrowser Pageviewを大きく上回る

アプリのサーバーリクエストがBrowser Pageviewを大きく上回る

問題点

しばしば同一のアプリにおいて、アプリのサーバートランザクション数(1分あたりのリクエストまたはrpm)がブラウザートランザクション数(1分あたりのページ表示数またはppm)よりも大きくなります。全てのページがWebに対するインターフェイスを備えている(APIや、バックエンド専用のコンポーネントは備えていない)Webサイトでさえ記録されたブラウザーページビュー数よりも2から10倍のトランザクション数を持つ場合もあります。

原因

このようなことが起こるのにはいつくかの共通の理由があります:

アプリのリクエスト(rpm)とブラウザートランザクション(ppm) 差が生じる理由として考えられるもの
インストルメンテーション アプリの全てのページをインストルメント化していないまたは全てのページが自動インストルメンテーションを利用していない。
Webページのフォーマット Webページがtext/htmlではない。
(Browserは有害なデータを回避するためにhtmlではないページをインストルメント化しません。これはhtmlでないページがブラウザーにより構文解析されることを前提に作られていないからです。)
AJAXリクエスト バックエンドに対するリクエストはAJAXを介してなされる場合があります。AJAXのスループットはNew Relic BrowserのAJAXページで別途追跡されます。
注意:AJAXの追跡はNew Relicのサブスクリプションレベル(Proまたはそれ以降)に依存します。
リクエストソース すべてのリクエストが完全に機能するWebブラウザーから発生するわけではありません。例えば、APIコールであったり、またはJavaScriptを解釈できないデバイスからリクエストが発生します。この例としては、RSSフィードリーダーや検索エンジンインデクサなどがあります。
ブラウザー リクエストは非常に古いブラウザー(IE7以前のブラウザー)から発生する、またはクッキーやJavaScriptをブロックするブラウザーから発生する場合もあります。例えば、FirefoxのGhostery拡張機能はページ読み込みのタイミングをブロックします。
キャッシュ キャッシュはアプリサーバーとエンドユーザーの間に存在します。キャッシュページが正しくインストルメント化されていないと、バランスがくるい関係性が逆になり、ブラウザーの処理能力がアプリのサーバーの処理能力よりも高くなります。
ユーザーのビヘイビア ユーザーはページの読み込みが完了するまたはwindow.onload()eventが実行される前にページから去ってしまいます。
New Relicの週間パフォーマンスレポートにはページビュー数が記載されています。このページビュー数はこの期間内にNew Relicにより記録されたページ読み込み数の合計値です。エンドユーザーのブラウザーがページ読み込みのタイミングを含むページを読み込むと、JavaScriptがタイミングのデータを読み込み、レポートします。JavaScriptが実行される前にユーザーがページから去ると、そのページのデータは送信されず、ページビューの合計数のレポートには含まれません。

関連情報

確実に全てのページがインストルメント化されるようにしたいと考えているなら、ブラウザーモニタリングのインストールのトラブルシューティングを試してください。

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