这是我发现的一些代码,在这里我们需要测量每个查询的查询执行时间?
为了测量metricRegistry.timer
被使用,但是它如何测量它在哪个时间测量,因为我找不到任何一行代码来定义停止时间?
有人可以帮助我解决在互联网上找不到任何东西吗?
try (PreparedStatement ps = connection.prepareStatement(QUERY.SQL())) {
try (
Timer.Context ignored = metricRegistry.timer(name("query", QUERY.NAME())).time();
ResultSet rs = ps.executeQuery()) {
if (rs.next()) {
successCounter.inc();
} else {
failedCounter.inc();
}
}
}
答案 0 :(得分:0)
Timer.Context
是Closeable
,这意味着当您像在此处那样在try
块中使用它时,当{{ 1}}块已退出。此外,根据close()
(https://metrics.dropwizard.io/3.1.0/apidocs/com/codahale/metrics/Timer.Context.html)的Javadocs,调用try
就像调用Timer.Context
一样。因此,基本上,close()
块退出时会在计时器上调用stop()
。