2016-12-27 15 views
0

サーバー側からCQ5のページの各コンポーネントの読み込み時間を取得する方法。cq5のサーバー側からページの各コンポーネントの読み込み時間を取得する方法

私の実装によれば、request.logファイルからページをロードするのに最も長い時間がかかります。しかし、私はサーバー側からページの各コンポーネントの読み込み時間を取得する必要があります。

私は、このリンクを見つけたが、これは、クライアント側から動作します: http://www.wemblog.com/2014/05/how-to-find-component-load-time-on-page.html

答えて

0

あなたはすべてのコンポーネントタグクラスの呼び出しのためのロガーを含めると、コールの入口と出口のためのストップウォッチを提供する必要があります。

これをタグクラスに追加すると、特定のページの各コンポーネントの所要時間を知ることができます。 パテントを使用してサーバーログにアクセスすることができます。

0

バージョンAEM 6.0からは、ページ上の各コンポーネントのレンダリング時間を測定するOOTB機能があります。

TouchUI、Developerモードでアクセスできます。 AEMは、実行モード 'nosamplecontent' でインストールされている場合

enter image description here

しかし、それは動作しません。

0

それはSlingHttpServletRequest#getRequestProgressTrackerから得られるのですSling documentation

で説明したようにあなたは、RequestProgressTrackerを使用することができます。コンポーネントのタイミング統計を取得するには、Servlet Filterを使用して、すべての要求に対してコードを実行します。

  1. がにメッセージを分析し、現在の要求
  2. のメッセージを進行リクエストのコレクションの反復子を得るために、requestオブジェクト
  3. コールgetMessagesからRequestProgressTrackerを取得:フィルタが呼ばれるたび

    リソースタイプとタイミング情報を見つけます。残念ながら、すべてのメッセージはStringとしてのみ利用可能ですので、データを取得するために解析する必要があります。

    TIMER_END{103,/libs/sling/servlet/default/explorer/node.esp#0} 
    

    103がある番号:

    example RequestProgressTracket output

    最後のメッセージは我々が探しているようなものがある:

のは、ドキュメントのいくつかの例のメッセージを見てみましょうスクリプトの実行に要した時間(ミリ秒)。コンマの後の値はスクリプトです。正規表現を調整して、そのようなメッセージから両方の値を抽出することができます。

私が最近取り組んだプロジェクトの1つは、このアプローチを使用してコンポーネントのパフォーマンスを報告する方法でした。 NewRelicには、私たちが構築したすべてのコンポーネントのライブ統計が入ったきれいなダッシュボードがありました。

関連する問題