graphite - 对多个指标求和而不对通配符求和?

标签 graphite grafana

我有以下指标:

  • folsomite.<host>.cache.hit1
  • folsomite.<host>.cache.hit2
  • folsomite.<host>.cache.miss1
  • folsomite.<host>.cache.miss2
  • folsomite.<host>.cache.miss3

  • (我正在使用的缓存库具有2种命中率:第一种和第二种机会,以及3种未命中)

    我想计算(hit1 + hit2) / (miss1 + miss2 + miss3)。我以为我将从计算(hit1 + hit2)开始,但是如果我将sumSeries用作sumSeries(folsomite.*.cache.hit*),那么它也将求和<host>值。

    如何在某些通配符上求和多个指标,而又不对其他通配符求和?还是在保留通配符的同时专门添加两个(或多个指标)?

    而且,这样做之后,我可以将一个(求和的)结果除以另一个吗?

    编辑:我实际上是在使用grafana渲染图形。这有什么区别吗?

    最佳答案

    注意我还没有解决这个问题,但是信息可能会有所帮助。假设 Graphite 中有以下数据

    folsomite.A.cache.hit1
    folsomite.B.cache.hit1
    folsomite.A.cache.hit2
    folsomite.C.cache.hit1
    folsomite.B.cache.hit2
    folsomite.A.cache.miss1
    folsomite.B.cache.miss1
    folsomite.A.cache.miss2
    folsomite.A.cache.miss3
    folsomite.C.cache.miss2
    folsomite.B.cache.miss2
    

    要按一个通配符分组,应使用groupByNode,这样
    groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries')
    

    将输出指标ABC和总匹配数。由于未命中的groupByNode将返回相同的度量名称,因此我们应该以某种方式对其进行区分。使用别名Sub 。现在我们有了:
    aliasSub(groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries'), '(.*)', '\1.hit')
    aliasSub(groupByNode(folsomite.*.cache.miss*, 1, 'sumSeries'), '(.*)', '\1.miss')
    

    得到的指标是A.hitB.hitC.hitA.missB.missC.miss

    接下来,我们可以尝试reduceSeries(这对我不起作用,我缺少了:))。由于减少了要处理的系列的期望列表,因此需要通过groupmapSeries进行组合,因此
    group(
      aliasSub(groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries'), '(.*)', '\1.hit'), 
      aliasSub(groupByNode(folsomite.*.cache.miss*, 1, 'sumSeries'), '(.*)', '\1.miss')
    )
    

    将总共​​输出未命中和命中系列。现在减少
     reduceSeries(
       group(
         aliasSub(groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries'), '(.*)', '\1.hit'),
         aliasSub(groupByNode(folsomite.*.cache.miss*, 1, 'sumSeries'), '(.*)', '\1.miss')
       ), 'divideSeries', 1, 'hit', miss')
    

    就这样。也许以后我会尝试不同的方法,但是...希望至少能提供一些提示。

    而且由于grafana能够设置带有变量的模板,因此可以使用它,但是我必须深入研究此功能。

    关于graphite - 对多个指标求和而不对通配符求和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34719903/

    相关文章:

    Graphite ,使用正则表达式来选择目标,或者替代方案

    java - Kubernetes、Java 和 Grafana - 如何只显示正在运行的容器?

    具有自定义 URL 的 Azure 托管 Grafana

    influxdb将不同系列但相同时间间隔的grafana图的第一个值度量相加

    metrics - 当 Graphite 的 Carbon 聚合器可以完成同样的工作时,为什么还要使用 statsd?

    c - 虽然 true 不起作用

    influxdb - 当 select count 没有结果时返回 0 而不是 N/A (null)

    带有 InfluxDB : Ad hoc filter is always empty 的 Grafana

    graphite - Graphite /格拉法纳初始值的单统计百分比变化?

    Graphite ,如果我选择更宽的时间范围,数据点就会消失