场景

在使用Grafana配置图表看板时,我们可能需要对多个查询条件筛选出来的结果进行计算,把计算结果生成最终的图表。例如,我们想制作一个应用崩溃率的图表,那么步骤应该如下:

  1. 查询应用启动的数据集合A
  2. 查询应用崩溃的数据集合B
  3. 通过 (B/A)*100 来生成集合C
  4. 将集合C的数据配置成看板

解决方案

在Grafana v7之后的版本中,我们可以使用Transform功能来对两个query进行计算,具体方法可参考文章:。

但是Grafana在 v7之前的版本并没有这个功能,因此我们需要使用插件来实现。这里介绍两块可以实现该效果的插件

  1. MetaQueries
  2. Percent+

MetaQueries

首先按照插件官网的教程安装好插件。

然后在数据源设置界面增加一个MetaQueries数据源并保存,如下图所示:

grafana alert 详解 grafana query_Grafana


接着在图标配置界面,我们创建一个以时间为X轴的折线图,并创建两个query:CRASH和APPLAUNCH。这两个query都是从真正的数据源拿数据的,如下图所示:

grafana alert 详解 grafana query_Web后台_02


接着点击‘Add Query’按钮创建一个query C,以MetaQueries作为数据源并选择“Arithmetic”类型,该类型允许我们对指定的query进行四则运算。我们在query C的Expression中填入计算崩溃率的公式,如下图所示:

grafana alert 详解 grafana query_Web_03


现在就可以在图表中看到相关的数据了,如下图所示:

grafana alert 详解 grafana query_Web_04

Percent+

首先按照插件官网的教程安装好插件,在创建图表时选择创建一个Percent+图表。

接着创建两个query A和B,并把要作为分子的query结果设置别名为‘up’。

grafana alert 详解 grafana query_grafana alert 详解_05

接着在插件的配置中,在percent of字段填写分子query结果的别名,over填写分母即可。

最终效果如下图所示:

grafana alert 详解 grafana query_Web_06