2016-03-15 152 views
1

我有一个seriesMetric和一个constantLine(目标/ SLA)。我希望能够“计数”线下的发生率,并将总数除以SLA中的%。我知道如何做第二部分,使用asPercent,但我无法弄清楚如何计算Grafana中线下的出现次数。没有countif功能。我尝试了currentBelowaverageBelow,但我的图表中没有出现任何东西(两行消失)。我认为我做错了什么。如何在Grafana中创建SLA图表?

我认为这是一个很常见的用例,我假设有人已经这样做了。理想情况下,%会放在图表旁边的单个状态面板中。

(我们使用Gafana石墨)

Sample SLA Chart

回答

0

根据你究竟你的SLA将测量,这可以在任意数量的方式来解决。 这个问题的一般答案以及我在项目中解决它的方式是让外部脚本从Graphite中抽取一些相关度量值,然后简单地将结果返回(使用像xxsla.satisfied这样的新键)作为纯粹的二元结果;无论是0还是1.然后,只需简单地平均一系列值并以百分比形式显示即可。 因为最终你要么符合SLA要么你不符合。如果你想更深入地挖掘,你总是可以像图片中那样看图。

2

我们终于明白了这一点,感谢一位同事。以下是我们的工作原理:

"A", "target": "averageSeries(stats.timers.rails.production-aws.rack.*.util.mean)" 

这是主要指标。

"B", "target": "removeAboveValue(#A,25)" 

这将删除超出SLA的值。我们的SLA是利用率应该是< 25%。

"C", "target": "alias(transformNull(asPercent(#B), 0), '% within SLA')" 

asPercent将自己的系列划分成1(和Nulls)。

transformNull使用removeAboveValue函数替换空值为0。

最后,在轴下&网格>图例>单击平均并显示2个小数。这样做会为您查看的任何时间范围提供平均SLA达标。

这是结果。 SLA Chart