我所做的是我自己寫的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