这是我使用 yammer 计时注释的斗争的后续行动,如此处所述。
我的弹簧上下文文件很简单:
<metrics:annotation-driven />
我有以下课程:
import com.yammer.metrics.annotation.ExceptionMetered;
import com.yammer.metrics.annotation.Metered;
import com.yammer.metrics.annotation.Timed;
...
@Component
public class GetSessionServlet extends HttpServlet {
private final static Logger log = LoggerFactory.getLogger(GetSessionServlet.class);
@Override
public void init(final ServletConfig config) throws ServletException {
super.init(config);
SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(
this, config.getServletContext());
}
@Override
@Timed(name = "get-session", rateUnit = TimeUnit.MILLISECONDS)
@Metered
@ExceptionMetered(name = "get-session-failures", rateUnit = TimeUnit.MILLISECONDS)
public void doGet(final HttpServletRequest req,
final HttpServletResponse resp) throws ServletException, IOException {
final String sessionId = req.getParameter("sessionId");
final String fields = req.getParameter("fields");
final String format = req.getParameter("format");
if (StringUtils.isEmpty(sessionId)) {
resp.getWriter().write("sessionId parameter missing!\n");
return;
}
...
}
我在本地运行我的应用程序mvn clean tomcat7:run
,然后连接 jconsole。
在 MBeans 选项卡中,我可以看到一个条目,其中包含我的GetSessionServlet
类的包名称以及三个子文件夹doGet
(用于 @Metered 数字)、get-session 和 get-session-failures。
但是,无论我调用多少次 servlet,上面子文件夹中的所有值都保持为零。我错过了什么?此外,任何有关这些计量指标的文档比官方文档更详细,我们将不胜感激。