Graphite 如何在Grafana中创建SLA图表?

Graphite 如何在Grafana中创建SLA图表?,graphite,grafana,Graphite,Grafana,我有一个seriesMetric,还有一个constantLine(目标/SLA)。我希望能够“计算”线下的发生率,然后除以总数,得到SLA内的百分比。我知道如何使用asPercent完成第二部分,但我不知道如何计算Grafana中行下的出现次数。没有countif功能。我尝试了下面的current和下面的average,但是我的图表上什么也没有出现(两行消失了)。我想我做错了什么 我认为这是一个非常常见的用例,我假设有人这样做了。理想情况下,%将放在图表旁边的singleStat面板中 (我们

我有一个
seriesMetric
,还有一个
constantLine
(目标/SLA)。我希望能够“计算”线下的发生率,然后除以总数,得到SLA内的百分比。我知道如何使用
asPercent
完成第二部分,但我不知道如何计算Grafana中行下的出现次数。没有
countif
功能。我尝试了下面的
current
和下面的
average
,但是我的图表上什么也没有出现(两行消失了)。我想我做错了什么

我认为这是一个非常常见的用例,我假设有人这样做了。理想情况下,%将放在图表旁边的singleStat面板中

(我们将Gafana与石墨一起使用。)


根据您的SLA的具体衡量标准,可以通过多种方式解决这一问题。 这个问题的一般答案,也是我在项目中解决这个问题的方法,是让一个外部脚本从Graphite中提取一些相关的指标,然后简单地将结果作为纯二进制结果推回去(使用一个新的键,如x.x.sla.suited);0或1。然后,只需对序列的值求平均值并以百分比形式显示即可。
因为最终,您要么满足SLA,要么不满足SLA。如果你想更深入地挖掘,你可以随时查看图片中的图表。

多亏了一位同事,我们终于找到了答案。以下是对我们有效的方法:

"A", "target": "averageSeries(stats.timers.rails.production-aws.rack.*.util.mean)"
这是主要指标

"B", "target": "removeAboveValue(#A,25)"
这将删除SLA之外的值。我们的SLA是利用率应该是
"C", "target": "alias(transformNull(asPercent(#B), 0), '% within SLA')"