9.2.6 Webブラウザから性能データを読み出すアプリケーションの作成

クライアント性能モニタ機能では,Webブラウザ上に保存された性能データをサーバ側で収集できます。この機能を使用するために,次のAPIおよびサンプルを提供しています。

クライアント性能モニタ機能が提供しているAPIおよびサンプルの詳細を次の表に示します。

表9-6 クライアント性能モニタ機能が提供しているAPIおよびサンプル

項番APIおよびサンプル機能
1ClientPerformance.getAllLogメソッドClientPerformance.getAllLogメソッドはJavaScriptのAPIです。Webブラウザ上に保存されている性能データをJavaScriptの配列として参照可能にします。参照できる性能データは,モニタページで表示できるすべての性能データです。次に示す性能データはモニタページに表示されないため,参照できません。
  • すでに削除されている性能データ
  • 有効期限が切れている性能データ
API(ClientPerformance.getAllLogメソッド)の詳細は,マニュアル「Cosminexus アプリケーションサーバ リファレンス API編」の「7.2 ClientPerformance.getAllLogメソッド」を参照してください。
2ログ一括送信画面(サンプル)(SendAllDataSample.html)性能データを読み出すためのサンプル画面です。
項番1のClientPerformance.getAllLogメソッドの機能を使用して,Webブラウザのuser Data領域に保存されているすべての性能データをサーバに送信します。
3ログ一括受信アプリケーション(サンプル)
(ReceiveAllDataSampleServlet)
性能データを受け取る側のサンプルサーブレットです。
ログ一括送信画面から送信されたすべての性能データをCSV形式で表示します。ログシーケンスごとに線で区切られて表示されます。

サンプルは,クライアント性能フィルタの設定を変えることで動作させられます。アプリケーションを作成するための参考にしてください。サンプルの格納場所については,「9.1.6 クライアント性能モニタのディレクトリ構成」を参照してください。

次に,サンプル画面を使用して性能データを正しく呼び出す方法について説明します。

<この項の構成>
(1) 性能データを読み出すためのサンプルソース
(2) サンプル画面を動作させる手順

(1) 性能データを読み出すためのサンプルソース

性能データを読み出すためのサンプルソースを次の図に示します。なお,サンプルソース中の数字は説明文の項番と対応しています。

図9-7 性能データを読み出すためのサンプルソース

[図データ]

サンプルソースの動作を次に示します。

  1. IFRAMEタグで,APIを含むHTMLファイルcpmonitor_a_LoadAllUserData.htmlをロードします。
    クライアント性能フィルタが動作しているWebアプリケーションのcpmonitor_a_LoadAllUserData.htmlに対してリクエストを送信することで,性能データを読み出すAPIを含むHTMLファイルを呼び出します。性能データを表示するモニタページを自作する場合は,IFRAMEタグを使ってcpmonitorページを呼び出します。このとき,上記のHTMLファイルの内容を表示させる必要はないので,IFRAMEのborder属性,width属性およびheight属性には0を指定します。
  2. IFRAMEのonLoadイベントに,性能データを読み出す関数を登録します。
    IFRAMEの内容を読み終えたとき,onLoadイベントが発行されます。onLoadイベントが発生されたときに,性能データを読み出す関数が呼ばれるように設定します。
  3. 性能データを読み出すAPIを実行します。
    onLoadイベントが発生した場合に呼ばれる関数の内部で,性能データを読み出すAPIをIFRAME経由で実行します。
  4. APIの戻り値を確認し,性能データを送信します。
    戻り値がnullでないことを確認して,必要な変数や属性などに値を格納します。

 

注意
  • サンプルは直接編集しないでください。サンプルソースコードは参照するために提供しています。編集する場合は必ずコピーしたものを修正してください。
  • このサンプルでは,[SendAll]ボタンがクリックされたときに性能データの読み込みが完了しているかどうかがチェックされます。実際の送信アプリケーションでも,サンプルと同様に読み込み処理が完了するまでは送信ボタンがクリックされないように設計してください。
  • APIは,APIを含むHTMLファイルcpmonitor_a_LoadAllUserData.htmlをロードしているIFRAMEのonLoadイベントが発生したあとで実行してください。IFRAMEのonLoadイベントの発生が確認されたあとであれば,APIをIFRAMEのonLoadイベント内で実行する必要はありません。
  • IFRAMEのロードが完了し,APIを実行できる状態かどうかは,次に示すコードで確認できます。なお,コード内のloadAllUserDataには,cpmonitor_a_LoadAllUserData.htmlをロードしているIFRAMEのname属性の値を指定してください。

    if(  typeof loadAllUserData != "undefined" &&
        typeof loadAllUserData.ClientPerformance != "undefined" &&
        typeof loadAllUserData.ClientPerformance.getAllLog == "function"){
     /* loadAllUserData.ClientPerformance.getAllLog()は実行可能 */
    }
    else{
     /* loadAllUserData.ClientPerformance.getAllLog()は実行不可能 */
    }

 

(2) サンプル画面を動作させる手順

サンプル画面を実際に動作させたい場合は,クライアント性能フィルタの初期化パラメタmonitorPageEnableLevelにTestを指定してください。ただし,Testはテスト環境だけで指定できます。実際に運用を開始する場合は,必ずMonitorまたはAPIを指定してください。

サンプル画面を動作させるには,WebブラウザからURL「<Webアプリケーションのコンテキストルート>/SendAllDataSample.html」にアクセスします。<Webアプリケーションのコンテキストルート>にはコンテキストルートのパスを指定してください。

次に示すログ一括送信画面(サンプル)が表示されます。

図9-8 性能データを読み出すためのログ一括送信画面(サンプル)

[図データ]

サンプルでは,[SendAll]ボタンをクリックすると性能データがサーバのアプリケーションに送信されるように実装されています。

送信された性能データをログ一括受信アプリケーション(サンプル)によってサーバ側で受信します。受信した結果を表示した画面を次に示します。

図9-9 サンプルによってサーバ側で性能データを受信した結果

[図データ]