用Grafana Variables变量配置快速切换不同主机的图表数据展示

 

by:授客 QQ:1033553122

测试环境

需求描述

操作步骤

结果展示

测试环境

influxdb-1.5.2.x86_64.rpm

网盘下载地址:

https://pan.baidu.com/s/1jAbY4xz5gvzoXxLHesQ-PA

grafana-5.1.2-1.x86_64.rpm

下载地址:

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm

下载地址:https://pan.baidu.com/s/1wtnPH-iYxaXc6FnL1i0ZVg

需求描述

在一个Dashboard中新建了多个pannel,用于监控目标主机性能,因为需要监控的机器比较多,所以,希望用这一套pannel能方便的展示不同主机的性能--根据用户选择的目标机器,自动展示对应的性能数据。

此外,还希望这些pannel在展示数据时,能根据用户所选的tag进行展示。

另外,还希望在某个pannel上展示1到多个measurement的数据,比如想同时查看看单个、多个磁盘的%util的性能数据

操作步骤

1、新建Dashboard及pannel

2、进入步骤1新建的 Dashboard页面,点击Settings->Variables->Add variable

点击后打开如下界面

3、新建Datasource变量

说明:例中每台主机的性能数据单独存储在一个Datasource数据源中,所以需要新建这样一个数据源变量。

如图,

General中   填写 Name, Type选择 Datasource,

Data source options   Type选择InfluxDB

其它,设置项保持默认。

说明:

Name 变量名称,要求变量名唯一,且不包含空白字符。

