最近在关注Android系统的优化,但是也涉及到了处理和分析线上用户的使用情况。所以需要每天观察线上数据,目前为止,还没有一个可视化的技术数据平台,所以动手搭建一个自动日报或者周报的输出模块,用来解放双手。文中有些步骤为工作环境原因的特殊操作,没有普遍性。
# 获取原始数据
公司考虑到数据安全,原始数据的获取需要经过特殊的密钥申请,但是基本上是aws的那套安全机制。细节就不在这里记录。只需从我们的执行服务器上执行特定的脚本按月拉取截止到目前为止的所有相关原始数据。
|
|
同步好数据以后,因为原始数据可能会有其他同事做其他分析用,所以一般上我会再同步一份到我的工作目录。
这个步骤在自动报表中,会在每天凌晨1点钟自动运行
# 准备工作目录
为了清晰结构,我习惯性地在工作目录中区分原始数据,中间数据,错误数据,以及结果数据,这样有利于分析问题和有效减少数据预处理的时间。
|
|
上面所有的同步数据到工作目录,我会使用./syndata.sh 来完成。这个步骤在自动报表中,会在每天凌晨3点钟自动运行
# 清洗数据,中间结果入库
|
|
# 本地计算,出图
使用入库的中间结果,开发计算术想要的指标。
|
|
加入到脚本中一起执行:
|
|
# 制作markdown报表模板
模板的使用方式为仅仅将[date]替换成当天的时间值123456789# MUI 系统技术数据统计日报> [date]### OTA成功率> 截止到 [date] 为止,线上稳定版本升级成功率结果
# 生成报表
替换模板中的[date]字段,即可生成报表:
|
|