タペストリーを使用して Web サイトの統計情報 (Web ページをレンダリングする時間) を収集するために、jamon を使用しようとしています。
どうすれば持ち続けることができますか
- リクエストがサーバーによって受信されたときに実行されるメソッド、つまりレンダリングの開始?
- 応答がすべて送信されたときに実行されるメソッド、つまりレンダリングの終了?
私は@OnEvent
注釈を使用しようとしていますが、それについてはあまり進んでいません。
RequestFilter
独自のコードへの呼び出しの間に実際のレンダリングをラップする を作成できます。
public class RenderStatisticsFilter implements RequestFilter {
@Override
public boolean service(Request request, Response response,
RequestHandler handler) throws IOException {
this.beforeRender();
final boolean result = handler.service(request, response);
this.afterRender();
return result;
}
private void beforeRender() {
...
}
private void afterRender() {
...
}
}
アプリケーション モジュールを介して、フィルタをレンダリング パイプラインに提供する必要があります。
public void contributeRequestHandler(
final OrderedConfiguration<RequestFilter> configuration) {
configuration.add("RenderStatisticsFilter", new RenderStatisticsFilter());
}
Tapestry には、特定のタイプのリクエストのロジックを編成する拡張可能なパイプラインがあります。全体的なリクエスト処理時間を測定しようとしているのか、それともレンダリングに費やされた時間だけを測定しようとしているのかはわかりません (さらに、Tapestry では実際に DOM をレンダリングしてからクライアントに DOM をストリーミングしています)。HttpServletRequestHandler パイプラインは、すべてのリクエストのすべての応答時間を測定できるフィルターを配置するのに適した場所です (ただし、ページ レンダリング リクエストのみを選択する良い方法は提供しません)。PageRenderRequestHandler パイプラインは、ページ。