Label 变量在下拉列表中中的名称(The name of the dropdown for this variable。

Hide 隐藏该变量的下拉选择框,即在Dashboard中不展示。

Type 定义变量类型。

4、新建Query变量

说明:tag值需要通过查询得到,所以要新建Query变量。

如图,

General中   填写 Name, Type选择 Query,

Data source options   Data source选择刚新建的变量 $dataSource,以保持变量“联动”,Refresh 设置为On Time Range Change。填写Query表达式(表达式书写规则因数据源不同而不同, 比如mysql,InfluxDB数据库都用各自的查询语法, InfluxDB为例,查询tag值 SHOW TAG VALUES WITH KEY= ‘stuid’ (这里stuid为tag的key)。Sort选择 Alphabetical(asc),按字母顺序升序排序

存储到数据源中的数据结构如下

json_body = [
    {
        "measurement": measurement,
        "tags": {
            "stuid": tag
        },
        "time": datetime_for_data,
        "fields":field_dic
    }
]

Selection Options 勾选Muiti-value,include All option以便变量下拉列表中可以进行多选,否则单选。

其它,设置项保持默认。

说明:

Data source    设置从哪个数据源中查询。

Refresh 控制啥时候更新变量选择列表(变量下拉列表中的值)。可选值 never(从不)、On Dashboard Load(Dashboard加载完成之前更新,这会减慢加载速度) 、On Time Range Change(如果变量选项包含一个时间范围过滤,即和时间相关,或者依赖dashboard时间范围选择)

Query 因数据源不同而不同的特定查询表达式

Regex 正则表达式,用于过滤Query返回的数据(可能我们只需要Query返回中的部分数据,可选。

Sort 定义下拉选项的顺序,设置为Diasble则表示保持按查询返回的数据排序。

Multi-value  如果勾选,即开启,则变量下拉列表指出多选

Include All option   添加一个 All 选项,该选项表示包含所有变量值

Custom all value  如上,默认添加的ALL选项会包含同查询表达式绑定的所有值,这些值可能会有很多,这会带来性能问题,这种情况下,我们可以指定一个自定义all值,比如一个通配符正则表达式(globs 或 lucene 语法的表达式),以减少all所包含的数据量,如果发现设置了不起作用,那么要考虑正则表达式是否正确了。

新建供磁盘使用的measurement Query变量

5、编辑pannel,引用变量

结果展示

参考链接:

http://docs.grafana.org/reference/templating/

http://docs.grafana.org/features/datasources/influxdb/

附:

来自网络的一个演示demo:

http://47.96.36.117:3000/dashboard/db/nginxfang-wen-tong-ji?spm=a2c4g.11186623.2.78.546e6e15HziVlc&orgId=1

Grafana 利用Grafana Variables变量配置快速切换不同主机的图表数据展示的更多相关文章

  1. 利用Python特殊变量__dict__快速实现__repr__的一种方法

    在<第8.15节 Python重写自定义类的__repr__方法>.<Python中repr(变量)和str(变量)的返回值有什么区别和联系>.<第8.13节 Pytho ...

  2. 阿里云SLB快速切换至https

    域名caifuxiang.com是直接解析到阿里云SLB的,运行了好几年的http服务,今天通过修改配置快速切换到了https,莫名就感觉更上档次了! 首先,SSL证书 服务可以提供免费单域名证书 w ...

  3. 一些有用的 Emacs 配置(窗口快速切换、一键透明效果、任意位置删除整行等)

    本篇文章记录的是一些有用的 Emacs 配置,有些是自己原创,有些是借鉴别人(能记起来出处的我放了链接). 规定:C 代表 Ctrl,M 代表 Alt. 1.设置一次跳跃 n 行的快捷键 按 C-M- ...

  4. Windows环境下使用Netsh命令快速切换IP配置

    不同的内网环境需要使用不同的IP配置,频繁切换令人发狂,因此搜索了快速切换IP配置的方法. Netsh interface IP Set address "以太网" Static ...

  5. 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据

    CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据   by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 2 1.安装influxdb ...

  6. 如何快速切换Python运行版本,如何选择Python版本

    想必在学习Python时会面临选择Python2.X或者是Python3.X的问题. 我在电脑上不同位置下载安装了不同版本 的Python,当我在学习时,不管是需要哪一个版本才能运行都无所谓,相应的快 ...

  7. 第一篇 Postman的初级使用之设置环境快速切换生成环境与测试环境

    POSTMAN是有谷歌的开源工具,在开发调试.测试执行过程中使用频率非常广泛,本文将记录一些postman在测试中常见的一些配置和使用方法 一.基本的页面区域 略,很简单,大家都会看,再有,学习下面的 ...

  8. [刘阳Java]_避开环境配置快速的使用Java的开发工具_第5讲

    我们一般学习Java都应该遵循通过系统的命令工具来编译Java程序,然后对编译好Java程序进行运行,这个是非常好的习惯.但是随着后期学习Java技术的深入我们也得像Java的IDE工具屈服.所以,可 ...

  9. Java 学习第一步-JDK安装和Java环境变量配置

    Java学习第一步——JDK安装及Java环境变量配置 [原文]  2014-05-30 9:09  Java SE  阿超  9046 views Java作为当下很主流的编程语言,学习Java的朋 ...

随机推荐

  1. travis-ci 中运行 puppeteer

    通过 travis-ci 可以构建基于 puppeteer 的自动化任务,基于此构建的一个 计划任务 puppeteer中调用需要禁用沙箱环境 https://github.com/GoogleChr ...

  2. 位运算-出现k次与出现一次

    题目:数组中arr只有一个数出现了1次,其他的数都出现了k次,请输出这个只出现了一次的数. 思路:这道题目要求使用位运算实现,如果采用数据结构Map就会简单很多.解此题前先了解不进位加法的思想,比如两 ...

  3. [Swift]LeetCode1020. 飞地的数量 | Number of Enclaves

    Given a 2D array A, each cell is 0 (representing sea) or 1 (representing land) A move consists of wa ...

  4. Linux 实现服务器之间时间同步

    在主服务器上安装NTP时间同步服务器 yum -y install ntp vim /etc/ntp.conf  手动添加两行 server 127.127.1.0 fudge 127.127.1.0 ...

  5. 值得收藏的Mybatis通用Mapper使用大全。

    引言 由于小编的记性不太好,每次在写代码的时候总是把通用mapper的方法记错,所以今天把通用mapper的常用方法做一下总结,方便以后直接查看.好了,不废话啦. 引包 <!-- 通用Mappe ...

  6. python 菱形继承问题究极版

    如果只是正常的菱形继承,经典类(python2中最后一个父类不继承object类)是深度优先,即会从左边父类开始一路走到底 新式类(最后一个父类继承了object类)是广度优先,即从左边父类开始继承, ...

  7. Python3练习

    Hello Python3 print("Hello Python!") #print("Hello, Python!"); '''a=1 b=2 c=a+b ...

  8. Docker & Consul & Fabio & ASP.NET Core 2.0 微服务跨平台实践

    相关博文: Ubuntu 简单安装 Docker Mac OS.Ubuntu 安装及使用 Consul Consul 服务注册与服务发现 Fabio 安装和简单使用 阅读目录: Docker 运行 C ...

  9. ES 02 - 部署Elasticsearch单机服务 + 部署中的常见问题

    目录 1 准备工作 1.1 安装JDK 1.2 下载安装包 1.3 创建elastic用户 2 启动ES服务 2.1 修改配置文件 2.2 启动服务 3 验证ES服务是否可用 4 关闭与重启服务 4. ...

  10. Java设计模式学习总结

    设计模式基础学习总结 这篇总结主要是基于我之前设计模式基础系列文章而形成的的.主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点.谢谢 更多详细内容可以查看我的专栏文章:设计模式 ...