我对java和指标非常陌生。
有人可以帮助我理解下面的问题,也许还可以清除dropwizard和yammer指标之间的情况
(例如,如果我在谷歌中输入yammer.metrics
所有文档指向dropwizard)?
我想使用yammer指标实现计时器,但是,我发现这些示例在网上令人困惑。
例如,使用yammer指标我可以执行以下操作:
import com.yammer.metrics.Metrics;
import com.yammer.metrics.core.Meter;
import com.yammer.metrics.core.Timer;
...
public static Timer responses = Metrics.defaultRegistry().newTimer(myClass.class, "timer-name");
然而,这样做我不知道如何使用计时器,因为我能找到的所有文件都给出了以下(dropwizard)示例:
final Timer.Context context = responses.time();
try {
// intense code;
return "OK";
} finally {
context.stop();
}
这不起作用,因为Yammer Timer不支持上下文只有Dropwizard Timer。为了使上述代码起作用,我需要执行以下操作;
import com.codahale.metrics.*;
import java.util.concurrent.TimeUnit;
private final static MetricRegistry metrics = new MetricRegistry();
private final static Timer responses = metrics.timer(name(myClass.class, "timer-name"));
现在我有一个支持Context的Timer。
我们所有的代码都会导入com.yammer.metrics,如果可能的话,我想继续使用它。那么如何使用responses.oneMinuteRate()
记录我可以获得的事件,例如 yammer.Metrics
?
答案 0 :(得分:2)
com.yammer.metrics是旧图书馆。
com.yammer.metrics:metrics-core:2.2.0 (up to 2012 year)
他们在2012年有重大举措:
com.codahale.metrics:metrics-core:3.0.* (2013-2014 year)
所有打包的都重命名为com.codahale.metrics
然后他们再次将文物移到:
io.dropwizard.metrics:metrics-core:3.1.*
现在不支持com.yammer.metrics,它不能向后兼容新版本