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绘图配置查询变量+多级变量联动相关推荐

  1. postgres 显示变量_sql - 如何在PostgreSQL查询中声明变量

    sql - 如何在PostgreSQL查询中声明变量 如何声明变量以用于PostgreSQL 8.3查询? 在MS SQL Server中,我可以这样做: DECLARE @myvar INT SET ...

  2. webdriver自动化测试工具的使用,将chromedriver配置到path环境变量中,并测试是否成功

    文章目录 webdriver概述 安装chrome webdriver 1. 查看自己的chrome谷歌浏览器版本 2. 去国内镜像地址下载对应浏览器版本的webdriver 3. 下载好之后解压,将 ...

  3. node环境变量配置,npm环境变量配置

    引言: 很久没有在windows上配过node, 记得以前node环境变量是要加 NODE_PATH 到用户变量,再在系统变量引入NODE_PATH的,而npm install的全局包目录会存放在C: ...

  4. linux npm 要放到环境变量么?,node环境变量配置,npm环境变量配置

    引言: 很久没有在windows上配过node, 记得以前node环境变量是要加 NODE_PATH 到用户变量,再在系统变量引入NODE_PATH的,而npm install的全局包目录会存放在C: ...

  5. atom配置python环境_Win10如何配置Python的环境变量

    相信有许多人遇到过这样的一个问题,为什么电脑里安装了python,可是win10终端里输入"python"却显示不是内部命令无法.其实是系统的环境变量没有配置所以输入"p ...

  6. 1.4 以查询取代临时变量

    [1]源代码 1 class WTP 2 { 3 public: 4 WTP(double dPrice = 1, double dQuantity = 10) 5 : m_dPrice(dPrice ...

  7. java环境变量用不用jre_为什么安装jdk时,会安装两个jre?不用配置jre的环境变量...

    安装jdk时,为什么会安装两个jre?不用配置jre的环境变量 细心的你或许会发现,在安装jdk结束之后会发现,怎么有两个jre的的文件夹, 和jdk里面的 并且里面的文件都是一样的,另外我们在配置环 ...

  8. 配置tomcat的环境变量

    配置Tomcat的环境变量 注意:配值tomcat之前要将JDK的JAVA_HOME和path都配置好,否则后续会出现Tomcat无法启动或者闪退等问题. 1.首先下载tomcat,并且解压到目录: ...

  9. WINCE下如何设置/删除/查询这些环境变量

    在WinCE中有很多的环境变量,那么如何设置/删除/查询这些环境变量呢: 1. 查询环境变量:无论是在WinCE5.0还是WinCE6.0,当我们在PB里打开或者创建一个工程以后,我们可以在菜单中点 ...

最新文章

  1. 关于命名空间namespace
  2. 你可能不知道的5种 CSS 和 JS 的交互方式
  3. AI创业公司最佳「开发工具」指南火了,还发现了个可挑战Jupyter的「杀手」
  4. sql 2005学习笔记1
  5. redis基本类型以及优点特性
  6. Android中的AsyncTask异步任务的简单实例
  7. ejb能调用另一个ejb吗_异步EJB只是一个Gi头吗?
  8. 2018年的AI/ML惊喜及预测19年的走势(二)
  9. c ++类成员函数_C ++编程中的数据成员和成员函数
  10. C#,COM口,接收,发送数据
  11. spring aop实例讲解_【好好面试】手把手调试,教你分析Spring-Aop
  12. XMind2TestCase 库的使用及自定义导出文档的格式
  13. Charles一键设置Breakpoint(断点)
  14. 顶级程序员的心得 –– Coders at Work
  15. 在CSDN高校俱乐部校园巡讲中遇到的几个共性问题
  16. Linux密码策略、连接空闲超时时间设置
  17. 入门级蛋白磷酸化研究
  18. 2019热门新兴行业盘点 有没有找到适合你的?
  19. 敬业福扫不出来,是不是有bug?
  20. linux 查看文件 可翻页,Linux如何读取文件,如何翻页

热门文章

  1. 领导说“辛苦了”该怎么回?低情商说不辛苦,怎么回才显情商高?
  2. 以编程的方式向窗体添加控件以及对内容高亮显示
  3. linux下敏感文件(账号密码)查找—内网渗透linux主机密码收集
  4. 教育与人生:教师节有感
  5. Go:sqrt平方根计算(附完整源码)
  6. C语言教你怎么改变字体颜色
  7. 分享Python采集的77个PHP整站程序源码
  8. QQ机器人——基于python以及qqbot模块
  9. 惠普暗影精灵笔记本电脑 ubuntu系统如何截图
  10. C#操作Excel文件(读取Excel,写入Excel)