石墨:按节点片段分组
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)
如果我有指标命名为:
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)