我有成功和失败指标如下:
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允许的最大行数,并且我想在同一图表上绘制它们
2)如果有办法我可以通过Grafana函数来实现吗?
提前致谢!
答案 0 :(得分:3)
在Graphite中执行此操作的方法是使用子查询:
使用sumSeriesWithWildcard函数对多个系列求和以获得#A中的总数:
https://stackoverflow.com/a/12837800/22688
有关更多信息,请参阅AsPercent函数,阅读我的博文。我在最后描述了如何使用AsPercent函数:
如果asPercent函数不起作用(取决于您使用的Graphite的版本和变体),您可以使用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