APM WebView のパフォーマンスの設定および監視

APM UI Performance Monitor は、WebView アプリケーションのパフォーマンス メトリックを収集およびレポートします。管理者はこの情報を使用して、ユーザに影響が及ぶ前に潜在的な WebView のパフォーマンス問題を検出して分離します。たとえば、パフォーマンスの問題は、ハードウェア リソースが不足している場合やあまりに多くのセッションが同時に使用されている場合に発生する可能性があります。この問題は、大規模なデータ ビューがある場合によく発生します。
apmdevops104jp
APM UI Performance Monitor は、WebView アプリケーションのパフォーマンス メトリックを収集およびレポートします。管理者はこの情報を使用して、ユーザに影響が及ぶ前に潜在的な WebView のパフォーマンス問題を検出して分離します。たとえば、パフォーマンスの問題は、ハードウェア リソースが不足している場合やあまりに多くのセッションが同時に使用されている場合に発生する可能性があります。この問題は、大規模なデータ ビューがある場合によく発生します。
注:
SAP WebView ユーザは、APM UI Performance Monitor を利用できません。
WebView サーバのインストールでは Java エージェントが展開されます。有効になっている場合、Java エージェントはサーバ コンポーネントとハードウェア リソースを監視します。収集されたメトリックは、Enterprise Manager にレポートされます。Enterprise Manager はデータを受け取ると、リアルタイムおよび履歴レポートのためにデータを処理して保存します。収集されたデータは、WebView の以下のサンプル ダッシュボードに表示されます。
管理者は、以下の手順を実行します。
前提条件の確認
前提条件は以下のとおりです。
  1. 以下のコンポーネントとそのディレクトリ(およびファイル)が構成に存在することを確認します。
    • Java エージェント
      <
      WebView_Home
      >/product/webview/agent
    • エージェントのオペレーション、メトリック データの収集、およびインスツルメンテーション処理を制御するための WebView Probebuilder ディレクティブ ファイル(
      WebView.pbd
      )。
      <
      WebView_Home
      >/product/webview/agent/wily/core/config
  2. Java エージェントの
    IntroscopeAgent.profile
    ファイルを以下の手順で設定します。
    1. <
      Install_Home
      >/product/webview/agent/wily/core/config に移動し、テキスト エディタで
      IntroscopeAgent.profile
      を開きます。
    2. introscope.autoprobe.directivesFile
      を検索し、
      WebView.pbd
      がプロパティ値の最後に追加されていることを確認します。
    3. introscope.agent.defaultProcessName
      を検索し、プロパティ値が
      APM Introscope WebView
      であることを確認します。この値を変更または削除しないでください。
    4. introscope.agent.agentName
      を検索し、プロパティ値が
      APM.WebView
      であることを確認します。
    設定が完了しました。
APM UI Performance Monitor の設定
Java エージェントに APM UI Performance Monitor コンポーネントを設定します。
以下のインストール オプションの
いずれか
を使用します。
  • Enterprise Manager: <
    EM_Home
    >/product/webview
  • WebView サーバ スタンドアロン: <
    WebView_Home
    >/product/webview
WebView サーバの適切な設定を決定します。
  • Windows サービスとしての WebView サーバの設定
  • スタンドアロン サービスとしての WebView サーバの設定
Windows サービスとしての WebView サーバの設定
Windows サービスとして WebView サーバを設定するには、WVService.conf 設定ファイルを使用します。
以下の手順に従います。
  1. (Windows のみ) WebView アプリケーションを開始する Windows サービスを作成します。
  2. <
    Install_Home
    >/bin ディレクトリに移動し、WVService.conf ファイルをテキスト エディタで開きます。
  3. Java Additional Parameters
    で、以下のセクションを探します。
    #wrapper.java.additional.4=-XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -javaagent:./product/webview/agent/wily/Agent.jar -DagentProfile=./product/webview/agent/wily/core/config/IntroscopeAgent.profile -Dcom.wily.introscope.wilyForWilyPrefix=com.wily -Djetty.home=./ 
  4. この文字列の先頭にある、これらのパラメータをコメント化するための「#」を削除します。
    変更を保存します。
  5. Windows サービスを再起動します。
