4

Grafana-Variable配置小技巧

 2 years ago
source link: http://vearne.cc/archives/39591
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
版权声明 本站原创文章 由 萌叔 发表
转载请注明 萌叔 | 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中使用股票代码查询。

grafan支持这种玩法,称为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的结果


微信支付码


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK