CN103077108A - 一种对浏览器崩溃进行预警的方法和系统 - Google Patents
一种对浏览器崩溃进行预警的方法和系统 Download PDFInfo
- Publication number
- CN103077108A CN103077108A CN2013100045116A CN201310004511A CN103077108A CN 103077108 A CN103077108 A CN 103077108A CN 2013100045116 A CN2013100045116 A CN 2013100045116A CN 201310004511 A CN201310004511 A CN 201310004511A CN 103077108 A CN103077108 A CN 103077108A
- Authority
- CN
- China
- Prior art keywords
- collapse
- browser
- information
- early warning
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明涉及一种对浏览器崩溃进行预警的方法和系统,其中所述对浏览器崩溃进行预警的方法包括:第一崩溃服务器接收来自浏览器端的至少一浏览器客户端在发生崩溃时通过GET接口发送的崩溃基本信息,处理后向浏览器客户端返回参数,该参数表明是否要上传该次崩溃时的崩溃数据包;第二崩溃服务器在表明上传崩溃数据包时接收浏览器侧的POST接口上传的崩溃数据包;根据收集的崩溃基本信息和对崩溃数据包自动化崩溃分析而产生崩溃分析结果;第三崩溃服务器收到崩溃分析结果向浏览器端返回崩溃预警信息。由此可以预先向浏览器客户告知可能导致浏览器崩溃的因素或提醒用户作必要的更新操作,以减少浏览器崩溃次数和降低崩溃对用户的影响。
Description
技术领域
本发明涉及计算机领域,具体地涉及一种对浏览器崩溃进行预警的方法及系统。
背景技术
目前,在网页加载的过程中,常常由于种种原因使得浏览器反应变得很慢,或者造成浏览器失去响应,甚至会导致机器无法进行其他的操作。导致浏览器崩溃的原因有内存泄露、网页代码复杂和浏览器的Bug、网页数据过多、ajax的web服务漏洞等。
在Windows系统中,当IE遇到崩溃时,自动崩溃恢复等功能可帮助减轻这些崩溃的影响,同时为了从源头杜绝这些崩溃的发生,采用了多种不同的机制来收集关于崩溃的信息,其中一种就是Windows错误报告。对于选择启用Windows错误报告的用户,IE会在崩溃发生时收集浏览器的状态信息并将该信息封装到一个错误报告中,此信息有助于开发人员调试错误根源并修复崩溃。如果在浏览期间遇到浏览器挂起,Internet Explorer也会发送错误报告。
这些机制最终可能会向报告重复的问题,但其有助于构建庞大且具有统计意义的数据量。当收集了丰富的崩溃样本之后,首先删除具有重复问题的报告,然后根据崩溃来源对数据进行分类从而了解哪些区域对IE可靠性具有较大影响。接下来,对来自每个类别的数据进行整理以便系统地分析崩溃,可以使用“故障曲线”确定问题的优先级,例如采用条形图,其中每一个条形图表示一种唯一的崩溃,崩溃按从最常遇到到最少遇到进行排序。在绘制了故障曲线之后,从曲线顶部最常遇到的问题开始分析每个问题,针对每个问题分别进行改进。
例如在IE9Beta期间,以下类别可能产生可靠性问题:
(1)IE代码错误:IE代码错误是大部分崩溃的根源。由于引入了大量新代码,IE崩溃与第三方崩溃的比率在预发行版(Beta和发布候选版)中较高。
(2)加载项:尽管加载项是IE浏览体验的核心部分,但它们也是IE中可靠性问题的主要原因。与加载项相关的崩溃通常在打开新选项卡或启动IE时发生。一些加载项不兼容较新的IE版本,可能导致崩溃。
(3)ActiveX控件:如今的许多网站使用Flash、Silverlight和QuickTime等ActiveX控件来显示交互式内容和视频。因为ActiveX控件在本质上是在浏览器中运行的Windows应用程序,所以质量较差的控件可能导致浏览器选项卡崩溃或挂起。
(4)图形驱动程序:IE9向硬件加速图形的过渡高度依赖于生态系统中显卡驱动程序的质量。在IE9 Beta期间从反馈发送工具收到的崩溃报告中有41%是由显卡驱动程序造成的。这些崩溃发生在与加载项崩溃类似的场景中,所以它们对正常浏览具有非常重要的影响。
(5)其他第三方软件:许多软件程序(比如防病毒工具和自定义下载管理器)可能影响IE的可靠性。
基于Windows操作系统的错误报告,其与是操作系统进行绑定的,并且其只是反馈给开发人员,作为浏览器的使用者不会得到任何并于浏览器崩溃的报错或预警,即目前没有一个对浏览器崩溃进行预警的机制。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种对浏览器崩溃进行预警的方法和系统。
依据本发明的一个方面,提供一种对浏览器崩溃进行预警的系统,包括:
浏览器端和服务器端;
所述浏览器端包括一个或多个浏览器客户端;
GET接口和POST接口;
所述服务器端至少包括一第一崩溃服务器、一第二崩溃服务器和一第三崩溃服务器,其中,所述第一崩溃服务器用于崩溃基本信息的收集,所述第二崩溃服务器用于崩溃数据包的收集,所述第三崩溃服务器用于崩溃分析结果的回传;
所述浏览器客户端发生崩溃时,通过GET接口发送崩溃基本信息给所述第一崩溃服务器;
所述第一崩溃服务器处理所述崩溃基本信息,并向所述浏览器客户端返回参数;
所述浏览器客户端根据所述参数判断是否需要上传崩溃数据包,当需要上传时,则通过所述POST接口向所述第二崩溃服务器上传所述崩溃数据包;
自动化分析接口,根据收集的所述崩溃基本信息以及对所述崩溃数据包进行分析而产生崩溃分析结果;
所述第三崩溃服务器收到崩溃分析结果,向所述浏览器端返回崩溃预警。
可选地,所述崩溃基本信息包括:崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。
可选地,所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:
部分内存和崩溃的线程、线程调用栈;
系统崩溃的快照;
系统当前的与浏览器崩溃相关的寄存器信息。
可选地,所述第三崩溃服务器采用MySQL数据库作为存储引擎,MySQL数据库包括主库和从库,所述主库与从库之间数据进行自动同步;所述主库用于插入来自浏览器客户端的数据,所述从库主要用于保存崩溃基本信息以及对崩溃数据包进行了自动化崩溃分析后的分析结果,以便于后台管理员的管理和/或sphinx索引服务器的索引。
可选地,所述第三崩溃服务器向所述浏览器端返回崩溃预警,包括在所述浏览器端显示崩溃预警信息;所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息;所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。
可选地,所述特定用户包括:指定浏览器所在机器标识所对应的浏览器客户端;或浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器客户端。
可选地,所述崩溃预警信息至少包括下述信息中的一个:崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
可选地,所述浏览器端配置为:显示浏览器的各种版本单独监控结果或版本间的对比结果;或者,显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者,当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。
依据本发明的另一方面,提供一种对浏览器崩溃进行预警的方法,包括:
第一崩溃服务器接收来自浏览器端的至少一浏览器客户端在发生崩溃时通过GET接口发送来的崩溃基本信息,所述第一崩溃服务器处理所述崩溃基本信息,并向所述浏览器客户端返回参数,该参数标明是否需要上传该次崩溃时的崩溃数据包;
第二崩溃服务器在所述参数标明上传崩溃数据包时,接收通过浏览器侧的POST接口上传的崩溃数据包;
根据收集的所述崩溃基本信息以及对所述崩溃数据包进行自动化崩溃分析而产生崩溃分析结果;
第三崩溃服务器收到所述崩溃分析结果,并向所述浏览器端返回崩溃预警信息。
可选地,所述崩溃基本信息包括:崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。
可选地,所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:
部分内存和崩溃的线程、线程调用栈;
系统崩溃的快照;
系统当前的与浏览器崩溃相关的寄存器信息。
可选地,所述第三崩溃服务器采用MySQL数据库作为存储引擎,MySQL数据库包括主库和从库,所述主库与从库之间数据进行自动同步;所述主库用于插入来自浏览器客户端的数据,所述从库主要用于保存崩溃基本信息以及对崩溃数据包进行了自动化崩溃分析后的分析结果,以便于后台管理员的管理和/或sphinx索引服务器的索引。
可选地,对所述崩溃数据包进行自动化崩溃分析包括:通过自动化分析接口对获取的崩溃数据包进行分析,并将分析保存在自动化分析表的stack字段或callstack字段中,其中,stack和callstack分别是IE内核浏览器和WebKit内核浏览器中使用的参数,所述stack或者callstack字段包含:已分析出来的崩溃模块或函数名称,或者关键模块的崩溃情况;或调用上述崩溃模块或函数之前的浏览器端执行的步骤或者操作。
可选地,所述第三崩溃服务器向所述浏览器端返回崩溃预警,包括:检索所述callstack或者stack字段中的分析结果记录,获取特定用户给出的崩溃预警信息,并在所述浏览器端显示崩溃预警信息;所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息;所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。
可选地,所述特定用户包括:指定浏览器所在机器标识所对应的浏览器客户端;或浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器客户端。
可选地,所述崩溃预警信息至少包括下述信息中的一个:崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
可选地,对所述崩溃数据包进行自动化崩溃分析:
读取崩溃数据包,并把IE内核浏览器、WebKit内核浏览器各自的崩溃数据包分别传送到按时间进行划分的不同文件目录中;
实时监控所述按照时间进行划分目录下的文件,并实时对新的崩溃数据文件进行分析。
可选地,所述方法还包括:
配置浏览器端以显示浏览器的各种版本单独监控结果或版本间的对比结果;或者,以显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者,
配置浏览器端,当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。。
依据本发明的另一方面,提供一种浏览器崩溃预警的方法,包括:
当所述浏览器发生崩溃时,其通过GET接口发送崩溃基本信息给用于收集崩溃基本信息的第一崩溃服务器;
所述浏览器侧接收来自所述第一崩溃服务器处理所述崩溃基本信息而返回所述浏览器的参数,该参数标明是否需要上传该次崩溃时的崩溃数据包,当需要上传时,则通过所述POST接口向用于收集崩溃数据包的第二崩溃服务器上传所述崩溃数据包;
所述浏览器侧接收来自用于回传崩溃分析结果的第三崩溃服务器返回的、基于自动化分析接口根据收集的所述崩溃基本信息以及对所述崩溃数据包进行分析产生的崩溃分析结果的崩溃预警信息。
可选地,所述崩溃基本信息包括:崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。
可选地,所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:
部分内存和崩溃的线程、线程调用栈;
系统崩溃的快照;
系统当前的与浏览器崩溃相关的寄存器信息。
可选地,所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息;所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。
可选地,所述特定用户包括:指定浏览器所在机器标识所对应的浏览器;或浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器。
可选地,所述崩溃预警信息至少包括下述信息中的一个:崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
可选地,所述方法还包括:配置浏览器端以显示所述接收的崩溃预警信息。
可选地,所述浏览器侧接收的崩溃预警信息是依据浏览器侧的机器标识而发送到浏览器侧的。
可选地,所述显示所述接收的崩溃预警信息包括:显示浏览器的各种版本单独监控结果或版本间的对比结果;或者显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。
根据本发明的系统以及方法,可以在用户进行正常浏览时,基于很多用户提交的崩溃报告分析后的结果,预先告知某些可能会导致崩溃的因素和存在的风险,提醒用户作必要的更新操作,通过这种预警或提醒的方式以尽可能的减少用户浏览器的崩溃以及降低崩溃对用户的影响。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明提出的在云端对浏览器崩溃进行预警的系统框图;
图2示出了本发明提出的一种对浏览器崩溃进行预警的方法的流程图;
图3示出了本发明提出的一种浏览器崩溃预警的方法的流程图;
图4示出了浏览器端向云端发送Get请求信息的流程图;
图5示出了通过POST接口的dump包文件的上传流程图;
图6示出了在收到dump包之后的操作流程图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明提出了一种在云端对浏览器崩溃进行预警的系统,其系统框图如图1所示。该系统包括浏览器端100和云端200,其中浏览器端100包括一个或多个浏览器客户端,如图所示,浏览器客户端1,浏览器客户端2以及浏览器客户端n。云端200包括多个云崩溃服务器(例如云崩溃服务器4、云崩溃服务器5、云崩溃服务器6,这种划分仅为一种功能划分)、缓存服务器7、数据队列服务器8、MySQL数据库9、Sphinx索引服务器10、windows机器11和12,各个传输/发送/接收数据或信息的接口(如Get接口、POST接口),等等。这里以三个崩溃服务器为例,其中,云崩溃服务器4(第一崩溃服务器)主要负责崩溃基本信息的收集,云崩溃服务器5(第二崩溃服务器)主要负责崩溃数据包即dump包的收集,云崩溃服务器6(第三崩溃服务器)主要负责崩溃分析结果的回传。
当浏览器端的至少一个浏览器客户端(例如:某浏览器)发生崩溃时,浏览器客户端通过Get方式请求云崩溃服务器端,比如,通过GET接口发送崩溃基本信息到第一崩溃服务器4,由其对GET请求进行处理(处理该崩溃基本信息),浏览器端根据云崩溃服务器端的返回值,来确定是否需要上传dump包,比如,由第一崩溃服务器4向该浏览器客户端返回参数,在浏览器这一侧/端,接收到返回的该参数,该浏览器客户端会根据该返回的参数来判断是否需要上传崩溃数据包(dump包),例如,返回结果为“{″dumpid":"0","sverify:"sverify_val"}”,则表示不需要上传dump文件,返回结果为“{″dumpid":"dump_id","sverify:"sverify_val"}”,则表示需要上传dump文件,同时回传dump_id。然后,浏览器客户端根据云崩溃服务器端sverify值效验此次数据是否合法。
表1和表2分别示出了Get请求信息(其主要包括例如:崩溃基本信息)中的参数说明以及pubkey参数详细列表。Get请求信息包括pubkey,由表2可知pubkey包括version、crash_type、more_crash_name、more_crash_version、ie_version,其中version信息给出了崩溃浏览器的版本信息,more_crash_name给出了浏览器侧产生崩溃的模块、组件的名称,more_crash_versio给出了浏览器侧产生崩溃的模块、组件的版本,ie_version给出了浏览器侧产生崩溃时的IE环境的信息。这些Get请求信息也可以包含在该Get请求的崩溃基本信息中,如该崩溃基本信息也包括:崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个,等等。
表1
请求参数 | 必选 | 类型及范围 | 说明 |
pubkey | true | string | se/chrome公共参数部分,取值参见表2 |
custom | false | string | 自定义信息,多个值以下划线“_”分隔 |
cmd | false | string | 命令行参数,多个值以下划线“_”分隔 |
src | true | string | 产品名称 |
cverify | true | string | 客户端数据校验,用此字段来检验是否为合法数据 |
表2示出了pubkey参数详细列表。
表2
图2示出了本发明提出的一种对浏览器崩溃进行预警的方法的流程图。如图2所示,所述方法包括:
步骤21,第一崩溃服务器接收来自浏览器端的至少一浏览器客户端在发生崩溃时通过GET接口发送来的崩溃基本信息,所述第一崩溃服务器处理所述崩溃基本信息,并向所述浏览器客户端返回参数,该参数标明是否需要上传该次崩溃时的崩溃数据包。
其中,崩溃基本信息包括崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。例如,所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:部分内存和崩溃的线程、线程调用栈;系统崩溃的快照;系统当前的与浏览器崩溃相关的寄存器信息。
在服务器侧根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器。具体而言,可以利用MD5对崩溃基本信息进行加密,以生成崩溃唯一标识(Dumpkey)。假设所述预先定义的数目为3,即要求对于相同的崩溃数据的接收次数不超过3次。如果Dumpkey指示已经接收到3个与崩溃基本信息相对应的崩溃数据,则生成指示不允许上传崩溃数据的崩溃序号信息(例如,dumpid=0)并将其返回给所述浏览器;而如果Dumpkey指示已经接收到少于3个与崩溃基本信息相对应的崩溃数据,则生成指示允许上传崩溃数据的崩溃序号信息(例如,dumpid=dump_id)并将其返回给所述浏览器。另外,可以规定预先定义的浏览器主程序版本范围,例如,对于一个基于IE内核的安全浏览器,可以将版本范围规定为5.0至6.0版本,对于低于5.0版本的所述安全浏览器,可以生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给浏览器。上述3这个数目仅为所述预先定义的数目的示例,5.0至6.0版本的范围也仅为示例,本发明的范围并不局限于此,本领域技术人员可以根据实际需要选择其它数目和版本范围。在本发明中依据dumpid为0或者非零就可以判断出是否进行后续崩溃数据的上传操作,该dumpid是作为了发往浏览器侧的信息中的一部分的,浏览器侧依据该信息进行判断是否进行Dump数据的上传。
步骤22,第二崩溃服务器在所述参数标明上传崩溃数据包时,接收通过浏览器侧的POST接口上传的崩溃数据包。
步骤23,根据收集的所述崩溃基本信息以及对所述崩溃数据包进行自动化崩溃分析而产生崩溃分析结果。
可以通过自动化分析接口对获取的崩溃数据包进行分析,并将分析保存在自动化分析表的stack字段或callstack字段中,其中,stack和callstack分别是IE内核浏览器和WebKit内核浏览器中使用的参数,所述stack或者callstack字段包含:已分析出来的崩溃模块或函数名称,或者关键模块的崩溃情况;或调用上述崩溃模块或函数之前的浏览器端执行的步骤或者操作。
进一步,在对所述崩溃数据包进行自动化崩溃分析时,还包括读取崩溃数据包,并把IE内核浏览器、WebKit内核浏览器各自的崩溃数据包分别传送到按时间进行划分的不同文件目录中;实时监控所述按照时间进行划分目录下的文件,并实时对新的崩溃数据文件进行分析。
步骤24,第三崩溃服务器收到所述崩溃分析结果,并向所述浏览器端返回崩溃预警信息。
其中,所述第三崩溃服务器采用MySQL数据库作为存储引擎,MySQL数据库包括主库和从库,所述主库与从库之间数据进行自动同步;所述主库用于插入来自浏览器客户端的数据,所述从库主要用于保存崩溃基本信息以及对崩溃数据包进行了自动化崩溃分析后的分析结果,以便于后台管理员的管理和/或sphinx索引服务器的索引。
所述第三崩溃服务器向所述浏览器端返回崩溃预警,包括:检索所述callstack或者stack字段中的分析结果记录,获取特定用户给出的崩溃预警信息,并在所述浏览器端显示崩溃预警信息。其中,所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息。所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。所述特定用户包括:指定浏览器所在机器标识所对应的浏览器客户端;或浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器客户端。
其中,所述崩溃预警信息至少包括下述信息中的一个:崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
可选地,所述对浏览器崩溃进行预警的方法还可以包括:配置浏览器端以显示浏览器的各种版本单独监控结果或版本间的对比结果;或者,以显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者,配置浏览器端,当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。
可选地,在向浏览器侧返回的浏览器崩溃预警信息中,可以进一步地携带对于产生浏览器崩溃的解决方案,例如提供对于产生崩溃的低版本组件或者插件的更新链接,该链接会同上述浏览器崩溃预警信息一起显示给用户,在接收用户的点击触发操作后进行对应的浏览器更新步骤。
进一步地,对于服务器侧的通过自动化分析接口处,其提供的分析结果项目中进一步配置为提供针对产生崩溃的组件或者插件,或者常见浏览器崩溃的处理方案的入口,该入口可以是崩溃的组件或者插件的更新服务流程或者崩溃的组件或者插件的更新链接。
图3示出了本发明提出的一种浏览器崩溃预警的方法的流程图。如图3所示,包括:
步骤31,当所述浏览器发生崩溃时,其通过GET接口发送崩溃基本信息给用于收集崩溃基本信息的第一崩溃服务器。
步骤32,所述浏览器侧接收来自所述第一崩溃服务器处理所述崩溃基本信息而返回所述浏览器的参数,该参数标明是否需要上传该次崩溃时的崩溃数据包,当需要上传时,则通过所述POST接口向用于收集崩溃数据包的第二崩溃服务器上传所述崩溃数据包。
所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:部分内存和崩溃的线程、线程调用栈;系统崩溃的快照;系统当前的与浏览器崩溃相关的寄存器信息。
步骤33,所述浏览器侧接收来自用于回传崩溃分析结果的第三崩溃服务器返回的、基于自动化分析接口根据收集的所述崩溃基本信息以及对所述崩溃数据包进行分析产生的崩溃分析结果的崩溃预警信息。所述崩溃预警信息是依据浏览器侧的机器标识而发送到浏览器侧的。
其中,所述崩溃基本信息包括:崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。
可选地,所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息;所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。所述特定用户包括:指定浏览器所在机器标识所对应的浏览器;或浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器。
可选地,所述崩溃预警信息至少包括下述信息中的一个:崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
进一步,所述方法还包括:配置浏览器端以显示所述接收的崩溃预警信息,并可以显示浏览器的各种版本单独监控结果或版本间的对比结果;或者显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。
结合图4,说明浏览器端向云端发送Get请求信息的具体流程,下面以出现崩溃的浏览器客户端1以及负责收集Get请求信息的云崩溃服务器4为例说明,步骤如下:
步骤41,产品效验:云崩溃服务器4判断产品名称为src的产品是否合法;
步骤42,验证数据交互密钥:利用cverify字段进行效验,以保证数据来源合法和完整性;
步骤43,在缓存服务器7中设置2秒数据提交限制:防止浏览器客户端1在2秒钟之内连续提交两次相同数据,在那么短时间里视为一次提交,判断规则是基于cverify;
步骤44,在缓存服务器7中,根据一定规则生成dumpkey,根据dumpkey存在数量,判断是否可以上传dump;
在服务器侧根据所述崩溃基本信息生成崩溃唯一标识,在所述崩溃唯一标识指示已经接收到与所述崩溃基本信息相对应的预先定义的数目的相同的崩溃数据和/或浏览器主程序版本不在预先定义的版本范围内的情况下,生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给所述浏览器。具体而言,可以利用MD5对崩溃基本信息进行加密,以生成崩溃唯一标识(Dumpkey)。假设所述预先定义的数目为3,即要求对于相同的崩溃数据的接收次数不超过3次。如果Dumpkey指示已经接收到3个与崩溃基本信息相对应的崩溃数据,则生成指示不允许上传崩溃数据的崩溃序号信息(例如,dumpid=0)并将其返回给所述浏览器;而如果Dumpkey指示已经接收到少于3个与崩溃基本信息相对应的崩溃数据,则生成指示允许上传崩溃数据的崩溃序号信息(例如,dumpid=dump_id)并将其返回给所述浏览器。另外,可以规定预先定义的浏览器主程序版本范围,例如,对于一个基于IE内核的安全浏览器,可以将版本范围规定为5.0至6.0版本,对于低于5.0版本的所述安全浏览器,可以生成指示不允许上传崩溃数据的崩溃序号信息并将其返回给浏览器。上述3这个数目仅为所述预先定义的数目的示例,5.0至6.0版本的范围也仅为示例,本发明的范围并不局限于此,本领域技术人员可以根据实际需要选择其它数目和版本范围。在本发明中依据dumpid为0或者非零就可以判断出是否进行后续崩溃数据的上传操作,该dumpid是作为了发往浏览器侧的信息中的一部分的,浏览器侧依据该信息进行判断是否进行Dump数据的上传。
步骤45,把用户提交的Get请求信息放入数据队列服务器8,数据队列服务器8后端启动进程把队列中的数据存入到MySQL数据库9中;
步骤46,云崩溃服务器4把json格式信息返回给浏览器客户端1。如果可以上传dump,则浏览器客户端继续进行dump上传操作(下文结合图3有详细说明),否则此次交手结束。
其中,浏览器客户端1会根据云崩溃服务器4返回的标识进行判断是否可以/需要上传dump包,例如dumpid=0代表不允许上传dump包,大于0允许上传dump包;云崩溃服务器4返回的数据中带sverify,以保证数据确实是合法服务端的返回。如果需要或允许上传dump,则浏览器客户端会通过POST接口向云崩溃服务器端上传dump。具体如图5所示。
图5示出了通过POST接口的dump包文件的上传流程图。下面以出现崩溃的浏览器客户端1以及主要负责接收dump包文件的云崩溃服务器5即第二崩溃服务器5为例说明,具体流程如下:
步骤51,产品效验:云崩溃服务器判断产品名称为src的产品是否合法;
步骤52,验证数据交互密钥:利用cverify字段进行效验,以保证数据来源合法和完整性;
步骤53,针对POST数据其它一些安全效验,如空内容、ID是否正确等;
步骤54,把上传的dump文件移动到临时目录;
步骤55,把通过POST接口接收的全部信息存入到队列服务器中,通常每一台云崩溃服务器都有一个相应的队列服务器;
步骤56,向浏览器客户端返回信息告知此次交手是否完毕。
其中,dump包是一个二进制文件,其内容包括:1)部分内存和崩溃的线程、线程调用栈等相关信息,2)系统抓的崩溃快照,3)系统当前的寄存器。
图6示出了在收到dump包之后的操作流程。下面以出现崩溃的浏览器客户端1以及主要负责崩溃分析结果回传的云崩溃服务器6为例说明,具体为:
步骤61,读取dump队列,并把SE浏览器、CHROME浏览器各自的dump包分别传送到两台windows机器目录下,其中windows机器目录按年/月/日划分,windows按年月日自动目录生成脚本;
步骤62,linux向windows同步文件利用软件进行同步,例如cwRsync。
步骤63,在windows机器上安装了自动dump包分析程序,其实时监控当天目录下的文件,一旦发现新dump文件,则立刻分析并通过自动化分析接口向云崩溃服务器6反馈数据,从而实现了实时分析回传。
其中,文件上传大小一般是受约束的,最大5M;自动化分析接口是内部接口,因此取消了限制验证。在自动化分析接口中SE浏览器、CHROME浏览器各自传递的参数是不一样的。
总的来说,自动化分析接口会根据第一崩溃服务器4收集的崩溃基本信息以及对第二崩溃服务器5收集的dump进行的分析,产生崩溃分析结果。
云崩溃服务器6接收到自动化崩溃分析数据之后,调用sphinxUpdateAttributes方法更新内存中数据,sphinx索引服务器10根据配置文件里attr_flush_period所设置的间隔时间把更新的数据写入到硬盘。
sphinx索引服务器10每隔5分钟利用增量索引、合并索引方式达到数据实时更新。当数据库中已有数据很大,又不断有新数据加入到数据库时,如果全部重新建立索引很消耗资源,事实上,在原有数据上需要更新的数据相比较而言很少,例如原来的数据有几百万条,而新增的只是几千条,这样就可以使用“主索引+增量索引”的模式来实现近乎实时更新的功能。
云崩溃服务器6采用MySQL数据库作为永久存储引擎。当前系统采用主从分离、按月分表技术,MySQL主库与从库之间数据自动同步。主库专门用于来自客户端数据的插入,从库用于后台管理员管理及sphinx索引服务器10索引源头,在从库中保存Get请求信息以及从自动化分析接口获取的Dump数据的分析结果,其中分析结果是后续dump数据包上传后在进行了自动化崩溃分析后保存到MySQL从库中的。当云端崩溃服务器6收到崩溃分析结果后,会向浏览器侧返回崩溃预警。
一方面,管理员借助Sphinx索引服务器10对于MySQL从库中的收集Get请求信息进行检索以获取例如哪个IE版本的崩溃最多、哪个主程序(浏览器)的崩溃最多、哪种类型的崩溃最多等信息,其直接在Get请求信息中依据上述列举消息的请求量给出崩溃的预警信息,即第一类崩溃预警信息(当然,也可以由自动分析接口的自动分析处理来完成)。将这些检索得到的数据发送到提交崩溃数据的浏览器客户端进行显示,对用户进行预警哪些浏览器中的崩溃最多。
另一方面,dump的自动化崩溃分析包括:自动化分析接口获取dump并进行分析,并将对Dump数据的分析结果保存在表3、4中的stack字段和callstack字段中。stack是IE内核浏览器(例如安全SE浏览器)中使用的参数;callstack是WebKit内核浏览器(例如CHROME浏览器)中使用的参数。stack或者callstack中包含的信息如下:已经分析出来的崩溃模块或函数名称(也可以是关键模块的崩溃情况,即依据收集的崩溃信息中分析、统计出来的关键崩溃模块的信息);调用上述崩溃模块或函数之前的行为、动作(例如变量名冲突、内存崩溃等);待依据需求再定的内容(后续扩展的内容)。
崩溃数据包Dump的自动崩溃分析如:读取dump并把IE内核浏览器、WebK it内核浏览器各自的崩溃数据包分别传送到按时间进行划分的不同文件目录中,实时监控所述按照时间进行划分目录下的文件,并实时对新的崩溃数据文件进行分析,等等。
表3、表4分别示出了SE浏览器的dump自动化分析表和CHROME浏览器的dump自动化分析表。
表3
表4
这样管理者可以进一步检索callstack或者stack中的分析结果记录,通过Sphinx索引服务器10获取指定机器号MID的分析结果,然后依据MID显示在浏览器客户端,对浏览器客户端进行提示和预警,即第二类崩溃预警信息。
在云端崩溃服务器6向浏览器端返回的崩溃预警,包括检索callstack或stack字段中分析结果记录,获取特定用户给出的崩溃预警信息,并在浏览器端显示崩溃预警信息。
这些浏览器端被显示的崩溃预警信息包括了基于崩溃基本信息的各类参数进行统计而分析出的第一类崩溃预警信息,和/或,基于dump分析结果并针对特定用户给出的第二崩溃预警信息。
而崩溃预警信息还可以包括以下内容:崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息,等等。如最后报表展示内容举例。
基于云端针对Get请求信息中的数据以及对dump自动的崩溃分析之后,在浏览器客户端可以对崩溃进行预警显示,主要显示崩溃预警信息,这些崩溃预警信息,而浏览器客户端显示方式,例如:浏览器配置来可以显示浏览器的各种版本单独监控结果或版本间的对比结果,或者,可以显示每个浏览器版本的各种问题的数据量统计(崩溃参数统计结果),或者,导致崩溃的参数的问题数据量超过预期阀值时也可以直接通过短信/消息方式报警以提醒用户。
较佳地,除了上述MID,还可以进一步在云崩溃服务器侧获取分析结果的QID,所述QID为浏览器用户的唯一标识,在浏览器用户登录时就使用该QID进行唯一标识,这样可以实现对于特定用户(对应着QID)的崩溃分析,从而实现特定用户的预警提示。这里,可见,特定用户通常包括了:指定浏览器所在机器标识/机器号MID所对应着的浏览器客户端,或者,浏览器用户登录浏览器时分配有浏览器用户唯一标识QID所对应的浏览器客户端。
最后的报表展示例如:
1、崩溃率展示:1.1:各个版本的崩溃率、趋势图(真正崩溃);1.2:各个版本第一次异常比例、趋势图;1.3:各个版本全部异常、崩溃的比例、趋势图;1.4:各个版本第一次异常、第二次异常、第三次异常、大于三次以上异常比例;1.5:各个版本崩溃时发生几次异常比例:0、1、2、3、大于三次。
2、查看崩溃模块排名:例如查询条件:产品、日期、主程序版本号;展示结果:模块名称、次数、崩溃总次数崩溃比例。
3、查看崩溃模块排名:例如查询条件:产品、日期、主程序版本号;展示结果:模块名称、次数、崩溃总次数崩溃比例;查询条件:产品、日期、主程序版本号、模块名称、模块版本号;展示结果:崩溃堆栈、次数、崩溃总次数崩溃比例;可以看到该崩溃堆栈的崩溃趋势图和崩溃具体数据。
4、根据崩溃DumpKey排名:例如查询条件:产品、日期、主程序版本号、DumpKey、次数、模块名称、崩溃偏移、崩溃堆栈MD5、IE版本号、操作系统版本号、处理状态。展示结果:DumpKey、次数、崩溃堆栈、崩溃模块、崩溃偏移、崩溃堆栈MD5、IE版本号、操作系统版本号、处理状态、处理结果。可以看到该DumpKey的崩溃趋势图和崩溃具体数据。
5、崩溃进程类型排名:例如查询条件:产品、日期、主程序版本号;展示结果:进程类型、次数、崩溃总次数、崩溃比例。
6、崩溃线程类型排名:例如查询条件:产品、日期、主程序版本号;展示结果:线程程类型、次数、崩溃总次数、崩溃比例。
7、进程崩溃阶段排名:例如查询条件:产品、日期、主程序版本号;展示结果:进程崩溃阶段、次数、崩溃总次数、崩溃比例。
8、线程崩溃阶段排名:例如查询条件:产品、日期、主程序版本号;展示结果:线程崩溃阶段、次数、崩溃总次数、崩溃比例。
9、详情表查询:例如查询条件:产品、日期、主程序版本号、MID、Dumpkey、stackmd5、崩溃模块、崩溃模块版本、偏移、崩溃类型、崩溃堆栈、操作系统、IE版本号、进程类型、线程类型、M值、处理状态、处理结果。展示:产品、日期、主程序版本号、MID、Dumpkey、stackmd5、主程序版本号、崩溃模块、崩溃模块版本、偏移、崩溃类型、崩溃堆栈、操作系统、IE版本号、进程类型、线程类型、M值、处理状态、处理结果。
综上,根据浏览器的登录用户和非登录用户上报的Dump数据或Get请求信息,能够及时的获取到基于Get请求信息和/或该次Dump分析结果的预警告示,实现实时化、个性化的预警。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (27)
1.一种对浏览器崩溃进行预警的系统,包括:
浏览器端和服务器端;
所述浏览器端包括一个或多个浏览器客户端;
GET接口和POST接口;
所述服务器端至少包括一第一崩溃服务器、一第二崩溃服务器和一第三崩溃服务器,其中,所述第一崩溃服务器用于崩溃基本信息的收集,所述第二崩溃服务器用于崩溃数据包的收集,所述第三崩溃服务器用于崩溃分析结果的回传;
所述浏览器客户端发生崩溃时,通过GET接口发送崩溃基本信息给所述第一崩溃服务器;
所述第一崩溃服务器处理所述崩溃基本信息,并向所述浏览器客户端返回参数;
所述浏览器客户端根据所述参数判断是否需要上传崩溃数据包,当需要上传时,则通过所述POST接口向所述第二崩溃服务器上传所述崩溃数据包;
自动化分析接口,根据收集的所述崩溃基本信息以及对所述崩溃数据包进行分析而产生崩溃分析结果;
所述第三崩溃服务器收到崩溃分析结果,向所述浏览器端返回崩溃预警。
2.如权利要求1所述的系统,其特征在于,所述崩溃基本信息包括:
崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。
3.如权利要求1所述的系统,其特征在于:
所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:
部分内存和崩溃的线程、线程调用栈;
系统崩溃的快照;
系统当前的与浏览器崩溃相关的寄存器信息。
4.如权利要求1所述的系统,其特征在于,所述第三崩溃服务器采用MySQL数据库作为存储引擎,MySQL数据库包括主库和从库,所述主库与从库之间数据进行自动同步;
所述主库用于插入来自浏览器客户端的数据,所述从库主要用于保存崩溃基本信息以及对崩溃数据包进行了自动化崩溃分析后的分析结果,以便于后台管理员的管理和/或sphinx索引服务器的索引。
5.如权利要求1所述的系统,其特征在于,所述第三崩溃服务器向所述浏览器端返回崩溃预警,包括在所述浏览器端显示崩溃预警信息;
所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息;
所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;
所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。
6.如权利要求5所述的系统,其特征在于,所述特定用户包括:
指定浏览器所在机器标识所对应的浏览器客户端;或
浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器客户端。
7.如权利要求5所述的系统,其特征在于,所述崩溃预警信息至少包括下述信息中的一个:
崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
8.如权利要求1所述的系统,其特征在于,所述浏览器端配置为:
显示浏览器的各种版本单独监控结果或版本间的对比结果;或者,
显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者,
当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。
9.一种对浏览器崩溃进行预警的方法,包括:
第一崩溃服务器接收来自浏览器端的至少一浏览器客户端在发生崩溃时通过GET接口发送来的崩溃基本信息,所述第一崩溃服务器处理所述崩溃基本信息,并向所述浏览器客户端返回参数,该参数标明是否需要上传该次崩溃时的崩溃数据包;
第二崩溃服务器在所述参数标明上传崩溃数据包时,接收通过浏览器侧的POST接口上传的崩溃数据包;
根据收集的所述崩溃基本信息以及对所述崩溃数据包进行自动化崩溃分析而产生崩溃分析结果;
第三崩溃服务器收到所述崩溃分析结果,并向所述浏览器端返回崩溃预警信息。
10.如权利要求9所述的方法,其特征在于,所述崩溃基本信息包括:
崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。
11.如权利要求9所述的方法,其特征在于:
所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:
部分内存和崩溃的线程、线程调用栈;
系统崩溃的快照;
系统当前的与浏览器崩溃相关的寄存器信息。
12.如权利要求9所述的方法,其特征在于,所述第三崩溃服务器采用MySQL数据库作为存储引擎,MySQL数据库包括主库和从库,所述主库与从库之间数据进行自动同步;
所述主库用于插入来自浏览器客户端的数据,所述从库主要用于保存崩溃基本信息以及对崩溃数据包进行了自动化崩溃分析后的分析结果,以便于后台管理员的管理和/或sphinx索引服务器的索引。
13.如权利要求9所述的方法,其特征在于,对所述崩溃数据包进行自动化崩溃分析包括:
通过自动化分析接口对获取的崩溃数据包进行分析,并将分析保存在自动化分析表的stack字段或callstack字段中,其中,stack和callstack分别是IE内核浏览器和WebKit内核浏览器中使用的参数,所述stack或者callstack字段包含:
已分析出来的崩溃模块或函数名称,或者关键模块的崩溃情况;或
调用上述崩溃模块或函数之前的浏览器端执行的步骤或者操作。
14.如权利要求13所述的方法,其特征在于,所述第三崩溃服务器向所述浏览器端返回崩溃预警,包括:
检索所述callstack或者stack字段中的分析结果记录,获取特定用户给出的崩溃预警信息,并在所述浏览器端显示崩溃预警信息;
所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息;
所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;
所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。
15.如权利要求14所述的方法,其特征在于,所述特定用户包括:
指定浏览器所在机器标识所对应的浏览器客户端;或
浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器客户端。
16.如权利要求14所述的方法,其特征在于,所述崩溃预警信息至少包括下述信息中的一个:
崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
17.如权利要求13所述的方法,其特征在于,对所述崩溃数据包进行自动化崩溃分析:
读取崩溃数据包,并把IE内核浏览器、WebKit内核浏览器各自的崩溃数据包分别传送到按时间进行划分的不同文件目录中;
实时监控所述按照时间进行划分目录下的文件,并实时对新的崩溃数据文件进行分析。
18.如权利要求9所述的方法,其特征在于,还包括:
配置浏览器端以显示浏览器的各种版本单独监控结果或版本间的对比结果;或者,以显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者,
配置浏览器端,当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。
19.一种浏览器崩溃预警的方法,包括:
当所述浏览器发生崩溃时,其通过GET接口发送崩溃基本信息给用于收集崩溃基本信息的第一崩溃服务器;
所述浏览器侧接收来自所述第一崩溃服务器处理所述崩溃基本信息而返回所述浏览器的参数,该参数标明是否需要上传该次崩溃时的崩溃数据包,当需要上传时,则通过所述POST接口向用于收集崩溃数据包的第二崩溃服务器上传所述崩溃数据包;
所述浏览器侧接收来自用于回传崩溃分析结果的第三崩溃服务器返回的、基于自动化分析接口根据收集的所述崩溃基本信息以及对所述崩溃数据包进行分析产生的崩溃分析结果的崩溃预警信息。
20.如权利要求19所述的方法,其特征在于,所述崩溃基本信息包括:
崩溃浏览器的版本信息、浏览器所在硬件的标识、浏览器侧产生崩溃的模块或组件的名称、浏览器侧产生崩溃的模块或组件的版本以及浏览器侧产生崩溃时的IE环境的信息中的至少一个。
21.如权利要求19所述的方法,其特征在于:
所述崩溃数据包是一个二进制文件,其内容至少包括下述项中的一个:
部分内存和崩溃的线程、线程调用栈;
系统崩溃的快照;
系统当前的与浏览器崩溃相关的寄存器信息。
22.如权利要求19所述的方法,其特征在于,所述崩溃预警信息包括:第一类崩溃预警信息和/或第二类崩溃预警信息;
所述第一类崩溃预警信息是基于崩溃基本信息的各类参数进行统计而分析出的崩溃预警信息;
所述第二类崩溃预警信息是基于崩溃数据包的分析结果并针对特定用户给出的崩溃预警信息。
23.如权利要求22所述的方法,其特征在于,所述特定用户包括:
指定浏览器所在机器标识所对应的浏览器;或
浏览器用户登录浏览器时分配有浏览器用户唯一标识所对应的浏览器。
24.如权利要求22所述的方法,其特征在于,所述崩溃预警信息至少包括下述信息中的一个:
崩溃率信息、崩溃模块信息、崩溃堆栈信息、崩溃进程类型信息、崩溃线程类型信息、进程崩溃阶段信息、线程崩溃阶段信息、指定崩溃数据包的标识信息。
25.如权利要求19所述的方法,其特征在于,还包括:
配置浏览器端以显示所述接收的崩溃预警信息。
26.如权利要求19所述的方法,其特征在于,所述浏览器侧接收的崩溃预警信息是依据浏览器侧的机器标识而发送到浏览器侧的。
27.如权利要求25所述的方法,其特征在于,所述显示所述接收的崩溃预警信息包括:
显示浏览器的各种版本单独监控结果或版本间的对比结果;或者
显示每个浏览器版本的浏览器崩溃的参数的统计结果;或者
当导致浏览器崩溃的参数的数据量超过预期阀值时通过消息提醒方式提示用户进行预警。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310004511.6A CN103077108B (zh) | 2013-01-07 | 2013-01-07 | 一种对浏览器崩溃进行预警的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310004511.6A CN103077108B (zh) | 2013-01-07 | 2013-01-07 | 一种对浏览器崩溃进行预警的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103077108A true CN103077108A (zh) | 2013-05-01 |
CN103077108B CN103077108B (zh) | 2015-11-25 |
Family
ID=48153641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310004511.6A Expired - Fee Related CN103077108B (zh) | 2013-01-07 | 2013-01-07 | 一种对浏览器崩溃进行预警的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103077108B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399803A (zh) * | 2013-07-29 | 2013-11-20 | 北京小米科技有限责任公司 | 浏览器崩溃信息的收集方法、装置及终端设备 |
CN104424090A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种标识崩溃的方法、装置和系统 |
CN104506658A (zh) * | 2015-01-13 | 2015-04-08 | 厦门美图之家科技有限公司 | 一种应用程序的崩溃预警方法和系统 |
CN105975873A (zh) * | 2016-04-28 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 数据泄露侦测方法和装置 |
CN106354646A (zh) * | 2016-08-30 | 2017-01-25 | 竞技世界(北京)网络技术有限公司 | 一种分析转储文件的方法 |
CN106484840A (zh) * | 2016-09-30 | 2017-03-08 | 上海聚力传媒技术有限公司 | 自动更新垂直检索索引的方法和装置 |
CN109324965A (zh) * | 2018-09-18 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种监测flock导致客户端崩溃的自动化测试方法 |
CN109669799A (zh) * | 2019-01-02 | 2019-04-23 | 深圳市网心科技有限公司 | 错误上报控制方法、装置及存储介质 |
CN110445632A (zh) * | 2018-05-04 | 2019-11-12 | 北京京东尚科信息技术有限公司 | 一种预防客户端崩溃的方法和装置 |
CN111061611A (zh) * | 2019-12-10 | 2020-04-24 | 英业达科技有限公司 | 浏览器操作异常记录的管理方法 |
CN112559277A (zh) * | 2019-09-25 | 2021-03-26 | 北京百度网讯科技有限公司 | 崩溃信息的处理方法、系统、车载设备、服务器、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005281A1 (en) * | 2006-06-29 | 2008-01-03 | Microsoft Corporation | Error capture and reporting in a distributed computing environment |
CN101159000A (zh) * | 2007-10-17 | 2008-04-09 | 深圳市迅雷网络技术有限公司 | 一种网页安全信息检测系统及方法 |
US20100257255A1 (en) * | 2009-04-03 | 2010-10-07 | Phillips Derek J | Tracking remote browser crashes via cookies |
CN202449628U (zh) * | 2012-02-07 | 2012-09-26 | 密西西比国际水务有限公司 | 一种防止活性焦水力输送过程中水倒流回料仓内的装置 |
-
2013
- 2013-01-07 CN CN201310004511.6A patent/CN103077108B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080005281A1 (en) * | 2006-06-29 | 2008-01-03 | Microsoft Corporation | Error capture and reporting in a distributed computing environment |
CN101159000A (zh) * | 2007-10-17 | 2008-04-09 | 深圳市迅雷网络技术有限公司 | 一种网页安全信息检测系统及方法 |
US20100257255A1 (en) * | 2009-04-03 | 2010-10-07 | Phillips Derek J | Tracking remote browser crashes via cookies |
CN202449628U (zh) * | 2012-02-07 | 2012-09-26 | 密西西比国际水务有限公司 | 一种防止活性焦水力输送过程中水倒流回料仓内的装置 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103399803A (zh) * | 2013-07-29 | 2013-11-20 | 北京小米科技有限责任公司 | 浏览器崩溃信息的收集方法、装置及终端设备 |
CN103399803B (zh) * | 2013-07-29 | 2017-05-03 | 小米科技有限责任公司 | 浏览器崩溃信息的收集方法、装置及终端设备 |
CN104424090A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种标识崩溃的方法、装置和系统 |
CN104506658B (zh) * | 2015-01-13 | 2018-06-01 | 厦门美图之家科技有限公司 | 一种应用程序的崩溃预警方法和系统 |
CN104506658A (zh) * | 2015-01-13 | 2015-04-08 | 厦门美图之家科技有限公司 | 一种应用程序的崩溃预警方法和系统 |
CN105975873A (zh) * | 2016-04-28 | 2016-09-28 | 深圳前海微众银行股份有限公司 | 数据泄露侦测方法和装置 |
CN105975873B (zh) * | 2016-04-28 | 2019-02-26 | 深圳前海微众银行股份有限公司 | 数据泄露侦测方法和装置 |
CN106354646B (zh) * | 2016-08-30 | 2018-12-25 | 竞技世界(北京)网络技术有限公司 | 一种分析转储文件的方法 |
CN106354646A (zh) * | 2016-08-30 | 2017-01-25 | 竞技世界(北京)网络技术有限公司 | 一种分析转储文件的方法 |
CN106484840A (zh) * | 2016-09-30 | 2017-03-08 | 上海聚力传媒技术有限公司 | 自动更新垂直检索索引的方法和装置 |
CN110445632A (zh) * | 2018-05-04 | 2019-11-12 | 北京京东尚科信息技术有限公司 | 一种预防客户端崩溃的方法和装置 |
CN110445632B (zh) * | 2018-05-04 | 2023-09-01 | 北京京东尚科信息技术有限公司 | 一种预防客户端崩溃的方法和装置 |
CN109324965A (zh) * | 2018-09-18 | 2019-02-12 | 郑州云海信息技术有限公司 | 一种监测flock导致客户端崩溃的自动化测试方法 |
CN109669799A (zh) * | 2019-01-02 | 2019-04-23 | 深圳市网心科技有限公司 | 错误上报控制方法、装置及存储介质 |
CN109669799B (zh) * | 2019-01-02 | 2022-10-21 | 深圳市网心科技有限公司 | 错误上报控制方法、装置及存储介质 |
CN112559277A (zh) * | 2019-09-25 | 2021-03-26 | 北京百度网讯科技有限公司 | 崩溃信息的处理方法、系统、车载设备、服务器、电子设备及存储介质 |
CN111061611A (zh) * | 2019-12-10 | 2020-04-24 | 英业达科技有限公司 | 浏览器操作异常记录的管理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103077108B (zh) | 2015-11-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103077108B (zh) | 一种对浏览器崩溃进行预警的方法和系统 | |
US10467316B2 (en) | Systems and methods for web analytics testing and web development | |
CN108874558B (zh) | 分布式事务的消息订阅方法、电子装置及可读存储介质 | |
US10437703B2 (en) | Correlation of source code with system dump information | |
CN103019879B (zh) | 浏览器崩溃信息的处理方法及系统 | |
CN1664810A (zh) | 辅助表格填充 | |
CN111563016B (zh) | 日志采集分析方法、装置、计算机系统及可读存储介质 | |
CN110727580A (zh) | 响应数据生成、全流程接口数据处理方法及相关设备 | |
CN103324713A (zh) | 多级服务器中的数据处理方法、装置和数据处理系统 | |
US9513997B2 (en) | Test data management | |
CN113791586A (zh) | 一种新型的工业app与标识注册解析集成方法 | |
CN103593406A (zh) | 一种静态资源标识处理方法及装置 | |
CN103440460A (zh) | 一种应用系统变更验证方法及验证系统 | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN111143434A (zh) | 数据智能核对方法、装置、设备及存储介质 | |
US9110933B1 (en) | Processing data triggers in an untrusted environment based on information stored in a trusted environment | |
CN108234392B (zh) | 一种网站的监控方法及装置 | |
CN103167016A (zh) | 一种浏览器崩溃数据上传和处理的方法和装置 | |
CN111967853A (zh) | 一种报送监管数据的方法、装置、设备和可读介质 | |
CN111221711A (zh) | 用户行为数据处理方法、服务器及存储介质 | |
CN110674426A (zh) | 网页行为上报方法和装置 | |
KR102349495B1 (ko) | 가상 서버들로부터 대용량 로그 파일들을 프로세싱하는 컴퓨터 시스템 및 방법. | |
CN115221936A (zh) | 数据库系统中的记录匹配 | |
CN114385722A (zh) | 接口属性的一致性校验方法、装置、电子设备和存储介质 | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20151125 Termination date: 20220107 |