代码之家  ›  专栏  ›  技术社区  ›  Scott

石墨:按节点碎片分组

  •  2
  • Scott  · 技术社区  · 10 年前

    如果我的指标命名为:

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

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

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

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

    2 回复  |  直到 9 年前
        1
  •  4
  •   Scott    9 年前

    这可以通过使用aliasSub将“-”转换为“.”实现,如下所示,适用:

    aliasByNode(seriesName, 2)
    

    输出“a-CBA-1”。然后应用:

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

    输出“a.CBA.1”。

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

    groupByNode(seriesName, 1, sum)
    
        2
  •  0
  •   dukebody    10 年前

    您使用的表达式匹配的每个序列都将单独呈现。因此,如果您这样做:

    statsite.gauges.a-*-*.thing
    

    将显示与该模式匹配的所有序列。有一些功能,如 sumSeriesWithWildcards 您只能使用它来执行与特定位置相关的聚合,但位置是由点分隔的,所以我认为Graphite无法实现您想要的功能。

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