grafana中结合自定义变量来添加dashboard links完成链接跳转

5,668 阅读2分钟

需求说明

首先这是一个表格,数据源使用的是elasticsearch,这里统计的数据来源是nginx的请求日志,目的是统计出一段时间内接口的平均请求时间,最大请求时间,最小请求时间,然后按照url进行聚合,并统计出top10的数据,如下所示:

表格出来后,然后点击统计出来的top10的url进行跳转,跳转到一个关于对应url的详细请求趋势图,如下图所示:


需求是大概这么个需求,下面是具体的操作方法。

详细示例

添加Elasticsearch数据源

我的es索引格式是:nginx-aggregation-log-20210125这种格式,所以在配置Elasticsearch数据源时需要如下设置:


注意:index name: [nginx-aggregation-log-]YYYYMMDD

创建一个dashboard和panel

配置查询语句

然后给表的表头改一个名字,改成我们想要的名称

配置一个变量

查询语句理论上来说随便设置一个就行,因为我们不是通过选择url来进行动态出图,也可以写一个查询语句

{"find":"terms","field":"url","size":10,"query":"http_host:\"xx.xxxxom\" OR http_host:\"xxx.xxxxxx.com\""}

设置这个变量就是后面要传递的,通过这个变量,动态画出一个请求图

添加详细请求地址趋势图

这次添加的是一个曲线图,查询语句也简单很多,如下所示:

有时候我们需要在图的下方显示具体的URL,那么就可以这样设置

到这里这个图就建好了,下面的操作就不需要它了,下面我们再次配置我们的那个表

给图表添加一个links

通过Overrides中的Fields with name来选择我们的一个表头

说明下,url就是表格中的第一列中的url的名称,而添加的链接实际上是刚才添加的详细请求图中的dashboard所在的地址


当我们输入$的时候会自动弹出一个可用的变量列表,如下所示:

设置好,点击保存,就可以了,哈哈哈,效果图如下:

注意
如果点击链接打开的图是和源图在一个dashboard中时,只需要设置一个变量就可以了,如果不在一个dashboard中时,需要把两个dashboard都设置好变量,且变量名设置成一样的。