2016-08-01 43 views
1

我想將StepCounter從基於秒的速率轉換爲每分鐘速率(我們有一臺每分鐘運行一次的顯示器)。在Netflix伺服器中製作分鐘速率公制

當我嘗試將它們從每秒1次切換到每60秒一次時,它將採用增量值並將其除以60並創建每秒的速率。

任何人都知道如何通過Netflix伺服包公開一個JMX值來做一個60s的度量呢?有CounterToRateMetricTransform,但沒有關於如何將計數器度量轉換爲速率的示例。

回答

0

StepCounter是個人指標,但CounterToRateMetricTransform應用於MetricObserver,並返回一個新的觀察者認爲觀察變形爲速率

例如所有計數器創建觀察計數器隨着利率的觀察員,並把它添加到pollrunnable任務

MetricObserver observer = new CloudWatchMetricObserver(...) // existing observer 
MetricObserver transformedObserver = new CounterToRateMetricTransform(observer, 60, TimeUnit.SECONDS); 
PollRunnable task = new PollRunnable(..., Immutable.listOf(transformedObserver)); 

不幸的是,這也變換返回每秒的速度(見CounterToRateMetricTransform.computeRate)

有沒有辦法得到一個每分鐘根據我看到的,您需要實現自己的指標(如StepCounter)或者在觀察者(如CounterToRateMetricTransform)上實現自己的轉換,具體取決於您的用例。

最好的方法可能就是採取每秒的速度,並在監測系統中乘以60,而不是改變報告