我所做的是我自己写的CustomAppstatsFilter排除某些网址的。
public class CustomAppstatsFilter extends AppstatsFilter {
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if (request instanceof HttpServletRequest) {
String url = ((HttpServletRequest) request).getRequestURL().toString();
// We do not want these to show up in appstats
if ((url.contains("appstats"))
|| url.contains("_ah/")
|| url.contains("cron/")
|| url.contains("batch/")) {
chain.doFilter(request, response);
return;
} else {
super.doFilter(request, response, chain);
}
}
}
}
编辑 - 这可以结合ZiglioNZ伟大的答案。
<!-- Appstats filter for profiling application -->
<filter>
<filter-name>appstats</filter-name>
<filter-class>my.company.filter.CustomAppstatsFilter</filter-class>
<init-param>
<param-name>maxLinesOfStackTrace</param-name>
<param-value>5</param-value>
</init-param>
</filter>
<filter-mapping>
<!-- excludes are in CustomAppstatsFilter -->
<filter-name>appstats</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
我假设只是选择你想监控的网址不是一个选项? FWIW我希望能够做你不止一次要求的内容,但我咬紧牙关,只是把我们需要监控的网址列表放到配置中。 – 2012-04-07 04:06:42
不幸的是我想排除的URL是/ _ah/queue/__ deferred__。我可以将DeferredTaskServlet安装在一个额外的URL上,并将这个特定的请求发送给它,但是这似乎离保留很远。 – stickfigure 2012-04-07 18:11:58
你有没有想过这个? – Keith 2013-05-12 17:54:35