【问题标题】:Can I group graphite results by regex?我可以通过正则表达式对石墨结果进行分组吗?
【发布时间】:2016-08-27 00:41:00
【问题描述】:

我使用石墨已经有一段时间了,以便为我们的后端 pythonic 程序提供动力。作为我使用它的一部分,我需要使用通配符对不同的指标求和(使用 sumSeries)。

问题是,我需要根据模式对它们进行分组;假设我有以下一系列指标名称:

group.*.item.*

我需要对给定组的所有项目的值求和(意思是:group.1.item.*group.2.item.* 等)

不幸的是,我事先不知道现有组值的集合,所以我现在要做的是查询metrics/index.json,解析列表,并生成所需的查询(手动为每个组创建sumSeries(group.NUMBER.item.*) NUMBER 我在指标索引中找到)。

我想知道是否有办法让石墨为我做这件事,并节省第一次往返,因为通信和预处理成本很高(占整个过程一半以上的时间)

提前致谢!

【问题讨论】:

    标签: python graphite


    【解决方案1】:

    如果您想为每个组单独设置一行,您可以使用 groupByNode 函数。

    groupByNode(group.*.item.*, 1, "sumSeries")
    

    其中“1”是您选择的节点(索引为 0),“sumSeries”是您要为每个组提供的函数。

    您可以在此处阅读更多信息:http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.groupByNode

    如果您想将第二个节点限制为仅数值,您可以使用字符范围。您可以通过在方括号 [...] 中指定范围来执行此操作。字符范围由 2 个字符表示,中间用破折号 (-) 分隔。

    group.[0-9].item.*
    

    您可以在此处阅读更多相关信息: http://graphite.readthedocs.io/en/latest/render_api.html#paths-and-wildcards

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      相关资源
      最近更新 更多