Java(可选.Net)中收集应用程序指标

12

我希望能够动态地从我的应用程序中公开各种基于时间和计数的指标。 Perf4j对于时间方面效果很好,但我不知道它是否可以直接提供计数方面的功能。

例如,我可以这样做:

StopWatch dbWriteTime = new Log4JStopWatch("ServiceName:DBWrite");
dbWriteTime.start();
... execute DB stuff here
dbWriteTime.stop();

你可以设置这些指标以便在任何间隔时间内记录它们,而且它做得非常好。但有时我想做像这样的事情:


Metric metric = new Metric("ServiceName:OrdersPerRequest");
metric.put(50);

我可以调用perf4j计时器库50次,但这是一种可怕和低效的方法来在日志中获取我的度量。有没有人知道一个好的开源库可以做两种类型的度量?此外,如果它可以监视输出的指标日志并将它们转储到集中式数据库,那就太棒了。另外,如果你知道一个好的开源Web前端来绘制和显示这种数据,我会非常感兴趣。似乎很多人之前都需要这样的东西。

2个回答

22

我有一个原始的问题,为什么我们需要使用库来测量这些?使用库中的计数器与使用整数变量并递增它有何不同? - AnOldSoul

9
我建议你查看Coda Hale的演讲和他的指标,从Java角度来看应该已经涵盖了你所需的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接