Java度量标准示例代码
我是度量的新手,我不明白为什么我会得到这个输出,请有人解释一下。提前谢谢Java度量标准示例代码,java,metrics,Java,Metrics,我是度量的新手,我不明白为什么我会得到这个输出,请有人解释一下。提前谢谢 package sample; import com.codahale.metrics.*; import java.util.concurrent.TimeUnit; public class GetStarted { static final MetricRegistry metrics = new MetricRegistry(); public static void main(Str
package sample;
import com.codahale.metrics.*;
import java.util.concurrent.TimeUnit;
public class GetStarted {
static final MetricRegistry metrics = new MetricRegistry();
public static void main(String args[]) {
startReport();
Meter requests = metrics.meter("requests");
requests.mark();
wait5Seconds();
}
static void startReport() {
ConsoleReporter reporter = ConsoleReporter.forRegistry(metrics)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build();
reporter.start(1, TimeUnit.SECONDS);
}
static void wait5Seconds() {
try {
Thread.sleep(5*1000);
}
catch(InterruptedException e) {}
}
}
输出:
12/18/15 12:01:15下午===========================================================
--仪表----------------------------------------------------------------------
请求
计数=1
平均速率=1.00事件/秒
1分钟速率=0.00事件/秒
5分钟速率=0.00事件/秒
15分钟速率=0.00事件/秒
12/18/15 12:01:16下午===========================================================
--仪表----------------------------------------------------------------------
请求
计数=1
平均速率=0.50事件/秒
1分钟速率=0.00事件/秒
5分钟速率=0.00事件/秒
15分钟速率=0.00事件/秒
12/18/15 12:01:17下午===========================================================
--仪表----------------------------------------------------------------------
请求
计数=1
平均速率=0.33事件/秒
1分钟速率=0.00事件/秒
5分钟速率=0.00事件/秒
15分钟速率=0.00事件/秒
12/18/15 12:01:18下午===========================================================
--仪表----------------------------------------------------------------------
请求
计数=1
平均速率=0.25事件/秒
1分钟速率=0.00事件/秒
5分钟速率=0.00事件/秒
15分钟速率=0.00事件/秒
12/18/15 12:01:19下午===========================================================
--仪表----------------------------------------------------------------------
请求
计数=1
平均速率=0.20事件/秒
1分钟速率=0.00事件/秒
5分钟速率=0.00事件/秒
15分钟速率=0.00事件/秒创建注册表后,您以1秒的间隔启动报告程序。因此,每秒钟,您的console reporter都将输出到console 您已经选择了仪表类型度量,它将给出计数(此事件发生的次数)和平均速率(平均速率)。其他速率将为零,因为该度量的单个时间单位尚未结束。你只运行了5秒钟的程序,所以你不会得到1分钟的速度。让它运行1分钟以上,您可以看到其他具有某些值的速率
requests.mark();
上面的行用于标记事件的发生。当您调用它时,将触发一个度量事件。由于您不再在程序中调用此方法,因此计数保持为1
平均速率为(从应用开始的总计数)/(从应用开始的总时间,以秒为单位)。注意:这里是秒。记者每一秒都在印刷。当计数=1时,第1秒速率=(1计数)/(1秒)。第二秒速率=(1计数)/(2秒)=0.5,第三秒速率=(1计数)/(3秒)=0.33
1分钟速率为(过去1分钟内的总计数)/(60秒)。1分钟在这里是零,因为还有1分钟没有过去。对于以下大间隔率也是如此
5分钟速率为(过去5分钟内的总计数)/(5*60秒)。5分钟=5*60秒
您可能希望线程处于休眠状态,因此日志中的间隔为5秒。但记者的思路不同。因此,在这里,睡眠5秒没有任何价值,除非让程序运行到5秒。创建注册表后,您以1秒的间隔启动报告程序。因此,每秒钟,您的console reporter都将输出到console 您已经选择了仪表类型度量,它将给出计数(此事件发生的次数)和平均速率(平均速率)。其他速率将为零,因为该度量的单个时间单位尚未结束。你只运行了5秒钟的程序,所以你不会得到1分钟的速度。让它运行1分钟以上,您可以看到其他具有某些值的速率
requests.mark();
上面的行用于标记事件的发生。当您调用它时,将触发一个度量事件。由于您不再在程序中调用此方法,因此计数保持为1
平均速率为(从应用开始的总计数)/(从应用开始的总时间,以秒为单位)。注意:这里是秒。记者每一秒都在印刷。当计数=1时,第1秒速率=(1计数)/(1秒)。第二秒速率=(1计数)/(2秒)=0.5,第三秒速率=(1计数)/(3秒)=0.33
1分钟速率为(过去1分钟内的总计数)/(60秒)。1分钟在这里是零,因为还有1分钟没有过去。对于以下大间隔率也是如此
5分钟速率为(过去5分钟内的总计数)/(5*60秒)。5分钟=5*60秒
您可能希望线程处于休眠状态,因此日志中的间隔为5秒。但记者的思路不同。因此,在这里,睡眠5秒没有任何价值,除非让程序运行到5秒。你能分享一下你对输出的期望吗?你是否对这样一个事实感到困惑:一方面你看到“请求计数=1”,另一方面你的一些速率是
0.00
?看一看,它已经使计数增加了1。@RajnikantPatel我正在新学习。我只是想了解我是如何得到这个输出的。@Marged是的。还有wat是1分钟速率和15分钟速率。@Marged你能帮我分享一些教程链接或一些学习度量的资源吗。你能分享一下你对输出的期望吗?一方面你看到“请求计数=1”,另一方面你的一些速率是0.00
?看一看,它已经使计数增加了1。@RajnikantPatel我正在新学习。我只是想了解我是如何得到这个输出的。@Marged是的。还有1分钟和15分钟的费率。@Marged你能帮我分享一些教程链接或一些学习指标的资源吗?你能接受吗