Grafana-Variable配置小技巧

版权声明 本站原创文章 由 萌叔 发表 转载请注明 萌叔 | http://vearne.cc 前言 Dashboard是Grafana中非常重要的概念,每个Dashboard都是一个巨大的看板,在Dashboard上可以配置Panel(图表)。在Dashboard中有个特别的配置–Variables,Variables提供了用户和面板交互,可以动态刷新面板。 有些特殊的场景,需要有些小技巧,否则Variables仍然无法满足我们的要求。 1. Case 1 我要查看不同股票的日线图 1.1 Query SELECT trade_date AS "time", close FROM daily_data where ts_code = "$ts_code" order by trade_date ts_code是股票的代码,显然如果只看股票代码,很难想起这个代码究竟对应的是哪一只股票。 最好的方式是如下图这样,在变量的下拉列表中,显示股票名称,但是在实际的Query中使用股票代码查询。 grafana支持这种玩法,称为text和value 1.2 变量配置 注意需要Grafana的版本在7.4.5 或以上 1.2.1 配置Query select concat(name, "#", ts_code) from target; 这一步会查出形如下面的结果 中国平安#601318.SH 三一重工#600031.SH ... 1.2.2 分离出text和value 配置Regex /(?<text>.*)#(?<value>.*)/ 2. Case 2 我们有一组MySQL实例需要监控,MySQL的数量多达几十个。 但是实际上大家都知道,MySQL是主从的,1个主和多个从构成了1个集群。每个集群单独为1个业务提供服务。 MySQL实例如果这样列出来,萌叔根本不可能知道,这个实例属于哪个集群,支撑那个业务。 我们希望的效果,是先选择partner(业务方),然后再选择再从这个集群中选出关心的实例 2.1 Query 事实上,我们可以通过构建2个Variables来达到这个目标 2.1.1 Query1 label_values(mysql_up, partner) 得到变量partner 2.1.2 Query2 label_values(mysql_up{partner="$partner"}, instance) Query2引用Query1的结果 3. Case 3 萌叔的服务部署在2个机房,机房名称是由k8s的维护定义好的,形如 ...

November 18, 2021 · 1 min