如何在Grafana中创建SLA图表?

时间:2016-03-15 00:34:38

标签: graphite grafana

我有seriesMetricconstantLine(目标/ SLA)。我希望能够“计算”线下方的出现次数,并除以总数以获得SLA中的%。我知道如何使用asPercent来完成第二部分,但我无法弄清楚如何计算Grafana中线下面的出现次数。没有countif功能。我尝试了currentBelowaverageBelow,但我的图表上没有任何内容(两条线消失了)。我认为我做错了什么。

我认为这是一个非常常见的用例,我认为有人这样做了。理想情况下,%将位于图表旁边的单个“统计”面板中。

(我们使用Gafana和Graphite。)

Sample SLA Chart

2 个答案:

答案 0 :(得分: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函数进行操作,将Null替换为0。

最后,在Axis&amp;网格&gt;传说&gt;单击“平均值”和“显示2个小数”。这样做可以在您查看的任何时间范围内提供平均SLA达标。

结果如下。 SLA Chart

答案 1 :(得分:0)

根据您的SLA测量的具体情况,可以通过多种方式解决。 这个问题的一般答案,以及我在项目中解决它的方式,是让外部脚本从Graphite中提取一些相关指标,然后简单地推回结果(使用像xxsla.satisfied这样的新密钥)作为纯二进制结果; 0或1.然后,只需平均系列的值并以百分比形式显示即可。 因为最后,你要么遇到SLA,要么就是没有。如果你想深入挖掘,你可以随时查看图中的图形。