3

我该怎么做相当于:

  @Override
  public void init(final ServletConfig config) throws ServletException {
    super.init(config);
    CsvReporter.enable(new File("/tmp/measurements"), 1, TimeUnit.MINUTES);
    GraphiteReporter.enable(1, TimeUnit.MINUTES, "my.host.name", 2003);
  }

  @Override
  protected void doGet(final HttpServletRequest req,
          final HttpServletResponse resp) throws ServletException,
          IOException {
    final TimerContext timerContext = Metrics.newMeter(CreateSessionServlet.class,"myservlet-meter", "requests", TimeUnit.SECONDS).time();
    try {
...
  } finally {
      timerContext.stop();
    }

使用这里提到的弹簧注释和 codahale 指标?

我认为这很简单:

- 像这样注释我的 servlet(我最终将需要仪表和计量):

@Timed
@Gauge
@Metered
@Override
protected void doGet(final HttpServletRequest req,
        final HttpServletResponse resp) throws ServletException, IOException {

- 并更新我的 spring-servlet 以启用 spring 注释,如上述页面中所述。

但是当我使用 jconsole 时,我在 MBeans 部分中没有看到我检测的那个 servlet 的任何额外条目,而不是其他不使用任何注释的 servlet

所以我的两个问题:

  1. 我是否遗漏了什么,以便我的 Web 应用程序实际上通过 JMX 发送指标数据?

  2. 如果我希望带有 spring 注释的代码开始报告到 CSV 文件或石墨,我需要添加什么?

令人惊讶的是,我在网络上或 codahale 的文档中没有找到完整的示例。

4

1 回答 1

-1

不幸的是,指标仅基于 AOP,因此它只能用于公共方法

于 2014-08-08T08:57:13.410 回答