2017-03-07 287 views
0

我有成功和失败的指标如下:如何绘制Grafana的百分比?

A.B.p1.success 
A.B.p3.success 
A.B.p4.success 
... 

A.B.p1.failure 
A.B.p2.failure 
A.B.p4.failure 
... 

我总共有〜30人,而我想告诉每个人的成功率计算方法是:

alias(asPercent(A.B.p1.success,sumSeries(A.B.p1.success,A.B.p1.failure)), 'p1') 

这个问题我有:

1)如果我硬代码的每一行中的所有的人,它超过了最大行Grafana允许,和d我想他们绘制在同一个图形

2)如果有办法,我可以通过Grafana功能做到这一点?

提前致谢!

回答

0

在石墨做到这一点的方法是使用一个子查询:

  1. 在Grafana添加两个查询,查询#A总量和查询#B的成功率
  2. 隐藏查询#A
  3. 通行证查询#A作为查询#B的参数到AsPercent功能

enter image description here

使用sumSeriesWithWildcard函数来汇总多个系列,以获得总在#A:

https://stackoverflow.com/a/12837800/22688

更多,在AsPercent功能阅读本我的博客文章。我介绍了如何使用AsPercent功能结尾:

https://danlimerick.wordpress.com/2017/01/29/graphite-and-grafana-how-to-calculate-percentage-of-totalpercent-distribution/

如果asPercent功能不起作用(取决于哪个版本和石墨你正在使用的变体),可以实现与mapSeries相同的结果和reduceSeries(也在博客文章):

aliasByNode(reduceSeries(mapSeries(groupByNodes(snap.gceprod.*.intel.docker.kube-system.*.snap.stats.filesystem.*.{usage,capacity}, 'maxSeries', 2, 11), 0), 'asPercent', 1, 'usage', 'capacity'), 0)

我在这里回答了类似的问题,如果你需要另外一个例子:https://stackoverflow.com/a/42714756/22688

+0

一个可以使用reduceSeries + mapSeries与asPercent,但仍然据我了解,它需要具有总值的指标。 OP只有成功和失败 - 不是它们的总和。 – kwarunek

+0

也许我真的不明白这个问题。 OP能不能仅仅用OP可以在查询#A中完成的groupByNode函数来计算成功和失败系列? –

+0

@kwarunek多思考一下,sumSeriesWithWildcard应该做的伎俩来获得总数。 –