在 Yammer 中获取经过的时间

Get time Elapsed in Yammer

我正在尝试获取函数调用经过的时间并将它们获取到 JMX 端口。我发现 yammer 适合这个。虽然计数器很简单,但使用计时器会让人感到困惑。

 private Timer executeTimer;
 TimerContext timerContext;
 obj.timerContext = obj.executeTimer.time();
 .
 .
 .
 public void f()
   {
      //start timer
      f2();
      //stop timer
      //display time difference
   }

我知道这对你们中的一些人来说太琐碎了,请耐心等待。我是 yammer 的新手,发现它混淆了要使用的函数和 class。另外,如果您能告诉我何时使用 TimerContext 以及何时使用 Timer,那将非常有帮助。

首先,您需要初始化ExecuteTimer实例。

executeTimer=Metrics.newTimer(CLASSNAME.class, "Metrics_Name", TimeUnit.MILLISECONDS,TimeUnit.SECONDS);

之后,这样做:-

 private Timer executeTimer;
 TimerContext timerContext;
 obj.timerContext = obj.executeTimer.time();
 .
 .
 .
 public void f()
   {
       timerContext = executeTimer.time();//start timer
       f2();
       timerContext.stop();//stop timer
       //All stats are sent to JMX port by default. You can open console to view them
   }

为了深入了解这些东西,这里是实际代码。

https://github.com/dropwizard/metrics/blob/master/metrics-core/src/main/java/com/codahale/metrics/Timer.java