2016-03-15 40 views
1

我有一個seriesMetric和一個constantLine(目標/ SLA)。我希望能夠「計數」線下的發生率,並將總數除以SLA中的%。我知道如何做第二部分,使用asPercent,但我無法弄清楚如何計算Grafana中線下的出現次數。沒有countif功能。我嘗試了currentBelowaverageBelow,但我的圖表中沒有出現任何東西(兩行消失)。我認爲我做錯了什麼。如何在Grafana中創建SLA圖表?

我認爲這是一個很常見的用例,我假設有人已經這樣做了。理想情況下,%會放在圖表旁邊的單個狀態面板中。

(我們使用Gafana石墨)

Sample SLA Chart

回答

0

根據你究竟你的SLA將測量,這可以在任意數量的方式來解決。 這個問題的一般答案以及我在項目中解決它的方式是讓外部腳本從Graphite中抽取一些相關度量值,然後簡單地將結果返回(使用像xxsla.satisfied這樣的新鍵)作爲純粹的二元結果;無論是0還是1.然後,只需簡單地平均一系列值並以百分比形式顯示即可。 因爲最終你要麼符合SLA要麼你不符合。如果你想更深入地挖掘,你總是可以像圖片中那樣看圖。

2

我們終於明白了這一點,感謝一位同事。以下是我們的工作原理:

"A", "target": "averageSeries(stats.timers.rails.production-aws.rack.*.util.mean)" 

這是主要指標。

"B", "target": "removeAboveValue(#A,25)" 

這將刪除超出SLA的值。我們的SLA是利用率應該是< 25%。

"C", "target": "alias(transformNull(asPercent(#B), 0), '% within SLA')" 

asPercent將自己的系列劃分成1(和Nulls)。

transformNull使用removeAboveValue函數替換空值爲0。

最後,在軸下&網格>圖例>單擊平均並顯示2個小數。這樣做會爲您查看的任何時間範圍提供平均SLA達標。

這是結果。 SLA Chart