Grafana+MySQL数据库的统计展示

因为需要用Grafana通过MySQL数据库展示数据,所以让只会增删改查的我学习了一把,下面就把学习到的全部记录一下,就直接用到的函数+实例来展示~

首先,你需要知道表内可用的字段:

>desc 表名称;

 然后根据Grafana你想展示的数据源写sql语句

表格(Table)

格式:select 字段1,字段2,字段3,... from 表名称 

例如:Grafana表格数据的展示——ORDER BY time DESC是按序排列,会返回最新的时间戳

这里的发布人(build_causer)字段数据是很长的,这里用substring_index函数只取最后的字符串

SELECT
  build_exec_time as time,
  project_name as '系统名称',
  substring_index(build_causer,' ',-1) as '发布人',
  build_number as '构建编号',
  build_result as '发布结果',
  build_time/1000 as '构建时间'
from 
  sql_jenkins
ORDER BY time DESC

 计数(Stat)

总数:

格式:select count(字段) from 表名称 

例:select coun(build_result) from sql_jenkins;

译:查询sql_jenkins表然后计算build_result字段的总数

 当月总数:

格式:

select count(字段) from 表名称 where from_unixtime(round(时间字段/1000),'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m')

这里的时间字段是13位时间戳,因为是当月,转换的格式就是/1000,‘用到的日期格式’,round是四舍五入取整数,加上函数from_unixtime,然后等于后面的时间,CURDATE()返回当前的时间,‘转换年月’,加上函数DATE_FORMAT

例:

select count(project_name) from sql_jenkins where from_unixtime(round(build_exec_time/1000),'%Y%m') = DATE_FORMAT(CURDATE(),'%Y%m')

译:查询sql_jenkins表然后计算project_name字段的当月总数

 本周总数:

格式:

select count(字段) from 表 where YEARWEEK(from_unixtime(round(时间字段/1000,'%Y-%m-%d'))) = YEARWEEK(now())

这里用到的是YEARWEEK函数:计算日期是本年的第几个星期,范围是 0 到 53,然后把时间字段的周数和现在的时间周数作比较,等于就是本周

例:

select count(project_name) from sql_jenkins where  YEARWEEK(from_unixtime(round(build_exec_time/1000,'%Y-%m-%d'))) = YEARWEEK(now())

译:查询sql_jenkins表然后计算project_name字段的本周总数

 每日总数:

格式:

select count(字段) from 表 where to_days(from_unixtime(round(时间字段/1000),'%Y-%m-%d')) = to_days(now());

跟周一样,这里是用to_days函数取天的值跟现在的时间作比较

例:

select count(project_name) from sql_jenkins where to_days(from_unixtime(round(build_exec_time/1000),'%Y-%m-%d')) = to_days(now());

译:查询sql_jenkins表然后计算project_name字段的每日总数

 总结:因为是时间戳格式的数据类型,所以需要先转换,如果是直接写入数据库当前的日期格式可以直接对应函数去用。多在终端数据库使用select命令试验,一条命令如果不返回结果,就把整条命令截取开,一段一段的试,都没问题再组合一起。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

white_1221

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值