2012-10-22 90 views
8

我想使用statsd和石墨來繪製數據圖。我有一個簡單的計數器,我將它增加1,然後當我繪製一天中計數器的值時,我會看到奇怪的值,如0.09,作爲我圖中的峯值(請參閱http://i.stack.imgur.com/o4gmz.png使用長時間時,Graphite不能正確繪製數值?

此圖應爲顯示2登錄,但它顯示0.09。如果我將時間範圍從1天更改爲最後15分鐘,則它正確顯示了兩次登錄(請參閱http://i.stack.imgur.com/23vDJ.png

我已經在storage-schemas.conf中設置了最好的保留時間,增量爲10s:

retentions = 10s:7d,1m:21d,24h:5y 

我建立了我的存儲aggregation.conf文件,總結計數:

[sum] 
pattern = \.count$ 
xFilesFactor = 0 
aggregationMethod = sum 

(而且,我可以告訴大家,是的,這是一個.Count之間)。

如果我盡我與&rawData=true網址,然後在任何情況下,我看到一些None S,一些0.0 S,和一對一些0.0 S離開1.0秒。我從來沒有看到這些分數值以某種方式顯示在圖表上。所以...這是一個錯誤?難道我做錯了什麼?

+2

啊哈!有一個bug可以打開: https://bugs.launchpad。net/graphite/+ bug/850475 看起來Graphite會將統計數據聚合在一起,當數據點數量超過圖形寬度中的像素數量時。你可以通過總結功能來解決這個問題: &target = summarize(counter.login,「5 min」,「sum」) –

+0

Jason,同樣指標的竊竊私語是什麼?進入石墨主機並運行:whisper-fetch --pretty yourfile.wsp – Valor

+0

有沒有人用石墨發現這個問題的解決方案?我有同樣的問題。 – rakemous

回答

2

還有鞏固通過函數告訴石墨如果沒有足夠的像素來準確繪製所有內容,該怎麼做。默認情況下,它使用「平均」功能,因此在時間範圍更大時會出現奇怪的結果。從文檔Here摘錄:

當圖形繪製,其中以像素爲單位的圖形大小的寬度比要被繪製的數據點的數量少 ,石墨 合併的值,以防止線重疊。 consolidationateBy()函數將合併函數從 默認值'average'更改爲'sum','max'或'min'中的一個。這是 在銷售圖中特別有用,其中小數值不會使 有意義,並且合併值的「總和」是合適的。

另一個可能有用的功能是hitcount。從here短摘錄爲何有用:

此功能等綜述(),不同之處在於它爲不同的時間尺度自動補償 (使得類似的曲線圖使用 結果要麼細粒或粗粒記錄)並且 優雅地處理很少發生的事件。

我花了一些時間撓我的頭爲什麼我的計數器分數爲時間範圍比幾小時長,當我的聚合規則是最大。這非常令人困惑,特別是在開始玩單個計數器時,看看是否一切正常。檢查rawData是調試健全性檢查的一個很好的方法;)

相關問題