前言
需求做的越多越发现,几乎所有业务都需要统计功能,且功能相似程度极高(尤其是前端),从而导致相同功能开发N遍,这就好比一天三顿让你吃红烧肉你说腻不腻!!!
grafana 统计功能做的很完善,图表也是相当炫酷,接入也很简单,很多公司喜欢将它作为一个资源监控工具,今天我们就来尝试一下接入普通的业务统计数据。
安装grafana
sudo docker pull docker.io/grafana/grafana
sudo docker run -d --name=grafana -p 8080:3000 docker.io/grafana/grafana
访问http://xx.xx.xx.xx:8080/login
,账号密码都为admin
准备测试业务数据
创建grafana库
一级分类表
业务数据表
创建mysql数据源
选择mysql
填入数据库必要信息
测试保存
创建dashboard
创建variables
编写Query
SELECT
$__timeGroupAlias(ctime,$__interval),
category2 AS metric,
sum(price) as price
FROM grafana_price
WHERE
$__timeFilter(ctime) AND (
category2 = '$category2'
OR ("$category1" = category1 and "$category2" = "全部" and category2 <> "")
)
GROUP BY 1,2
ORDER BY $__timeGroup(ctime,$__interval)
权限控制
可以给每个dashboard配置上跟此业务相关的权限组,做到各业务间的权限隔离
结语
业务方只需要维护grafana_price
表就可以了,前端的开发量瞬间消失这里指的是较普遍的统计需求,过于定制化的需求不适用
因为grafana的alert功能有一定的局限性,下一章介绍如何使用easyswoole获取grafana的统计数据,实现自定义报警