Skip to main content

 

OutSystems 11オンラインヘルプ

 

Webアプリケーションが対象
OutSystems

アプリケーションのパフォーマンスの測定方法

OutSystemsでは、アプリケーションのパフォーマンスに関するメトリックを収集することで、ランタイムの問題の監視とトラブルシューティングが可能です。この記事では、収集の内容と方法について説明します。

アプリケーション使用時の動作

エンドユーザーがアプリケーションを使用すると、そのアクションがサーバーにリクエストを送信します。サーバーはリクエストを処理し、結果とともにレスポンスを返します。このサイクル中にプラットフォームがメトリックを収集することで、パフォーマンス上の問題のトラブルシューティングなどが可能になります。

以下の画像は、リクエストとレスポンスのサイクルと、プラットフォームがメトリックを収集する時点を示しています。

  1. アプリケーションでエンドユーザーが行ったアクションがトリガーとなり、クライアントがサーバーにリクエストを送信します。
  2. リクエストがサーバーに到着します。
  3. サーバーはリクエストを処理するロジックを実行した後、レスポンスの送信を開始します。
  4. クライアントがレスポンスの受信を開始します。
  5. サーバーがレスポンスの送信を終了します。
  6. クライアントがレスポンスの最後のバイトを受信します。
  7. クライアントがエンドユーザーへのレスポンスのレンダリングを終了します。

クライアントのメトリック

クライアント側での経過時間は、手順4、6、7のLoad Time(読み込み時間)で測定します。これには以下の内容が含まれます。

  • レスポンスの受信
  • サーバーからの静的要素のリクエスト(CSS、画像、JavaScriptなど)
  • 画面の描画

この情報は、WebScreenClientExecutedというイベントに登録されています。

これらのメトリックを収集するにあたり、OutSystemsは可能な場合NavigationTiming APIを使用します。それ以外の場合は、カスタムJavaScriptコードを使用します。

メトリックに加え、WebScreenClientExecutedイベントにはユーザーエージェントやOSなどクライアント側の詳細が含まれます。詳細については、クライアントで収集されるすべての情報をご覧ください。

ネットワークのメトリック

プラットフォームは、クライアント側とサーバー側で収集したメトリックに基づき、以下のとおりネットワーク経過時間を計算します。

ネットワーク経過時間 = クライアント経過時間 - クライアント読み込み時間 - サーバー経過時間

Webアプリケーションがブラウザで実行されている場合、WebScreenClientExecutedイベントがネットワーク関連の詳細をさらに取得します。詳細については、プラットフォームが収集するネットワーク関連の詳細をご覧ください。

サーバー側のメトリック

サーバー側の実行中(手順2、3、5)、プラットフォームはWebScreenServerExecutedイベントで以下のメトリックを収集します。

  • 実行されたすべてのクエリ
  • 実行された利用中のすべての連携メソッド(SOAP、REST、またはSAP)
  • 実行されたすべての拡張機能のアクション

残りのサーバー側経過時間は、セッション、他のアプリケーションロジック、およびページ描画の取得に費やされています。

時間のかかる呼び出しについて

このドキュメントに記載されたメトリックのほかに、プラットフォームはサーバー上で実行された時間のかかる呼び出しに関する情報も収集します。

時間のかかる呼び出しとは、クエリの実行時間がしきい値(デフォルトで200ミリ秒)を超える場合を指します。

ループ(For Each)での発生のように1つのアクション内で同じ呼び出しが複数回実行される場合、すべての実行時間の合計を実行時間ととらえます。たとえば、GetOrdersForCustomerクエリが10回実行され、各呼び出しに30ミリ秒かかった場合、そのクエリの実行に費やされた合計時間は300ミリ秒となります。

時間のかかる呼び出しを検出すると、OutSystemsはQueryExecutedイベント、ExtensionExecutedイベント、ConsumedIntegrationExecutedイベントにそれぞれ登録します。

メトリックを読み取る、およびカスタムメトリックを追加する

OutSystemsが提供するPerformanceMonitoring APIでは、以下が可能です。

  • メトリックの読み取り: たとえばプラットフォームデータベースに保存されているメトリックを取得し、独自のダッシュボードを構築します。
  • カスタムメトリックの追加: アプリケーションに独自のメトリックを追加します。

詳細については、「PerformanceMonitoring API」をご覧ください。