简介
最近想对打包及研发过程做一些数据统计及监控,有两个方案,一种是直接做一个前端页面,将数据库存储的数据, 直接在前端页面中展示,不过这种方案需要前端和后端人员的配合,在资源紧张的情况下,无法达到快速可视化展示;另一个方案是接入到grafana大盘中,公司已经搭建起了这个服务,只需要写一些SQL语句,就可以把数据库中的数据在界面中展示,和运维过完需求,运维给了个估时,差不多两个小时就可以配置完成。两种方案对比后,果断选择了使用grafana大盘方案,然而对于一个新手,要配这些东西,还是有点难的,前前后后加起来差不多用了两天的时间才把大盘给配起来,前提还是运维同学帮忙把数据源给配好的情况下。网上也查了很多资料,可能觉得这块儿东西太简单了,也没有找到相关的中文文档,特此记录一下,以便新手快速上手。
接入流程
大盘的配置要经历以下流程:
-
- 安装grafana大盘;
-
- 配置数据源;
-
- 创建dashboard(大盘);
-
- 在大盘里添加展示面板;
-
- 配置展示面板要展示的数据;
-
- 调整大盘展示样式;
-
- 验证数据准确性;
对于第1、2步已经有很多参考文档,可参考blog.csdn.net/easylife206…写的很细也很全面。
下面主要介绍配置可展示面板的过程。
创建dashboard
安装完grafana并配置完大盘后,就可以创建我们的dashboard了,首先登录大盘,然后找到我们可操作的大盘 例如:大盘APS,接着点击其右侧设置按钮-》再点击New Dashboard按钮-》再点击右上角保存按钮,在弹窗中输入一个名称,至此我们的第一个dashboard就建好了,详细见下图:
创建完的dashboard,有时我们可能会觉得一开始设置的名称或其他信息与要配置的具体内容不符,想要修改一下,此时在dashboard的右上角,点击设置图标,可以修改想要调整的内容。
可以看到左侧边栏还有一些其他设置项:
-
Annotaions: 添加一些说明,这里添加的说明会在大盘表中展示,而且这里添加的都是全局的,dashboard中每个表上都会有;
-
variables:全局变量,在配置SQL语句或者添加新的变量的时候,可以使用,一般会在大盘的右上角显示;
-
Versions:每次保存这里都会产生一条记录;
-
Permissions:权限管理,这里可以限制别人查看或编辑该大盘;
-
JSON Model:大盘的展示形式及内容都是通过解析这个JSON Model来的,相应的大盘的修改,这里的JSON Model也会相应变化;
关于大盘就简单介绍这些,接下来就讲一下我们心心念的内容展示了。
添加展示面板
展示面板也就是dashboard中的一个个图表了,有了大盘(dashboard),我们可以通过点击其右上角+图标,添加一个图表
然后再选择Add Query来添加数据查询语句,这里默认使用的是曲线图,如果想用其他的图,可以先选择“Choose Visualization”,然后再添加数据查询语句。这里我们选择“Add Query”,使用默认的图表样式。
在panel配置页面首先选择数据源(Query),然后在下面根据提示填写内容,这里可以点击下面“Edit SQL”,切换到直接填写查询语句模式
正确的填写完数据查询语句,点下输入框外侧,就可以在上面看到出来的效果了(图中曲线)
调整展示样式
一开始配出来的图表效果可能不是我们想要的,我们可以点击图表图标重新选择一种展示形式
数据设置好,图表样式选定好,接下来就要给panel设置一个能表达其内容的名字了,选择设置样式的图标,填写一个名字
到此,一个panel就设置完了,接下来对我们填写的SQL做一个简单介绍(理解的有限,理解了多少,就介绍多少吧)
SELECT
$__timeGroupAlias(create_time,'24h'),
sum(case status when 3 then 1 else 0 end) as value,
'成功次数' as metric
FROM aps_jenkins_build_task_history
GROUP BY 1
ORDER BY 1
SQL语句大概是这样的,这里主要介绍三个内容__timeGroupAlias(create_time,'24h')、value、metric这三个值
-
__timeGroupAlias(create_time,'24h'): create_time是数据库表中某列的名字,这个函数会拿这一列跟右上角的时间序列做匹配,似乎是自动为Sql加了这样一行 where create_time=time_serieas_n,所以这里选择列要注意,必须是时间类型的,否则在右上角选时间不会对图标内容产生影响。
-
value:这个变量也就是在图标上展示的一个个点,这里必须是数值类型的,其他类型会报错;
-
metric:该字段用于说明,可以看到图标做下角“成功次数”,就对应的这个字段。
到此panel就算是配置完了,接下来还需要做最重要的一步,就是点一下右上角的保存图标,否则一旦刷新页面,我们配置的内容就会被重置成默认的,只要不刷新页面,配置的内容就一直存在,我们可以多配置几个表,然后一起来保存。
修改已配好的Panel
选择要修改的panel,点击其名称-》在弹窗中选择Edit
添加全局变量
这里额外介绍一点添加全局参数,避免想要查看多个维度的数据,再去修改SQL语句
在“测试”大盘页面,点击右上角“设置”图标-》选择Variables-》点击Add Variable
至此我们就可以在不改变SQL的情况,看不同维度的内容了
验证数据展示
大盘只是作为数据的展示载体,在配置完以后,一定要再做一下数据的校准,保证展示的和自己期望的一致。
总结
通过这次大盘配置,有两个很深的感受
- 在做时间评估时,要先拉平认知,会的两个小时就搞定了,不会的可能要两天甚至更久
- 学习研究的过程应当记录下来,让后来人可以快速入门。配置的时候感觉很难,配置完以后感觉配置大盘好简单,如果不记录下来,一个新人在没有这些记录的情况下,可能还要经历这样一番的摸索才能配置完成。
本文作者:自如大前端研发中心-移动架构组-薛健强
参考:
本文作者:自如大前端研发中心-薛健强
招聘信息
自如大前端研发中心招募新同学!FE/IOS/Android工程师 公司福利有:
- 全额五险一金,并额外购买商业保险
- 免费健身房+年度体检
- 公司附近租房9折优惠
- 晚间打车报销
- 每年2次晋升机会
欢迎对技术有执着热爱的你加入我们!简历请投递 zhangxl122@ziroom.com, 或加微信 v-nice-v 详聊!