grafana绘图配置查询变量+多级变量联动
1 centos7安装grafana
官网 https://grafana.com/grafana/download
# https://dl.grafana.com/oss/release/grafana-6.4.2-1.x86_64.rpm
# sudo yum localinstall grafana-6.4.2-1.x86_64.rpm
启动+开机启动
# systemctl restart grafana-server
# systemctl enable grafana-server
需要先启动grafana-server服务,后开启3000端口
# firewall-cmd --add-port=3000/tcp
第一次访问:http://172.16.159.132:3000 账号:admin 密码:admin 需要修改新密码:cc123456
第二次访问,使用新密码:http://172.16.159.132:3000 账号:admin 密码:cc123456
2 准备mysql数据库
1 准备sql语句
create database dolphin;grant all privileges on dolphin.* to dolphin@'%' identified by 'dolphinBJ2019***';use dolphin;CREATE TABLE `teams` (`id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`name` VARCHAR(255) NOT NULL DEFAULT '',`ctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,`utime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;CREATE TABLE `apps` (`id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`teamid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`name` VARCHAR(255) NOT NULL DEFAULT '',`ctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,`utime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;CREATE TABLE `items` (`id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`appid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`name` VARCHAR(255) NOT NULL DEFAULT '',`ctime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,`utime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;CREATE TABLE `itemdatas` (`id` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`itemid` BIGINT(20) UNSIGNED NOT NULL DEFAULT '0',`clock` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,`value` INT(10) UNSIGNED NOT NULL DEFAULT '0',PRIMARY KEY (`id`),KEY `idx_itemid` (`itemid`)
) ENGINE=INNODB DEFAULT CHARSET=utf8mb4;
2 时区问题
如果发现grafana和mysql的时间对不上,一般是时区问题。
在grafana机器和mysq机器上
更新机器时区
# timedatectl set-timezone Asia/Shanghai
校对时间
# yum -y install ntp
# ntpdate ntp1.aliyun.com
重启mysql
# systemctl restart mysqld
重启grafana
# systemctl restart grafana-server
3 创建时间序列数据,每秒产生监控数据。
createdata.sh
function add()
{local clock=$1local itemid=$2local value=$[$RANDOM%500+1]sql="insert into itemdatas (itemid,clock,value) value($itemid,'$clock',$value);"echo $sqlmysql -udolphin -pdolphinBJ2019*** -h 172.16.159.131 -P 3306 dolphin -e "$sql"
}for ((i=1; i<=100000; i ++))
donowTime=$(date "+%Y-%m-%d %H:%M:%S")add "$nowTime" 1add "$nowTime" 2add "$nowTime" 3add "$nowTime" 4add "$nowTime" 5add "$nowTime" 6add "$nowTime" 7add "$nowTime" 8add "$nowTime" 9add "$nowTime" 10sleep 1
done
3 配置grafana的mysql数据库
4 配置查询变量
官网变量操作详细说明:https://grafana.com/docs/grafana/latest/reference/templating/
4.1 新建图形,然后点击设置
4.2 点击变量,新增变量
4.3 新增团队名称变量
select distinct name as teamname from teams
4.4 新增团队id变量
这里的$teamname就是4.3中的teamname变量
select id as teamid from teams where name = '$teamname'
4.5 两个变量展示
4.5 页面查看
当选择不同的团队名称的时候,后面团队id的值也发生了变化。说明上面2个参数是有管理其左右的。
5 配置团队和应用级联
5.1 添加应用名称变量
select name as appname from apps where teamid = '$teamid'
5.2 添加应用id
5.3 查看所有变
变量位置的先后顺序很重要
5.4 查看级联效果
选择不同的团队出现了不同的应用
5.5 只有名称之间的联动
去掉团队id和应用id实现,只有团队名称和应用名称之间的联动。配置团队id和应用id,隐藏Variable。
查看效果,团队id和应用id隐藏了。选择不同的团队,就可以出不同的应用。
6 配置团队,应用,监控项三级级联,同时绘图
按照第5章的方法,监控项名称,监控项id。同时隐藏监控项id展示(隐藏Variable)。
select name as itemname from items where appid = '$appid'
select id as itemid from items where appid = '$appid' and name = '$itemname'
2 绘图
点击编辑
通过编辑查询配置
和$itemid监控项目关联上。点击Edit SQL
加上监控项条件。AND itemid=’$itemid’ 。
点击生成sql。单选择不同项的时候,会发现sql里面的itemid参数发生了变化。下面的间隔1s和上面的1*1是相对于的。
当选择不同的监控项目的时候,会发现曲线发送变化
7 筛选条件控制多个面板
在第6章节的基础上再,再这个面板上再添加一个面板。
编码监控项的时候,可以看到监控项和id变化两个面板图形都发生了变化。说明监控项参数影响了2个面板的数据集。
通过工具查看调用接口,监控项itemid,值10,9的变化。
技术交流
CleverCode是一名架构师,技术交流,咨询问题,请加CleverCode创建的qq群(架构师俱乐部):517133582。加群和腾讯,阿里,百度,新浪等公司的架构师交流。【架构师俱乐部】宗旨:帮助你成长为架构师!
grafana绘图配置查询变量+多级变量联动相关推荐
- postgres 显示变量_sql - 如何在PostgreSQL查询中声明变量
sql - 如何在PostgreSQL查询中声明变量 如何声明变量以用于PostgreSQL 8.3查询? 在MS SQL Server中,我可以这样做: DECLARE @myvar INT SET ...
- webdriver自动化测试工具的使用,将chromedriver配置到path环境变量中,并测试是否成功
文章目录 webdriver概述 安装chrome webdriver 1. 查看自己的chrome谷歌浏览器版本 2. 去国内镜像地址下载对应浏览器版本的webdriver 3. 下载好之后解压,将 ...
- node环境变量配置,npm环境变量配置
引言: 很久没有在windows上配过node, 记得以前node环境变量是要加 NODE_PATH 到用户变量,再在系统变量引入NODE_PATH的,而npm install的全局包目录会存放在C: ...
- linux npm 要放到环境变量么?,node环境变量配置,npm环境变量配置
引言: 很久没有在windows上配过node, 记得以前node环境变量是要加 NODE_PATH 到用户变量,再在系统变量引入NODE_PATH的,而npm install的全局包目录会存放在C: ...
- atom配置python环境_Win10如何配置Python的环境变量
相信有许多人遇到过这样的一个问题,为什么电脑里安装了python,可是win10终端里输入"python"却显示不是内部命令无法.其实是系统的环境变量没有配置所以输入"p ...
- 1.4 以查询取代临时变量
[1]源代码 1 class WTP 2 { 3 public: 4 WTP(double dPrice = 1, double dQuantity = 10) 5 : m_dPrice(dPrice ...
- java环境变量用不用jre_为什么安装jdk时,会安装两个jre?不用配置jre的环境变量...
安装jdk时,为什么会安装两个jre?不用配置jre的环境变量 细心的你或许会发现,在安装jdk结束之后会发现,怎么有两个jre的的文件夹, 和jdk里面的 并且里面的文件都是一样的,另外我们在配置环 ...
- 配置tomcat的环境变量
配置Tomcat的环境变量 注意:配值tomcat之前要将JDK的JAVA_HOME和path都配置好,否则后续会出现Tomcat无法启动或者闪退等问题. 1.首先下载tomcat,并且解压到目录: ...
- WINCE下如何设置/删除/查询这些环境变量
在WinCE中有很多的环境变量,那么如何设置/删除/查询这些环境变量呢: 1. 查询环境变量:无论是在WinCE5.0还是WinCE6.0,当我们在PB里打开或者创建一个工程以后,我们可以在菜单中点 ...
最新文章
- 关于命名空间namespace
- 你可能不知道的5种 CSS 和 JS 的交互方式
- AI创业公司最佳「开发工具」指南火了,还发现了个可挑战Jupyter的「杀手」
- sql 2005学习笔记1
- redis基本类型以及优点特性
- Android中的AsyncTask异步任务的简单实例
- ejb能调用另一个ejb吗_异步EJB只是一个Gi头吗?
- 2018年的AI/ML惊喜及预测19年的走势(二)
- c ++类成员函数_C ++编程中的数据成员和成员函数
- C#,COM口,接收,发送数据
- spring aop实例讲解_【好好面试】手把手调试,教你分析Spring-Aop
- XMind2TestCase 库的使用及自定义导出文档的格式
- Charles一键设置Breakpoint(断点)
- 顶级程序员的心得 –– Coders at Work
- 在CSDN高校俱乐部校园巡讲中遇到的几个共性问题
- Linux密码策略、连接空闲超时时间设置
- 入门级蛋白磷酸化研究
- 2019热门新兴行业盘点 有没有找到适合你的?
- 敬业福扫不出来,是不是有bug?
- linux 查看文件 可翻页,Linux如何读取文件,如何翻页