2015-01-26 36 views
0

我在我的Scala應用程序中使用了Codahale指標,但似乎沒有看到獲取定時操作的最後一個值的方法。我可以得到平均值,中位數和百分位數 - 所有來自直方圖的好東西 - 但我只想知道最後一次手術花了多長時間!如何從Codahale度量標準計時器獲取上次使用時間?

查看快照中的條目零並將其從納秒到毫秒的值縮放?這似乎並不正確...

我一定會錯過顯而易見的!

t.time { 

     iService.availCheck(q) 

    } match { 

     case ReturnInfo(Some(true)) => 

     // The HUB says TRUE, this name is available. That's gold. 

     logger.debug("Avail check for (" + q + ") HUB TRUE: " + (t.snapshot.getValues()(0)/100000.0).toString + "ms") 

     Ok(Some(true)) 
    } 

回答

0

找到了答案 - 嵌入在t.time調用中的stop()函數返回經過的時間。我只需重構我的代碼即可訪問它。如果沒有消耗,它會丟失。噗。

去圖;)

0

如果你需要的是一個定時的最後一個值,我創造了這個小包裝類

public class GaugeTimer extends Timer implements Gauge<Long> { 

    private Long lastValue = 0L; 

    @Override 
    public void update(long duration, TimeUnit unit) { 
    lastValue = unit.toNanos(duration); 
    } 

    @Override 
    public Long getValue() { 
    return lastValue; 
    } 
} 

使用定時器和以前一樣改變

lastValue = unit.toNanos(duration); 

任何時間單位你想要記錄的價值。

相關問題