用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. 数据库sql常见优化方法

    以前刚开始做项目的时候,开发经验尚浅,每次遇到查询比较慢时,项目经理就会问:是不是又用select * 了?查询条件有没有加索引?一语惊醒梦中人,赶紧检查..果然如此! 有时我们写sql语句时,没有考 ...

  2. [Swift]LeetCode348. 设计井字棋游戏 $ Design Tic-Tac-Toe

    Design a Tic-tac-toe game that is played between two players on a n x n grid. You may assume the fol ...

  3. [Swift]LeetCode665. 非递减数列 | Non-decreasing Array

    Given an array with n integers, your task is to check if it could become non-decreasing by modifying ...

  4. [Swift]LeetCode897. 递增顺序查找树 | Increasing Order Search Tree

    Given a tree, rearrange the tree in in-order so that the leftmost node in the tree is now the root o ...

  5. Python内置函数(30)——hex

    英文文档: hex(x) Convert an integer number to a lowercase hexadecimal string prefixed with “0x”, for exa ...

  6. 认识Junit基本注解@Before、@After、@Test、@BeforeClass、@AfterClass(转)

    一.unit中集中基本注解,是必须掌握的. @BeforeClass – 表示在类中的任意public static void方法执行之前执行 @AfterClass – 表示在类中的任意public ...

  7. Kafka分区与消费者的关系

    1.  前言 我们知道,生产者发送消息到主题,消费者订阅主题(以消费者组的名义订阅),而主题下是分区,消息是存储在分区中的,所以事实上生产者发送消息到分区,消费者则从分区读取消息,那么,这里问题来了, ...

  8. 使用ML.NET + Azure DevOps + Azure Container Instances打造机器学习生产化

    介绍 Azure DevOps,以前称为Visual Studio Team Services(VSTS),可帮助个人和组织更快地规划,协作和发布产品.其中一项值得注意的服务是Azure Pipeli ...

  9. C++版 - Lintcode 77-Longest Common Subsequence最长公共子序列(LCS) - 题解

    版权声明:本文为博主Bravo Yeung(知乎UserName同名)的原创文章,欲转载请先私信获博主允许,转载时请附上网址 http://blog.csdn.net/lzuacm. C++版 - L ...

  10. 使用Spring Cloud搭建高可用服务注册中心

    我们需要的,不仅仅是一个服务注册中心而已,而是一个高可用服务注册中心. 上篇博客[使用Spring Cloud搭建服务注册中心]中我们介绍了如何使用Spring Cloud搭建一个服务注册中心,但是搭 ...