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文件自动化分析的更多相关文章

  1. Android中对Log日志文件的分析[转]

    一,Bug出现了, 需要“干掉”它 bug一听挺吓人的,但是只要你懂了,android里的bug是很好解决的,因为android里提供了LOG机制,具体的底层代码,以后在来分析,只要你会看bug, a ...

  2. Android如何分析和研究Monkey Log文件

    Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...

  3. Android Log日志文件的分析、查看

    Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 什么时候会产生log文件呢 ?一般 ...

  4. 分析和研究Monkey Log文件

    Log 在Android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处理log文件 . 什么时候会有Log文件的产生 ...

  5. 如何分析和研究Log文件 ,如何看日志信息

    如何分析和研究Log文件 ,如何看日志信息 . Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没有入门吧 . 下面我们就来说说如何处 ...

  6. 【原创】Kakfa log包源代码分析(二)

    八.Log.scala 日志类,个人认为是这个包最重要的两个类之一(另一个是LogManager).以伴生对象的方式提供.先说Log object,既然是object,就定义了一些类级别的变量,比如定 ...

  7. ZooKeeper日志与快照文件简单分析

    有用过Zookeeper的都知道zoo.cfg配置文件中有dataDir配置项用于存储数据,不过可能有些人不太清楚这个目录具体存储的是那些数据,默认情况下这个目录是用于存储Log(事务日志)与Snap ...

  8. SQL Server Log文件对磁盘的写操作大小是多少

    原文:SQL Server Log文件对磁盘的写操作大小是多少 SQL Server 数据库有三种文件类型,分别是数据文件.次要数据文件和日志文件,其中日志文件包含着用于恢复数据库的所有日志信息,SQ ...

  9. 经典面试题目——250M内存处理10G大小的log文件

    前言 周末逛知乎的时候,看到的一个经典面试题目:http://www.zhihu.com/question/26435483.非常经典的一道分而治之的题目. 题目描写叙述例如以下: 有次面试遇到一个问 ...

随机推荐

  1. 解决maven install报错:java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/util/scan/InclusionScanException

    问题:maven install时,报错:java.lang.NoClassDefFoundError: org/codehaus/plexus/compiler/util/scan/Inclusio ...

  2. php环境Unknown column '*' in 'field list'解决方案

    在使用pymysql 做网站往数据库插入数据时发现如下错误:pymysql.err.InternalError: (1054, "Unknown column '*' in 'field l ...

  3. 【转】高性能网络编程5--IO复用与并发编程

    对于服务器的并发处理能力,我们需要的是:每一毫秒服务器都能及时处理这一毫秒内收到的数百个不同TCP连接上的报文,与此同时,可能服务器上还有数以十万计的最近几秒没有收发任何报文的相对不活跃连接.同时处理 ...

  4. MSSQL-反弹注入

    工具:香港云免费云服务器:http://www.webweb.com 注册使用匿名邮箱:https://bccto.me/ 香港云服务器搭建MSSQL数据库,并建表admin,字段数要大于等于我们想要 ...

  5. keepalived日志显示脚本能执行成功,但是amoeba程序没启动起来,单独执行脚本amoeba能启动成功,放到keepalived里面启动不起来

    keepalived日志如图: 解决:keepalived还有crontab等计划任务自动执行脚本,并不会有本地用户的环境变量,需要在脚本里面加 . /etc/profile  引入本地用户的环境变量

  6. docker学习6-docker-compose容器集群编排

    前言 实际工作中我们部署一个应用,一般不仅仅只有一个容器,可能会涉及到多个,比如用到数据库,中间件MQ,web前端和后端服务,等多个容器. 我们如果一个个去启动应用,当项目非常多时,就很难记住了,所有 ...

  7. 《基于WEB的独立学院补考重修管理系统研究》论文笔记(二十)

    <基于WEB的独立学院补考重修管理系统研究>论文笔记(1) 一.基本信息 标题:基于WEB的独立学院补考重修管理系统研究 时间:2016 来源:南通大学杏林学院 关键词:WEB:补考重修管 ...

  8. python 打印html源码中xpath

    实例: #coding:utf-8 from lxml import etree import urllib url=urllib.urlopen('http://www.baidu.com').re ...

  9. Linux——CentOS7没有ifconfig命令

    前言 今天新安装的centos7,使用ifconfig命令却提示没有,直接安装也没有~ 正文 直接安装直接告诉我这个包不是一个有效的 [root@kafka ~]# yum install -y if ...

  10. 小米BL不解锁刷机

    关于小米NOTE顶配近期解锁的问题中发现还有很多人不会用9008模式刷机,现出个简单教程方便米粉们救砖.硬件:小米NOTE顶配手机 win10系统的电脑 手机与电脑相连的数据线软件:老版本的mifla ...