2017-06-20 32 views
0

我正在尋找類似sumSeriesWithWildcards的東西,但是最大/最小值。我的意思是,計算總和在所需字段上的總和,它應該計算最小值或最大值。我很驚訝沒有在Graphite庫中找到maxSeriesWithWildcards調用。 如果它不存在,我怎麼能模擬它?帶通配符的系列中的石墨最大數

感謝, 問候, 索林

回答

1

您可以使用groupByNode。它需要指定節點與指定功能進行分組的指標列表 - 可以使用任何功能。

例如:

test.region-1.server-1 
test.region-1.server-2 
test.region-1.server-3 
test.region-1.server-4 
test.region-1.server-5 

test.region-2.server-1 
test.region-2.server-2 
test.region-2.server-3 
test.region-2.server-4 
test.region-2.server-5 

test.region-3.server-1 
test.region-3.server-2 
test.region-3.server-3 
test.region-3.server-4 
test.region-3.server-5 

讓每個區域計算一下,您可以使用:

sumSeriesWithWildcards(test.*.*, 2) 

你可以用groupByNode做同樣的*:

groupByNode(test.*.*, 1, 'sumSeries') 

注意sumSeriesWithWildcards中的節點號是你想要求和的那個,但是在groupByNode您必須指定要分組的節點。此外,groupByNode中的標籤將更短 - 僅限分組節點。

所以......到了這一點:

  • 分鐘:groupByNode(test.*.*, 1, 'minSeries')
  • 最大:groupByNode(test.*.*, 1, 'maxSeries')
  • 平均:groupByNode(test.*.*, 1, 'averageSeries')

還有groupByNodes,可以提供更多的節點作爲重大。

+0

非常感謝,我正在用groupByNode進行實驗。然而,有一個問題是結果會刪除查詢的一部分,即在上面的示例中,除了編號1(您合併的「region-X」)之外,您將刪除所有字段。所以如果你需要的話,你必須重新構建原始查詢。 謝謝, –

+0

只是使用groupsByNodes與儘可能多的節點,你想保持例如'groupByNodes(test。*。*,'minSeries',0,1)' – kwarunek

+0

我在文檔中找不到groupByNodes:https://graphite.readthedocs.io/en/0.9.10/functions.html;你從哪裏得到的? –

0

我不知道爲什麼沒有人建議maxSeries功能,它採用通配符系列列表。