スタンドアロン サービスとしての WebView サーバの設定
スタンドアロン サービスとして WebView サーバを設定するには、Introscope_WebView.lax 設定ファイルを使用します。
以下の手順に従います。
  1. <
    Install_Home
    > ディレクトリから、テキスト エディタで Introscope_WebView.lax ファイルを開きます。
  2. 以下のプロパティを検索します。
    lax.nl.java.option.additional
    このプロパティのコメント行は、以下の例のようになります。
    # Introscope Java Agent Arguments for WebView Monitor # -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -javaagent:./product/webview/agent/wily/Agent.jar -DagentProfile=./product/webview/agent/wily/core/config/IntroscopeAgent.profile -Dcom.wily.introscope.wilyForWilyPrefix=com.wily -Djetty.home=./
  3. "#" を除く引数を行からコピーして lax.nl.java.option.additional プロパティ値に追加します。
    結果は以下の例のようになります。
    lax.nl.java.option.additional=-Xms256m -Xmx1024m -Djava.awt.headless=false -Dorg.owasp.esapi.resources=./config/esapi -Dsun.java2d.noddraw=true -Dintroscope.webview.testpanel.enable=false -Dintroscope.webview.saas.enable=false -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=256m -javaagent:./product/webview/agent/wily/Agent.jar -DagentProfile=./product/webview/agent/wily/core/config/IntroscopeAgent.profile -Dcom.wily.introscope.wilyForWilyPrefix=com.wily -Djetty.home=./
    : ファイル内の値はこの例とは異なる場合があります。
    変更を保存します。
  4. WebView Monitor Management モジュールをデプロイするには、以下の modules フォルダから
    WebView.jar
    ファイルをコピーします。
    <
    EM_Home
    >/examples/WebViewMonitor/config/modules
    次に、以下の deploy フォルダに
    WebView.jar
    ファイルを配置します。
    <
    Install_Home
    >/deploy
  5. WebView サーバを再起動します。
Performance Monitor 設定の確認
APM UI Performance Monitor の設定が正しいことを確認します。
以下の手順に従います。
  1. WebView で、[Investigator]-[メトリック ブラウザ]をクリックします。
  2. 以下のように、APM.WebView に移動します。
    <DomainName>|<WebViewHostName>|APM Introscope WebView|APM.WebView
  3. 標準メトリックを表示し、Enterprise Manager にデータをレポートしていることを確認します。
  4. [コンソール]タブをクリックし、以下のサンプル ダッシュボードが[ダッシュボード]ドロップダウン リストに表示されることを確認します。
    • WebView - 概要
    • WebView - マップおよびウィジェット
    • WebView - リソース
  5. [WebView - 概要]サンプル ダッシュボードを開き、以下のタスクを実行します。
    • データ ビューアのグラフを右クリックします。[リンク]ドロップダウン リストから、[管理モジュール]内の対応するメトリックに移動します。
    • グラフからヒントを開きます。リンクをクリックして、メトリック ブラウザ ツリーの対応するメトリックに移動します。
    設定が確認されました。
WebView UI のパフォーマンスの監視
APM UI Performance Monitor のサンプル ダッシュボードには、WebView アプリケーションの状態監視および問題解決機能があります。パフォーマンスの問題を視覚的に通知できます。たとえば、ダッシュボードには、以下の情報を持つ棒グラフが表示されます。
  • 3000 ミリ秒の警告しきい値を示す黄色のライン
  • 4000 ミリ秒の危険しきい値を示す赤色のライン
以下の手順に従います。
  1. WebView の[コンソール]タブで、ドロップダウン リストから WebView 監視のサンプル ダッシュボードを選択します。
    ダッシュボードが開き、現在のパフォーマンス ステータスが表示されます。棒グラフには、現在のデータ値が水平方向の棒で表示されます。
  2. 標準メトリックを分析します。
  3. ダッシュボードに示されたデータに関してより詳細な情報を必要とする場合は、以下のショートカットを使用します。
    • ハイパーリンクを持つダッシュボード オブジェクトの上にマウス カーソルを合わせます。すると、ポインタが手の形に変わります。オブジェクトのデフォルト ターゲットへのリンクに移動するには、オブジェクトをクリックします。
    • Data Viewer内のダッシュボード オブジェクトを右クリックします。すると、ポインタが手の形に変わります。[リンク]ドロップダウン リストから、管理モジュール内の対応するオブジェクトに移動します。Data Viewerが、基となるメトリック グループに自動的にリンクされます。
    • エレメントの上にマウス カーソルを合わせて、ヒントを表示します。ヒントは、[問題切り分けマップ]タブと[メトリック ブラウザ]タブに存在する階層ツリーおよび[ビューア]ペイン内のメトリック パスおよび値を識別します。ツリー内のメトリックを表示するには、ヒント内のハイパーリンクをクリックします。
  4. Average Response Time の傾向をほかのメトリックの変化と組み合せて、問題を識別し、診断します。
