石墨:按节点片段分组

Graphite: group by node fragment

如果我有指标命名为:

statsite.gauges.a-ABC-1.thing
statsite.gauges.a-ABC-2.thing
statsite.gauges.a-CBA-1.thing

是否可以按特定片段对这些指标进行分组,例如:

statsite.gauges.a-{groupByThisPart}-*.thing

这样我就可以将它们输入到另一个函数中,例如 sumSeries。

与您使用的表达式匹配的每个系列都将单独呈现。所以如果你这样做:

statsite.gauges.a-*-*.thing

将显示与该模式匹配的所有系列。有一些函数,例如 sumSeriesWithWildcards,您可以使用它们来执行仅针对特定位置的聚合,但位置由点分隔,所以我认为您不能用 Graphite 做您想做的事。

我认为最好的选择是重命名您的指标,这样您就可以用点分隔要分组的每个部分。

这可以通过使用aliasSub将'-'转换为'.'来实现,如下,适用:

aliasByNode(seriesName, 2)

输出 'a-CBA-1'。然后申请:

aliasSub(seriesName, \d{4})-(\d{4})-(\w{5}, ..)

输出 'a.CBA.1'.

然后您可以使用 groupByNode 对第二个片段的所有部分求和。

groupByNode(seriesName, 1, sum)