数据分析之--log文件自动化分析
https://mp.weixin.qq.com/s?__biz=MjM5NjE2MTIyMw==&mid=2257483803&idx=1&sn=efe24b040397cde3c16b890faf7f7717&chksm=a597abb392e022a5c1af95448abd4447a565e35199c2cd3a2f7b8891e52a20075b6ac312477d&mpshare=1&scene=1&srcid=&key=b79bd25d83f240ad4ead35697faece9905fec7160f80f3e6376d128d62c40b2d2cd2c2dfd66f8e9d1e0d9883cc9b6c1ed121ab9fb6fd2735650d82881c2aa4cdb5466c8ff2a9d42e0f950b87b7d3d2e1&ascene=1&uin=MjkxOTg1MjM0MQ%3D%3D&devicetype=Windows+10&version=62060833&lang=zh_CN&pass_ticket=S2vPzhfsZuo41GgVm%2Bek%2FliLi7nmgHlTEw39G2Lj6C55DEWxmX9T49C45ZAKKswr
1. 提出问题
产品测试过程中会出现各种各样的问题,比如因为良品率导致机器终止或者产品本身的质量问题。一般测试都会产生测试记录,从log里面提取出需要的数据,整理成报告。log是被zip起来的csv文件,log又有很多个,每个里面又记录了不同的信息。log文件名包含时间戳,log里面包含时间机器号,单元,产品批次,以及原因,fail的分类,控制范围等信息。
需要实现的结果:生成图文报告,定期自动通过邮件将报告发送给相关人员。
2. 解决思路
使用bat脚本根据时间戳提取最近两个月的log文件到指定的文件夹。然后使用python进行解压,使用pandas进行数据提取处理。使用公司自己的数据库管理软件,对原始数据进行筛选,并使用软件集成的R,Python等工具生成图形报告,再用集成工具在服务器上进行运作,定期发送报告。
3. 具体实现过程
Bat script 提取最近两个月的文件:
@echo ON
xcopy /s /y "d:\event\log\log_201906*.zip" "C:\Users\sanmy\project\logs\"
xcopy /s /y "d:\event\log\log_201905*.zip" "C:\Users\sanmy\project\logs\"
Python 进行zip 解压
def file_name(file_dir):
L=[]
for root, dirs, files in os.walk(file_dir):
for file in files:
if os.path.splitext(file)[1] == '.zip':
L.append(os.path.join(root, file))
return L
file_dirs=r'C:\Users\sanmy\project\logs\' t=file_name(file_dirs)for i in t: x=i[:-3]+'csv'for i in t: myzip=ZipFile(i) #print(myzip) #print(my_file) f=myzip.open(i[13:-3]+'csv') file=pd.read_csv(f) # name file link to get_data() function get_data()
使用pandas 进行数据提取(此处代码省略……)
def get_data():
……
……
log=file[['MC','A','action','time','year','month','day','times','dates','Fail']]
log.to_csv(r'.\logs.csv',mode='a')
4. 报告整理并发送邮件
最后将提取出来的数据进行分析整理,图形话,并生成图形文件,通过软件发送邮件给相关人员。
5. 结果与报告
此图为excel制作而成,数据是杜撰出来的,仅仅作为一个示例。而实际上生成了很多个图文报告的。
如图可以看出机器MC1 的报废率是最差的,可能是机器出现了问题。
总结:
在这个项目的实现过程中遇到了很多之前没有遇到过的问,比如文件的复制方法,因为在同一个文件夹下面还有很多其他名字的文件以及不同文件类型的文件,最后使用bat脚本实现也算是基本满足了需求,但是过一段时间之后又需要去更改copy文件的时间戳。python 在公司数据库处理软件上的支持情况不太清楚,后来询问了很多人最后才得以实现。对于数据库软件上集成的R语言生成的图片报告,在排序的时候也遇到问题,始终不是以数据量的大小来排序的,而是以X坐标轴来排序,最后自己慢慢尝试才琢磨出来。
虽然这不是一个很大的项目,但是前前后后花费了差不多3个月的时间。主要是在工作之余的时间来做的,但是对我自己来说也是收获颇多。主要花费时间在使用pandas 处理csv文件的时候,虽然这个地方的代码只有两百多行,但是里面涉及到了很多的基础知识以及以前没有使用过的新知识。
还有个地方就是将所有这些需要实现的功能部署到服务器上去,因为运行的环境,配置不同,在调试的时候花费了很多时间,同时也遇到很多雷区。不过这些经过耐心的学习与请教,都一一搞定。
最曲折的是一个地方是数据源本来有一个已经整理好的JMP(不知道JMP 的可以去百度)的文件,这个文件本身可以直接制作图形,但是缺点就是公司数据库软件不直接支持,需要将JMP 转换成csv文件。后来尝试了下使用JMP 的jsl脚本在server上运行,实现转换然后再使用公司数据库软件进行分析,最后也实现了相同的功能。但是刚刚实现没几天,公司不维护这个JMP 文件了,所有又折腾回来。
最终程序每天早晨8点定时运行,并且定时将报告发送给相关人员。对有问题的机器或者其他一些指标进行监控,发现异常及时采取行动,提高产品良品率,同时降低维护成本。
数据分析之--log文件自动化分析的更多相关文章
- Android中对Log日志文件的分析[转]
一,Bug出现了, 需要“干掉”它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只要你会看bug, a ...
- Android如何分析和研究Monkey Log文件
Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...
- Android Log日志文件的分析、查看
Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 什么时候会产生log文件呢 ?一般 ...
- 分析和研究Monkey Log文件
Log 在Android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...
- 如何分析和研究Log文件 ,如何看日志信息
如何分析和研究Log文件 ,如何看日志信息 . Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处 ...
- 【原创】Kakfa log包源代码分析(二)
八.Log.scala 日志类,个人认为是这个包最重要的两个类之一(另一个是LogManager).以伴生对象的方式提供.先说Log object,既然是object,就定义了一些类级别的变量,比如定 ...
- ZooKeeper日志与快照文件简单分析
有用过Zookeeper的都知道zoo.cfg配置文件中有dataDir配置项用于存储数据,不过可能有些人不太清楚这个目录具体存储的是那些数据,默认情况下这个目录是用于存储Log(事务日志)与Snap ...
- SQL Server Log文件对磁盘的写操作大小是多少
原文:SQL Server Log文件对磁盘的写操作大小是多少 SQL Server 数据库有三种文件类型,分别是数据文件.次要数据文件和日志文件,其中日志文件包含着用于恢复数据库的所有日志信息,SQ ...
- 经典面试题目——250M内存处理10G大小的log文件
前言 周末逛知乎的时候,看到的一个经典面试题目:http://www.zhihu.com/question/26435483.非常经典的一道分而治之的题目. 题目描写叙述例如以下: 有次面试遇到一个问 ...
随机推荐
- 使用awrsqrpt.sql查看执行计划demo
SQL> @?/rdbms/admin/awrsqrpt.sql Current Instance ~~~~~~~~~~~~~~~~ DB Id DB Name Inst Num Instanc ...
- 【转】Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板
Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板 开发板:mini2440(2011.04.21)环境:ubuntu9.10 为方便的将文件上传到开发板,采用vsftpd, ...
- IDEA如何配置tomcat及建一个web项目
需求:项目工程可能别人已经建好了,我需要把项目导入到自己的IDEA并配置tomcat运行; 准备工作:1.本地的tomat服务器 2.IDEA工具 3.JDK 步骤: 1.点击Run -> Ed ...
- 【Java并发编程之深入理解】Synchronized的使用
原文:https://blog.csdn.net/zjy15203167987/article/details/82531772 1.为什么要使用synchronized 在并发编程中存在线程安全问题 ...
- 【转】点评cat高可用实时监控系统
CAT总体介绍CAT(Central Application Tracking)是由吴其敏(前大众点评首席架构师,现携程架构负责人)主导设计基于Java开发打造的实时应用监控平台,为大众点评网提供了全 ...
- 案例实战之如何写一个webpack plugin
案例实战之如何写一个webpack plugin 1.写一个生成打包文件目录的file.md文件 // 生成一个目录项目目录的文件夹 class FileListPlugin { constructo ...
- git提交项目到已有库
借鉴地址:https://blog.csdn.net/jerryhanjj/article/details/72777618 Git global setup git config --global ...
- janusgraph批量导入数据-IBM( janusgraph-utils)的使用
janusgraph-utils的简介 可与JanusGraph一起使用的实用工具,包括: JanusGraphSchemaImporter:一个groovy脚本,它将图形模式定义(JanusGrap ...
- sping boot 集成shiro
springboot整合shiro应用 1.Shiro是Apache下的一个开源项目,我们称之为Apache Shiro.它是一个很易用与Java项目的的安全框架,提供了认证.授权.加密.会话管理 ...
- idea中properties配置文件 注释显示中文乱码问题