注:
WebView コンソールのダッシュボードでは、すべての情報が表示されますが、編集はできません。ダッシュボードを作成して編集するには、Workstation を使用します。
[WebView - 概要]ダッシュボード
[WebView - 概要]ダッシュボードは、管理者が環境全体にわたって WebView アプリケーションのパフォーマンスを監視するために設計されています。
グラフには、WebView アプリケーションおよびクライアントとサーバ間の相互動作に関する高度な情報が表示されます。
このダッシュボードには以下のグラフがあります。
  • WebView フロントエンド
    WebView の監視対象アプリケーションのフロントエンドの稼働状況メトリックが表示されます。Average Response Time の傾向をほかのメトリックの変化と組み合せて、パフォーマンスの問題を識別し、診断します。
  • アクティブ ブラウザ
    サーバに接続しているブラウザが表示されます。
  • アクティブ サービス
    サブスクリプション マネージャに接続しているサービスが表示されます。
  • 間隔ごとのクライアント要求数(15 秒)
    間隔ごとのクライアントからの要求数が表示されます。
[WebView - マップおよびウィジェット]ダッシュボード
[WebView - マップおよびウィジェット]ダッシュボードを使用して、問題切り分けマップと SOA 依存マップのパフォーマンス、および WebView の稼働状況メトリックを監視します。
グラフには、これらのマップとウィジェットの全般的な稼働状況およびパフォーマンスが表示されます。[問題切り分けマップ]グラフにデータを表示するには、[Investigator]-[問題切り分けマップ]内のビジネス サービスおよびフロントエンドに移動する必要があります。
このダッシュボードには以下のグラフがあります。
  • 問題切り分けマップおよび SOA 依存マップの稼働状況
    ビジネス サービスおよびフロントエンドの稼働状況メトリックは、APM Introscope WebView エージェントの[JSP]ノードの下に表示されます。
  • アクティブ ウィジェット数
    アクティブなウィジェット数が表示されます。
  • 間隔ごとのアクティブ ウィジェット数
    間隔ごとのアクティブなウィジェット数が表示されます。
  • 問題切り分けマップ ロード時間(ミリ秒)
    問題切り分けマップのロード時間(ミリ秒)が表示されます。
[WebView - リソース]ダッシュボード
[WebView - リソース]ダッシュボードは、管理者がフロントエンド I/O およびホスト リソースを監視するために設計されています。
グラフには、WebView リソースの全般的な稼働状況およびパフォーマンスが表示されます。
このダッシュボードには以下のグラフがあります。
  • フロントエンド I/O
    フロントエンド ソケット I/O の入出力帯域幅(バイト/秒)およびフロントエンド ソケット I/O の同時性が表示されます。
  • ホスト リソース
    プロセス CPU とホスト CPU の使用率、サーバ メモリの使用量と割り当て量が表示されます。
WebView メトリック グループの設定
[WebView - リソース]ダッシュボードでは、WebView メトリック グループは、以下の情報を保存する管理モジュール オブジェクトです。
  • エージェント一致パターン
    エージェント名の一部またはすべてを含むデータを指定することにより、メトリックへの入力をフィルタする Perl 5 の正規表現です。
  • メトリック一致パターン
    リソース(メトリックに至るまでの一連のフォルダ)およびメトリックを指定する Perl 5 の正規表現です。
エージェント一致パターンのデフォルト エージェント プロセス名またはデフォルト エージェント名を変更することができます。
以下の手順に従います。
  1. WebView で[管理]タブをクリックし、[WebView 監視]メトリック グループを見つけます。
  2. 更新する[WebView - リソース]ダッシュボード メトリック グループを見つけます。たとえば、[フロントエンド I/O]、[プロセスおよびホスト CPU]、[フロントエンド I/O 同時実行]、[ヒープ サイズ]、および[割り当て]などです。
  3. エージェント一致パターンのプロセス名の値(APM Introscope WebView)またはエージェント名の値(APM.WebView)を編集します。
  4. 変更を保存します。
  5. Java エージェントの
    IntroscopeAgent.profile
    をテキスト エディタで開きます。
  6. introscope.agent.defaultProcessName
    プロパティまたは
    introscope.agent.agentName
    プロパティを検索します。
  7. 手順 3 で指定したものと同じ名前の値を入力します。
  8. 変更を保存します。
    設定が完了しました。
