我正在尝试使用jamon使用挂毯收集网站的统计数据(呈现网页的时间)。
我该如何进行
我正在尝试使用@OnEvent
注释,但我不会那么做。
答案 0 :(得分:3)
您可以创建一个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());
}
答案 1 :(得分:2)
Tapestry具有可扩展的管道,可以为任何特定类型的请求组织逻辑。我不确定您是否正在尝试测量整个请求处理时间,或者仅仅是渲染所花费的时间(并且,在Tapestry中,实际上渲染DOM,然后将DOM流式传输到客户端)。 HttpServletRequestHandler管道是一个放置过滤器的好地方,它可以测量所有请求的所有响应时间(但不提供仅选择页面呈现请求的好方法),PageRenderRequestHandler管道适合于测量渲染和流式传输的时间。页。