2017-06-20 23 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功能,它采用通配符系列列表。