ダッシュボード データの表示および解釈
ダッシュボード データは、さまざまな方法で表示および解釈できます。
さまざまな時点のデータの表示
ライブ データを表示できます。また、時間範囲を選択して、さまざまな時点のデータを表示できます。データのデフォルトのビューは[ライブ]です。
注:
WebView ライブ モードでは 8 分間の現在のメトリック データが表示されます。
WebView がライブ モードであるかどうかを確認するには、ブラウザの上部にある[時間ウィンドウ]を確認します。
ダッシュボードでさまざまな時点を表示するには、以下のタスクを実行します。
履歴データの表示
アプリケーションを監視する場合、ライブ データ ビューが変化し、常に最新のデータが表示されます。ライブ データはデフォルト ビューです。時間範囲を選択すると、履歴データを表示できます。履歴データでは、問題が発生した時刻を特定できます。
以下の手順に従います。
  1. WebView の[コンソール]タブで、[ダッシュボード]ドロップダウン リストから履歴データを表示するダッシュボードを選択します。
  2. [時間ウィンドウ]ドロップダウン リストから、履歴ビュー用の時間範囲([24 時間]など)を選択します。
    選択した時間範囲([24 時間]など)を使用して、その範囲のダッシュボードのデータが表示されます。終了時刻は現在の時刻に設定されます。
  3. 開始時刻を変更する場合は、[時間ウィンドウ]の横にある進む矢印および戻る矢印をクリックします。
  4. 範囲の終了時刻を現在時刻にリセットするには、
    [ウィンドウの終端を現在の時刻に設定]
    をクリックします。
カスタム時間範囲の定義
コンソール内のデータを表示するカスタム時間範囲を定義できます。
以下の手順に従います。
  1. 履歴データを表示する対象となるメトリックまたはダッシュボードを選択します。
  2. [時間ウィンドウ]ドロップダウン リストから[カスタムの範囲]を選択します。
  3. [カスタムの範囲]ウィンドウが開き、現在の日付(今日)がシルエットで強調された状態で表示されます。
  4. カレンダ コントロールを使用して開始日と終了日を選択します。
  5. [OK]をクリックします。
    カスタム範囲のデータが設定されます。
標準メトリック
WebView は、エージェントがメトリックとしてリモートおよびローカル システムから収集するアプリケーション パフォーマンス データを表示します。監視対象のフロントエンドおよびバックエンドのアプリケーション コンポーネント、およびその他の多くのアプリケーション コンポーネントについては、以下の標準メトリックが表示されます。
  • Average Response Time (ms) (平均応答時間(ミリ秒))
    -- 基準となるアプリケーション応答速度。
  • Concurrent Invocations (同時進行中の呼び出し)
    -- 一定の時間に処理される要求の数。
  • Errors Per Interval (間隔ごとのエラー数)
    -- 指定した時間スライス中に発生するエラーの数。
  • Responses Per Interval (間隔ごとの応答数)
    -- 指定した時間スライス中に完了する要求の数。
  • Stall Count (ストール数)
    -- ストールの数。ストールは、指定した時間しきい値内に完了しなかった要求です。
Average Response Time の傾向
Average Response Time をほかのメトリックの変化と組み合せて、傾向を分析することで、問題を識別し、診断できます。詳細については以下の表を参照してください。
Average Response Time の傾向
定義
継続的な問題
Available Thread Count の値が低く、Average Response Time の値が一貫して高い場合は、以下の問題を示している可能性があります。
非効率なコード
外部システムの過剰使用
バックエンドが遅い
レイヤが多すぎる
一貫した問題が常に存在し、改善することも悪化することもありません。
定期的な問題
Average Response Time が定期的に高くなり、定期的に急増した後、通常に戻るというようなグラフで示されます。
Available Thread Count の値が低く、Average Response Time の値が定期的に高くなる場合は、以下の問題を示している可能性があります。
GC リークが頻繁に発生
負荷に関連するバックエンドのボトルネック
CPU Utilization の値が低く、Average Response Time の値が定期的に高くなる場合は、以下の問題を示している可能性があります。
内部問題
定期的な問題が発生し、一定の間隔で収まります。
進行的な問題
Average Response Time が長期にわたって着実に増加しており、Responses Per Interval の値が低い場合は、以下の問題を示している可能性があります。
メモリ リーク
段階的な問題は時間と共に減少します。