[go: up one dir, main page]

CN114416560A - Program crash analysis aggregation method and system - Google Patents

Program crash analysis aggregation method and system Download PDF

Info

Publication number
CN114416560A
CN114416560A CN202210060228.4A CN202210060228A CN114416560A CN 114416560 A CN114416560 A CN 114416560A CN 202210060228 A CN202210060228 A CN 202210060228A CN 114416560 A CN114416560 A CN 114416560A
Authority
CN
China
Prior art keywords
information
crash
program
analysis
data
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.)
Pending
Application number
CN202210060228.4A
Other languages
Chinese (zh)
Inventor
金健翔
赵晨辰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202210060228.4A priority Critical patent/CN114416560A/en
Publication of CN114416560A publication Critical patent/CN114416560A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3668Testing of software
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种程序崩溃分析聚合方法,包括:接收用户设备的程序崩溃信息;过滤所述用户设备的程序崩溃信息,并分发过滤后的程序崩溃信息;解析过滤后的程序崩溃信息以得到标签;将所述过滤后的程序崩溃信息及所述标签存储到数据库中,以供查询、读取和/或聚合分析。在本申请中,通过上述步骤实现闭环全流程,确保了数据的安全性,尤其是程序敏感数据的安全性,消除外部平台的“系统不可用”隐患;而且可以高效且准确地定位出问题并生成分析报告。

Figure 202210060228

The present application discloses a program crash analysis and aggregation method, comprising: receiving program crash information of a user equipment; filtering the program crash information of the user equipment, and distributing the filtered program crash information; parsing the filtered program crash information to obtain tag; storing the filtered program crash information and the tag in a database for query, reading and/or aggregate analysis. In this application, the whole closed-loop process is realized through the above steps, which ensures the security of data, especially the security of program-sensitive data, and eliminates the hidden danger of "system unavailability" of external platforms; moreover, problems can be efficiently and accurately located and solved. Generate analysis reports.

Figure 202210060228

Description

程序崩溃分析聚合方法和系统Program crash analysis aggregation method and system

技术领域technical field

本申请涉及数据处理领域,尤其涉及一种程序崩溃分析聚合方法、装置、计算机设备及计算机可读存储介质。The present application relates to the field of data processing, and in particular, to a program crash analysis and aggregation method, apparatus, computer device, and computer-readable storage medium.

背景技术Background technique

随着互联网技术的快速发展,设备上可安装的应用软件越来越多。各平台的差异性使用户在使用应用软件的时候,经常出现线上崩溃的情况,并借助外部平台分析。With the rapid development of Internet technology, more and more application software can be installed on the device. The differences of various platforms make users often experience online crashes when using the application software, and analyze them with the help of external platforms.

现有的程序崩溃分析聚合平台,具有以下缺点:(1)数据安全性差;(2)容易受到外部平台的“系统不可用”隐患;(3)问题定位和聚合效率低下且不准确。The existing program crash analysis aggregation platform has the following shortcomings: (1) poor data security; (2) vulnerable to the hidden danger of "system unavailability" from external platforms; (3) problem location and aggregation are inefficient and inaccurate.

发明内容SUMMARY OF THE INVENTION

有鉴于此,本申请实施例的目的是提供一种程序崩溃分析聚合方法、装置、计算机设备、计算机可读存储介质,以及程序崩溃分析聚合系统,可以解决上述问题。In view of this, the purpose of the embodiments of the present application is to provide a program crash analysis aggregation method, apparatus, computer equipment, computer-readable storage medium, and program crash analysis aggregation system, which can solve the above problems.

本申请实施例的一个方面提供了一种程序崩溃分析聚合方法,包括:An aspect of the embodiments of the present application provides a program crash analysis and aggregation method, including:

接收用户设备的程序崩溃信息;Receive program crash information from the user's device;

过滤所述用户设备的程序崩溃信息,并分发过滤后的程序崩溃信息;Filter the program crash information of the user equipment, and distribute the filtered program crash information;

解析过滤后的程序崩溃信息以得到标签;Parse the filtered program crash information to get the label;

将所述过滤后的程序崩溃信息及所述标签存储到数据库中,以供查询、读取和/或聚合分析。The filtered program crash information and the tag are stored in a database for query, reading and/or aggregate analysis.

可选的,所述过滤所述用户设备的程序崩溃信息,包括:Optionally, the filtering of the program crash information of the user equipment includes:

根据预先设置的多个字段,过滤所述用户设备的程序崩溃信息;Filter the program crash information of the user equipment according to a plurality of preset fields;

其中,所述多个字段包括基础字段和扩展字段;Wherein, the multiple fields include basic fields and extended fields;

所述扩展字段包括崩溃类型、堆栈信息、崩溃描述、崩溃页面、崩溃时的设备运行状态信息。The extended field includes crash type, stack information, crash description, crash page, and device running state information at the time of crash.

可选的,所述标签包括第一标签和第二标签,所述过滤后的程序崩溃信息包括堆栈信息和崩溃描述;Optionally, the label includes a first label and a second label, and the filtered program crash information includes stack information and crash description;

所述解析过滤后的程序崩溃信息以得到标签,包括:The parsed and filtered program crash information to obtain tags, including:

将所述堆栈信息传递至解析层,通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息;passing the stack information to the parsing layer, and parsing the stack information through the parsing layer to obtain the parsed stack information;

根据解析后的堆栈信息生成第一标签;Generate a first label according to the parsed stack information;

根据所述崩溃描述生成第二标签;generating a second tag according to the crash description;

将所述第一标签和所述第二标签写入到所述数据库;writing the first tag and the second tag to the database;

其中,所述第一标签和所述第二标签在所述数据库均与所述程序崩溃信息相关联。Wherein, both the first tag and the second tag are associated with the program crash information in the database.

可选的,所述根据解析后的堆栈信息生成第一标签,包括:Optionally, generating the first label according to the parsed stack information includes:

删除所述解析后的堆栈信息中的无效信息,得到与程序本身关联的有效堆栈信息;其中,所述无效信息至少包括以下一项或多项:与操作系统关联的信息、数字;及Delete invalid information in the parsed stack information to obtain valid stack information associated with the program itself; wherein, the invalid information includes at least one or more of the following: information associated with the operating system, numbers; and

根据与所述程序本身关联的有效堆栈信息,通过哈希算法计算得到所述第一标签。According to the valid stack information associated with the program itself, the first tag is obtained by calculation through a hash algorithm.

可选的,所述用户设备为iOS设备;所述通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息,包括:Optionally, the user equipment is an iOS device; the stack information is parsed by the parsing layer to obtain the parsed stack information, including:

通过所述堆栈信息中的符号表的标识和偏移量,以及构建IPA的符号表文件,查询目标函数名;Through the identifier and offset of the symbol table in the stack information, and the symbol table file for building the IPA, query the target function name;

其中,所述偏移量为发生崩溃的地址和预设基准地址之差;Wherein, the offset is the difference between the address where the crash occurs and the preset reference address;

其中,所述目标函数名对应的函数用于调用出现崩溃的对象。The function corresponding to the target function name is used to call the crashed object.

可选的,所述用户设备为Android设备;所述通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息,包括:Optionally, the user equipment is an Android device; the stack information is parsed by the parsing layer to obtain the parsed stack information, including:

通过所述堆栈信息中的混淆数据和构建APK的mapping文件,查询混淆前数据;Through the obfuscation data in the stack information and the mapping file for building the APK, query the data before obfuscation;

其中,所述混淆数据为程序运行时的类名;Wherein, the obfuscated data is the class name when the program is running;

其中,所述混淆前数据包括目标函数名,该目标函数名对应的函数用于调用出现崩溃的对象。The pre-obfuscation data includes a target function name, and the function corresponding to the target function name is used to call the crashed object.

可选的,还包括:Optionally, also include:

基于第一标签和第二标签,对所述数据库中预设时段的程序崩溃信息进行聚合,得到多个聚合数据;同一个聚合数据中的每条数据具有相同的第一标签和/或相同的第二标签;Based on the first tag and the second tag, the program crash information of the preset period in the database is aggregated to obtain multiple aggregated data; each piece of data in the same aggregated data has the same first tag and/or the same second label;

基于所述多个聚合数据生成分析结果,所述分析结果包括导致程序崩溃的一个或多个问题;及generating an analysis result based on the plurality of aggregated data, the analysis result including one or more issues that caused the program to crash; and

将所述分析报告发送到与所述一个或多个问题关联的一个或多个目标群组中。The analysis report is sent to one or more target groups associated with the one or more questions.

本申请实施例的又一个方面提供了一种程序崩溃分析聚合装置,包括:Another aspect of the embodiments of the present application provides a program crash analysis and aggregation apparatus, including:

接收模块,用于接收用户设备的程序崩溃信息;The receiving module is used to receive the program crash information of the user equipment;

分发模块,用于过滤所述用户设备的程序崩溃信息,并分发过滤后的程序崩溃信息;a distribution module, used for filtering the program crash information of the user equipment, and distributing the filtered program crash information;

解析模块,用于解析过滤后的程序崩溃信息以得到标签;Parsing module, used to parse the filtered program crash information to get tags;

存储模块,用于将所述过滤后的程序崩溃信息及所述标签存储到数据库中,以供查询、读取和/或聚合分析。A storage module, configured to store the filtered program crash information and the tag in a database for query, reading and/or aggregate analysis.

本申请实施例的又一个方面提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上所述的程序崩溃分析聚合方法的步骤。Another aspect of the embodiments of the present application provides a computer device, the computer device includes a memory, a processor, and a computer program stored in the memory and executable on the processor, when the processor executes the computer program Steps for implementing the program crash analysis aggregation method as described above.

本申请实施例的又一个方面提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上所述的程序崩溃分析聚合方法的步骤。Another aspect of the embodiments of the present application provides a computer-readable storage medium, where a computer program is stored in the computer-readable storage medium, and the computer program can be executed by at least one processor, so that the at least one The processor performs the steps of the program crash analysis aggregation method as described above.

本申请实施例的又一个方面提供了一种程序崩溃分析聚合系统,包括:Another aspect of the embodiments of the present application provides a program crash analysis and aggregation system, including:

数据传输层,用于接收用户设备的程序崩溃信息;The data transport layer is used to receive the program crash information of the user equipment;

数据消费层,用于接收和过滤所述用户设备的程序崩溃信息,并分发过滤后的程序崩溃信息;The data consumption layer is used to receive and filter the program crash information of the user equipment, and distribute the filtered program crash information;

数据清洗层,用于解析过滤后的程序崩溃信息以得到标签;The data cleaning layer is used to parse the filtered program crash information to get the tags;

存储层,用于存储所述过滤后的程序崩溃信息及所述标签,以供查询、读取和/或聚合分析。The storage layer is used to store the filtered program crash information and the tag for query, reading and/or aggregate analysis.

可选的,所述数据消费层,还用于:Optionally, the data consumption layer is further used for:

根据预先设置的多个字段,过滤所述用户设备的程序崩溃信息;Filter the program crash information of the user equipment according to a plurality of preset fields;

其中,所述多个字段包括基础字段和扩展字段;Wherein, the multiple fields include basic fields and extended fields;

所述扩展字段包括崩溃类型、堆栈信息、崩溃描述、崩溃页面、崩溃时的设备运行状态信息。The extended field includes crash type, stack information, crash description, crash page, and device running state information at the time of crash.

可选的,所述标签包括第一标签和第二标签,所述过滤后的程序崩溃信息包括堆栈信息和崩溃描述;Optionally, the label includes a first label and a second label, and the filtered program crash information includes stack information and crash description;

所述数据清洗层,还用于:The data cleaning layer is also used for:

将所述堆栈信息传递至解析层,通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息;passing the stack information to the parsing layer, and parsing the stack information through the parsing layer to obtain the parsed stack information;

根据解析后的堆栈信息生成第一标签;Generate a first label according to the parsed stack information;

根据所述崩溃描述生成第二标签;generating a second tag according to the crash description;

将所述第一标签和所述第二标签写入到所述存储层;writing the first tag and the second tag to the storage layer;

其中,所述第一标签和所述第二标签在所述存储层均与所述程序崩溃信息相关联。Wherein, both the first tag and the second tag are associated with the program crash information at the storage layer.

可选的,所述根据解析后的堆栈信息生成第一标签,包括:Optionally, generating the first label according to the parsed stack information includes:

删除所述解析后的堆栈信息中的无效信息,得到与程序本身关联的有效堆栈信息;其中,所述无效信息至少包括以下一项或多项:与操作系统关联的信息、数字;及Delete invalid information in the parsed stack information to obtain valid stack information associated with the program itself; wherein, the invalid information includes at least one or more of the following: information associated with the operating system, numbers; and

根据与所述程序本身关联的有效堆栈信息,通过哈希算法计算得到所述第一标签。According to the valid stack information associated with the program itself, the first tag is obtained by calculation through a hash algorithm.

可选的,所述用户设备为iOS设备;所述通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息,包括:Optionally, the user equipment is an iOS device; the stack information is parsed by the parsing layer to obtain the parsed stack information, including:

通过所述堆栈信息中的符号表的标识和偏移量,以及构建IPA的符号表文件,查询目标函数名;Through the identifier and offset of the symbol table in the stack information, and the symbol table file for building the IPA, query the target function name;

其中,所述偏移量为发生崩溃的地址和预设基准地址之差;Wherein, the offset is the difference between the address where the crash occurs and the preset reference address;

其中,所述目标函数名对应的函数用于调用出现崩溃的对象。The function corresponding to the target function name is used to call the crashed object.

可选的,所述用户设备为Android设备;所述通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息,包括:Optionally, the user equipment is an Android device; the stack information is parsed by the parsing layer to obtain the parsed stack information, including:

通过所述堆栈信息中的混淆数据和构建APK的mapping文件,查询混淆前数据;Through the obfuscation data in the stack information and the mapping file for building the APK, query the data before obfuscation;

其中,所述混淆数据为程序运行时的类名;Wherein, the obfuscated data is the class name when the program is running;

其中,所述混淆前数据包括目标函数名,该目标函数名对应的函数用于调用出现崩溃的对象。The pre-obfuscation data includes a target function name, and the function corresponding to the target function name is used to call the crashed object.

可选的,还包括自动诊断系统,用于:Optionally, also includes an automatic diagnostic system for:

基于第一标签和第二标签,对所述存储层中预设时段的程序崩溃信息进行聚合,得到多个聚合数据;同一个聚合数据中的每条数据具有相同的第一标签和/或相同的第二标签;及Based on the first tag and the second tag, the program crash information of the preset period in the storage layer is aggregated to obtain multiple aggregated data; each piece of data in the same aggregated data has the same first tag and/or the same 's secondary label; and

基于所述多个聚合数据生成分析结果,所述分析结果包括导致程序崩溃的一个或多个问题;及generating an analysis result based on the plurality of aggregated data, the analysis result including one or more issues that caused the program to crash; and

将所述分析报告发送到与所述一个或多个问题关联的一个或多个目标群组中。The analysis report is sent to one or more target groups associated with the one or more questions.

本申请提供的程序崩溃分析聚合方法、装置、设备、计算机可读存储介质,以及程序崩溃分析聚合系统,包括以下优势:The program crash analysis aggregation method, apparatus, device, computer-readable storage medium, and program crash analysis aggregation system provided by this application include the following advantages:

(1)实现闭环全流程,确保了数据的安全性,尤其是程序敏感数据的安全性;(1) The entire closed-loop process is realized, which ensures the security of data, especially the security of program-sensitive data;

(2)基于闭环全流程,不再依赖外部平台的数据管理,消除外部平台的“系统不可用”隐患;(2) Based on the closed-loop whole process, it no longer relies on the data management of the external platform, and eliminates the hidden danger of "system unavailability" of the external platform;

(3)通过解析过滤后的程序崩溃信息以得到标签,并将标签一并存入数据库中,因此,数据库的每条数据可以通过标签进行聚合,从而可以高效且准确地定位出问题并生成分析报告。(3) Obtain tags by parsing the filtered program crash information, and store the tags in the database. Therefore, each piece of data in the database can be aggregated by tags, so that problems can be efficiently and accurately located and analyzed. Report.

附图说明Description of drawings

图1示意性示出了根据本申请实施例一的程序崩溃分析聚合系统的架构图;FIG. 1 schematically shows an architecture diagram of a program crash analysis and aggregation system according to Embodiment 1 of the present application;

图2示意性示出了自动诊断系统的工作流;Fig. 2 schematically shows the workflow of the automatic diagnosis system;

图3示意性示出了根据本申请实施例二的程序崩溃分析聚合系统的流程图;FIG. 3 schematically shows a flowchart of a program crash analysis and aggregation system according to Embodiment 2 of the present application;

图4示意性示出了图3中步骤S302的子流程图;Fig. 4 schematically shows the sub-flow chart of step S302 in Fig. 3;

图5示意性示出了图3中步骤S304的子流程图;Fig. 5 schematically shows the sub-flow chart of step S304 in Fig. 3;

图6示意性示出了图5中步骤S502的子流程图;Fig. 6 schematically shows a sub-flow chart of step S502 in Fig. 5;

图7示意性示出了图5中步骤S500的子流程图;Fig. 7 schematically shows a sub-flow chart of step S500 in Fig. 5;

图8示意性示出了图5中步骤S500的另一子流程图;Fig. 8 schematically shows another sub-flow chart of step S500 in Fig. 5;

图9示意性示出了根据本申请实施例二的程序崩溃分析聚合方法的新增步骤流程图;FIG. 9 schematically shows a flowchart of new steps of the program crash analysis and aggregation method according to Embodiment 2 of the present application;

图10示意性示出了根据本申请实施例三的程序崩溃分析聚合装置的框图;FIG. 10 schematically shows a block diagram of a program crash analysis and aggregation apparatus according to Embodiment 3 of the present application;

图11示意性示出了根据本申请实施例四的适于实现程序崩溃分析聚合方法的计算机设备的硬件架构示意图。FIG. 11 schematically shows a schematic diagram of a hardware architecture of a computer device suitable for implementing a program crash analysis and aggregation method according to Embodiment 4 of the present application.

具体实施方式Detailed ways

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。In order to make the purpose, technical solutions and advantages of the present application more clearly understood, the present application will be described in further detail below with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application, but not to limit the present application. Based on the embodiments in this application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of this application.

需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。It should be noted that the descriptions involving "first", "second", etc. in the embodiments of the present application are only for description purposes, and should not be understood as indicating or implying their relative importance or implicitly indicating the indicated technical features quantity. Thus, a feature delimited with "first", "second" may expressly or implicitly include at least one of that feature. In addition, the technical solutions between the various embodiments can be combined with each other, but must be based on the realization by those of ordinary skill in the art. When the combination of technical solutions is contradictory or cannot be realized, it should be considered that the combination of such technical solutions does not exist. , is not within the scope of protection claimed in this application.

在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。In the description of the present application, it should be understood that the numerical labels before the steps do not identify the sequence of executing the steps, but are only used to facilitate the description of the present application and to distinguish each step, and therefore should not be construed as a limitation on the present application.

本申请人了解到:The applicant understands that:

线上崩溃问题,一般借助第三方平台,如Bugly,firbase…,并存在以下几个问题:The online crash problem generally relies on third-party platforms, such as Bugly, firbase..., and has the following problems:

1).权限无法收敛。部分人员离职后,依旧持有权限查看APP敏感数据。1). Permissions cannot be converged. After some employees leave their jobs, they still have permission to view sensitive APP data.

2).维护力度逐渐变低,会逐渐出现”无法正常解析“的情况。2). The maintenance intensity gradually becomes lower, and the situation of "unable to resolve normally" will gradually appear.

3).无法定制需求,三方平台的数据过于封闭,无法正常消费拓展业务。3). Unable to customize the demand, the data of the three-party platform is too closed, and it is impossible to expand the business with normal consumption.

4).无法业务隔离,崩溃均为大盘问题,无法将不同的问题,划分给不同的业务。4). It is impossible to isolate the business, and the crash is a general market problem, and it is impossible to divide different problems into different businesses.

本申请旨在提供程序崩溃分析聚合方案,在于闭环流程、堆栈解析和聚合的实现、以及衍生产物系统的实现。所述程序崩溃分析聚合方案具体可以参考下述实施例。The purpose of this application is to provide a program crash analysis aggregation solution, which lies in the closed-loop process, the realization of stack analysis and aggregation, and the realization of the derivative product system. For the program crash analysis aggregation scheme, reference may be made to the following embodiments.

实施例一Example 1

如图1所示,本申请实施例提供了一种程序崩溃分析聚合系统,包括:As shown in FIG. 1 , an embodiment of the present application provides a program crash analysis and aggregation system, including:

(1)数据传输层2,用于接收用户设备的程序崩溃信息。(1) The data transmission layer 2 is used to receive program crash information of the user equipment.

数据传输层2可以通过Kafka系统或其他消息系统实现,用于接收大量用户终端的程序崩溃信息。其中,Kafka系统是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(常见可以用于web/nginx日志、访问日志,消息服务等等。Kafka系统主要应用场景包括日志收集系统和消息系统。The data transmission layer 2 can be implemented by the Kafka system or other message systems, and is used to receive program crash information from a large number of user terminals. Among them, the Kafka system is a distributed, partitioned, multi-copy, multi-subscriber, distributed log system based on zookeeper coordination (commonly used for web/nginx logs, access logs, message services, etc. The main application of the Kafka system is Scenarios include log collection systems and message systems.

作为示例,所述用户设备可以被配置为上报程序崩溃信息。其中,用户设备可以包括移动设备,平板设备,膝上型计算机,智能设备(例如,智能手表,智能眼镜),虚拟现实耳机,游戏设备,机顶盒,数字流设备,机器人,车载终端,智能电视,电子书阅读器,MP4(运动图像专家组音频层IV)播放器等。用户设备可以运行Windows系统、安卓(AndroidTM)系统或iOS系统等。用户可以根据需要安装各种应用程序安装包,从而得到实现各种特定功能的应用程序。所述用户设备中可以预先设置有埋点程序,该埋点程序可以上报程序崩溃信息。As an example, the user equipment may be configured to report program crash information. Wherein, the user equipment may include mobile devices, tablet devices, laptop computers, smart devices (eg, smart watches, smart glasses), virtual reality headsets, gaming devices, set-top boxes, digital streaming devices, robots, in-vehicle terminals, smart TVs, E-book readers, MP4 (Moving Picture Experts Group Audio Layer IV) players, etc. The user equipment may run a Windows system, an Android (Android ) system, an iOS system, or the like. Users can install various application installation packages according to their needs, so as to obtain applications that implement various specific functions. The user equipment may be preset with a tracking program, and the tracking program may report program crash information.

以从用户设备A上报程序崩溃信息为例,可以在用户设备A植入埋点程序。埋点又称事件追踪(Event Tracking),可以针对设备中的行为或事件进行捕获、处理和发送等。在检测用户设备A的程序出现崩溃的情形下,该用户设备A可以将该程序的崩溃信息缓存至本地文件中。待再次启动程序后,将崩溃信息上报至所述数据传输层2。举例来说,可以基于应用性能管理(Application Performance Management,APM)分流到Kafka系统中,以按照指定的调用链路执行。Taking the reporting of program crash information from user equipment A as an example, a buried program can be implanted in user equipment A. Buried points, also known as event tracking (Event Tracking), can capture, process and send behaviors or events in the device. In the case of detecting that the program of the user equipment A crashes, the user equipment A may cache the crash information of the program into a local file. After the program is started again, the crash information is reported to the data transmission layer 2 . For example, it can be distributed to the Kafka system based on application performance management (Application Performance Management, APM) to execute according to the specified call chain.

(2)数据消费层4,用于接收和过滤所述用户设备的程序崩溃信息,并分发过滤后的程序崩溃信息。(2) The data consumption layer 4 is used for receiving and filtering the program crash information of the user equipment, and distributing the filtered program crash information.

数据消费层4负责消息的过滤和分发。The data consumption layer 4 is responsible for the filtering and distribution of messages.

即:从数据传输层2获取崩溃相关的信息,并将过滤得到的“有效数据”传递到数据清洗层6。That is: obtain crash-related information from the data transmission layer 2, and pass the filtered "valid data" to the data cleaning layer 6.

作为可选的实施例,数据消费层4还用于:根据预先设置的多个字段,过滤所述用户设备的程序崩溃信息;其中,所述多个字段包括基础字段和扩展字段;所述扩展字段包括崩溃类型、堆栈信息、崩溃描述、崩溃页面、崩溃时的设备运行状态信息。所述基础字段可以包括以下字段:崩溃发生时间、设备型号、程序版本、系统版本、程序发行渠道等。崩溃时的设备运行状态信息可以包括以下字段:崩溃的内存信息、CPU信息、磁盘信息等。在本可选的实施例中,通过过滤出可用于崩溃分析的有效信息,可以降低无效信息的干扰和降低系统负担。As an optional embodiment, the data consumption layer 4 is further configured to: filter the program crash information of the user equipment according to a plurality of preset fields; wherein the plurality of fields include a basic field and an extension field; the extension Fields include crash type, stack information, crash description, crash page, and device operating state information at the time of the crash. The basic fields may include the following fields: crash occurrence time, device model, program version, system version, program release channel, and the like. The device running state information at the time of crash may include the following fields: crash memory information, CPU information, disk information, and the like. In this optional embodiment, by filtering out valid information that can be used for crash analysis, interference of invalid information and system load can be reduced.

(3)数据清洗层6,用于解析过滤后的程序崩溃信息以得到标签。(3) The data cleaning layer 6 is used to analyze the filtered program crash information to obtain the label.

所述过滤后的程序崩溃信息包括堆栈信息、崩溃描述等。The filtered program crash information includes stack information, crash description, and the like.

其中,所述堆栈信息用于记录和追溯函数调用过程,如程序崩溃时所调用的函数。但是,由用户设备直接提供的堆栈信息不可读,因此需要进行解析以得到可读的堆栈信息。进而,通过该可读的堆栈信息进行异常、问题的归类和标签化。因此,通过标签可以确定同一类问题的各条程序崩溃信息,方便查询和管理。Wherein, the stack information is used to record and trace the function calling process, such as the function called when the program crashes. However, the stack information directly provided by the user equipment is not readable, so it needs to be parsed to obtain readable stack information. Further, the readable stack information is used to classify and label exceptions and problems. Therefore, each program crash information of the same type of problem can be determined through the label, which is convenient for query and management.

作为可选的实施例,所述标签包括第一标签和第二标签,所述过滤后的程序崩溃信息包括堆栈信息和崩溃描述;As an optional embodiment, the label includes a first label and a second label, and the filtered program crash information includes stack information and crash description;

所述数据清洗层6,还用于:The data cleaning layer 6 is also used for:

将所述堆栈信息传递至解析层,通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息;passing the stack information to the parsing layer, and parsing the stack information through the parsing layer to obtain the parsed stack information;

根据解析后的堆栈信息生成第一标签;Generate a first label according to the parsed stack information;

根据所述崩溃描述生成第二标签;generating a second tag according to the crash description;

将所述第一标签和所述第二标签写入到所述存储层8;writing the first tag and the second tag to the storage layer 8;

其中,所述第一标签和所述第二标签在所述存储层均与所述程序崩溃信息相关联。Wherein, both the first tag and the second tag are associated with the program crash information at the storage layer.

在上述可选的实施例中,为每条程序崩溃信息配置第一标签和第二标签,是有如下考虑:在部分情况下,解析后的堆栈信息为空,无法设置有效标签,因此设置第二标签作为补充。另外,在第一标签和第二标签相互印证的情形下,利于有效聚合。In the above-mentioned optional embodiment, the first label and the second label are configured for each piece of program crash information because of the following considerations: in some cases, the parsed stack information is empty, and a valid label cannot be set. Therefore, the first label is set. Two labels as a supplement. In addition, in the case where the first label and the second label are mutually authenticated, efficient polymerization is facilitated.

需要说明的是,第一标签和第二标签可以为哈希值或基于其他算法得到的值。哈希值是通过哈希算法(如MD5、SHA-1),将一段较长的数据(String)映射为较短小的数据,这段小数据即是哈希值。哈希值具有唯一性,如不同的崩溃描述各自对应的哈希值不同,相同的崩溃描述对应同一哈希值,因此可以用于后续分类、聚合。It should be noted that the first tag and the second tag may be hash values or values obtained based on other algorithms. The hash value is to map a longer piece of data (String) into a shorter piece of data through a hash algorithm (such as MD5, SHA-1), and this piece of small data is the hash value. The hash value is unique. For example, different crash descriptions have different corresponding hash values. The same crash description corresponds to the same hash value, so it can be used for subsequent classification and aggregation.

不同类型的用户设备的堆栈信息不同,以下提供几种示例性的解析方式。Different types of user equipment have different stack information, and several exemplary resolution methods are provided below.

作为可选的实施例,所述用户设备为iOS设备;所述通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息,包括:通过所述堆栈信息中的符号表的标识和偏移量,以及构建IPA的符号表文件,查询目标函数名;其中,所述偏移量为发生崩溃的地址和预设基准地址之差;其中,所述目标函数名对应的函数用于调用出现崩溃的对象。As an optional embodiment, the user equipment is an iOS device; and parsing the stack information through the parsing layer to obtain the parsed stack information includes: using the identifier of the symbol table in the stack information and the Offset, and the symbol table file for constructing IPA, query the target function name; wherein, the offset is the difference between the address where the crash occurs and the preset reference address; wherein, the function corresponding to the target function name is used to call A crashed object appears.

iOS设备在构建IPA(Apple程序应用文件,iPhoneApplication)后,会产生一个副文件dSYM符号表文件(每个符号表对应一个通用唯一标识码uuid),内部存放函数名+偏移量。在对符号表文件解析后,将映射关系信息+uuid存入数据库(如MySQL)中。After the iOS device builds the IPA (Apple program application file, iPhoneApplication), it will generate a side file dSYM symbol table file (each symbol table corresponds to a universal unique identification code uuid), which stores the function name + offset inside. After parsing the symbol table file, the mapping relationship information + uuid is stored in a database (such as MySQL).

当获取到所述堆栈信息时,通过所述堆栈信息的符号表uuid+偏移量(发生异常的地址-基地址计算),从MySQL数据库反查目标函数名,即快速地解析出iOS设备反馈的目标函数名。When the stack information is obtained, the target function name is reversely checked from the MySQL database through the symbol table uuid+offset of the stack information (the address where the exception occurs - the base address calculation), that is, the feedback from the iOS device is quickly parsed. target function name.

作为可选的实施例,所述用户设备为Android设备;所述通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息,包括:通过所述堆栈信息中的混淆数据和构建APK的mapping文件,查询混淆前数据;其中,所述混淆数据为程序运行时的类名;其中,所述混淆前数据包括目标函数名,该目标函数名对应的函数用于调用出现崩溃的对象。As an optional embodiment, the user equipment is an Android device; and parsing the stack information through the parsing layer to obtain the parsed stack information includes: using the obfuscated data in the stack information and constructing an APK The mapping file, query the data before obfuscation; wherein, the obfuscated data is the class name when the program is running; wherein, the data before obfuscation includes the target function name, and the function corresponding to the target function name is used to call the crashed object.

Android设备在构建APK(Android application package,Android应用程序包)后,会产生一个副产物mapping文件,安装包实际运行时的类名classname为混淆数据,例如:a.b.c.xx,x需要通过mapping里面的内容进行反查解析。在本实施例中,针对mapping文件进行解析,将解析得到的映射关系存入数据库(如MySQL)。After the Android device builds the APK (Android application package, Android application package), a by-product mapping file will be generated. The class name classname of the actual runtime of the installation package is the obfuscated data, for example: a.b.c.xx, x needs to pass the content in the mapping Perform reverse analysis. In this embodiment, the mapping file is parsed, and the mapping relationship obtained by the analysis is stored in a database (eg, MySQL).

当获取到所述堆栈信息时,针对混淆后的信息,在MySQL数据库中所引出混淆前的数据,以反查得到目标函数名,即快速地解析出Android设备反馈的目标函数名。When the stack information is obtained, for the obfuscated information, the pre-obfuscated data is extracted in the MySQL database to obtain the target function name by reverse checking, that is, the target function name fed back by the Android device can be quickly parsed.

作为可选的实施例,所述根据解析后的堆栈信息生成第一标签,包括:删除所述解析后的堆栈信息中的无效信息,得到与程序本身关联的有效堆栈信息;其中,所述无效信息至少包括以下一项或多项:与操作系统关联的信息、数字;及根据与所述程序本身关联的有效堆栈信息,通过哈希算法计算得到所述第一标签。通过解析后的堆栈信息进行清洗:(1)对一些二进制偏移量,以及一些数字、系统符号表信息等浮动噪音数据过滤,可以确保同一问题导致崩溃的多条程序崩溃信息各自对应的第一标签(哈希值)相同,确保有效聚合。(2)清洗掉与操作系统关联的信息,只保留程序自身关联的信息,快速排查程序本身的问题。As an optional embodiment, the generating the first label according to the parsed stack information includes: deleting invalid information in the parsed stack information to obtain valid stack information associated with the program itself; wherein the invalid The information includes at least one or more of the following: information and numbers associated with the operating system; and according to the valid stack information associated with the program itself, the first tag is obtained by calculating through a hash algorithm. Cleaning through the parsed stack information: (1) Filtering some binary offsets, as well as some numbers, system symbol table information and other floating noise data, can ensure that the first crash information corresponding to multiple program crash information caused by the same problem The tags (hash values) are the same, ensuring valid aggregation. (2) Clean up the information associated with the operating system, keep only the information associated with the program itself, and quickly troubleshoot the program itself.

需要说明的是,数据清洗层6的数据清洗规则和解析规则等可以通过配置文件定义。且,数据清洗层6内各种功能可以实现插件化,从而实现功能的自动定制和扩展。It should be noted that, the data cleaning rules and parsing rules of the data cleaning layer 6 can be defined by configuration files. Moreover, various functions in the data cleaning layer 6 can be plug-in, so as to realize automatic customization and expansion of functions.

(4)存储层8,用于存储所述过滤后的程序崩溃信息及所述标签,以供查询、读取和/或聚合分析。(4) The storage layer 8 is used to store the filtered program crash information and the tag for query, reading and/or aggregate analysis.

存储层8可以是基于Elasticsearch、Clickhouse、Hive、MySQL等。The storage layer 8 can be based on Elasticsearch, Clickhouse, Hive, MySQL, etc.

其中,Elasticsearch是一个基于Lucene的搜索服务器,其提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。ClickHouse从OLAP场景需求出发,定制开发了一套高效列式存储引擎,并且实现了数据有序存储、主键索引、稀疏索引、数据分区、主备复制等功能。Hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。MySQL是关系型数据库管理系统,是RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。Among them, Elasticsearch is a search server based on Lucene, which provides a full-text search engine with distributed multi-user capabilities, based on a RESTful web interface. Starting from the requirements of OLAP scenarios, ClickHouse customized and developed a set of efficient columnar storage engine, and realized the functions of orderly data storage, primary key index, sparse index, data partition, master-standby replication and so on. Hive is a Hadoop-based data warehouse tool for data extraction, transformation, and loading. It is a mechanism for storing, querying, and analyzing large-scale data stored in Hadoop. MySQL is a relational database management system and one of RDBMS (Relational Database Management System: relational database management system) application software.

存储层8中的每条数据包括:过滤后的程序崩溃信息,标签(第一标签、第二标签)。Each piece of data in the storage layer 8 includes: filtered program crash information, and tags (first tag, second tag).

基于每条数据的标签,可以对每条数据进行归类,从而具有相同标签的多条数据聚合。Based on the label of each piece of data, each piece of data can be classified so that multiple pieces of data with the same label are aggregated.

所述存储层8可以为第三方服务平台提供数据服务。The storage layer 8 can provide data services for third-party service platforms.

第三方服务平台可以分析崩溃的变化趋势,以及可以对某一类问题进行查询定位。The third-party service platform can analyze the changing trend of crashes, and can query and locate certain types of problems.

在具体应用时,可以通过前端页面显示崩溃的变化趋势,以及对某一类问题的查询和定位。该前端页面上还配置有多个组件,如“程序版本”、“系统版本”、“设备型号”、“网络类型”、“崩溃类型”、“崩溃页面”、“进程”、“线程”等组件。以“系统版本”为例,当用户触发该组件,则列出出现崩溃的各个系统版本,并分析和显示各个系统版本的崩溃数量、占比等。且,该前端页面还配置有下载组件,通过该下载组件可以下载被选系统版本的程序崩溃信息。In specific applications, the front-end page can display the changing trend of crashes, as well as query and locate a certain type of problem. The front-end page is also configured with multiple components, such as "Program Version", "System Version", "Device Model", "Network Type", "Crash Type", "Crash Page", "Process", "Thread", etc. components. Taking "system version" as an example, when the user triggers this component, each system version that has crashed will be listed, and the number and proportion of crashes of each system version will be analyzed and displayed. Moreover, the front-end page is further configured with a download component, through which the program crash information of the selected system version can be downloaded.

(5)可选的,所述系统还可以定制化自动诊断系统10。(5) Optionally, the system can also customize the automatic diagnosis system 10 .

自动诊断系统10,用于:根据存储层8中的每条数据的标签进行分类和聚合操作。The automatic diagnosis system 10 is configured to: perform classification and aggregation operations according to the label of each piece of data in the storage layer 8 .

作为示例,自动诊断系统10用于:As an example, the automatic diagnostic system 10 is used to:

基于第一标签和第二标签,对所述存储层中预设时段的程序崩溃信息进行聚合,得到多个聚合数据;同一个聚合数据中的每条数据具有相同的第一标签和/或相同的第二标签;Based on the first tag and the second tag, the program crash information of the preset period in the storage layer is aggregated to obtain multiple aggregated data; each piece of data in the same aggregated data has the same first tag and/or the same 's second label;

基于所述多个聚合数据生成分析结果,所述分析结果包括导致程序崩溃的一个或多个问题;及generating an analysis result based on the plurality of aggregated data, the analysis result including one or more issues that caused the program to crash; and

将所述分析报告发送到与所述一个或多个问题关联的一个或多个目标群组中。The analysis report is sent to one or more target groups associated with the one or more questions.

自动诊断系统10可以在线诊断,也可以离线诊断。其中,在线诊断是指根据实时增量数据(如,预设时段)进行自动检测和诊断。在线诊断就不会停止,在线诊断的诊断范围大,显示信息的内容也多。离线诊断,是指根据离线数据进行自动检测和诊断。通过离线诊断可以对海量数据异步处理,适用于后台全量分析。The automatic diagnosis system 10 can diagnose on-line or off-line. The online diagnosis refers to automatic detection and diagnosis based on real-time incremental data (eg, preset time period). The online diagnosis will not stop, the diagnosis range of the online diagnosis is large, and the content of the displayed information is also large. Offline diagnosis refers to automatic detection and diagnosis based on offline data. Through offline diagnosis, massive data can be processed asynchronously, which is suitable for full background analysis.

如图2所示,自动诊断系统10可以用于包括:As shown in FIG. 2, the automatic diagnostic system 10 may be used to include:

当线上发生异常后,触发自动诊断/分析服务;When an abnormality occurs online, trigger the automatic diagnosis/analysis service;

自动诊断/分析服务针对异常时间段,拉取出大量用户数据(全链路监控数据、用户日志或其他数据,其中,全链路监控数据可以包括程序崩溃信息)进行自动分析,得出分析结果;The automatic diagnosis/analysis service pulls out a large amount of user data (full-link monitoring data, user logs or other data, where the full-link monitoring data may include program crash information) for abnormal time periods for automatic analysis, and obtains the analysis results;

基于分析结果生成分析报告,并将所述分析报告推送至目标群组,如即时通讯群组。An analysis report is generated based on the analysis result, and the analysis report is pushed to a target group, such as an instant messaging group.

示例性,所述分析报告可以如下:“Exemplarily, the analysis report may be as follows: "

崩溃告警:Crash alert:

应用:XX设备型号Application: XX device model

版本:64700100Version: 64700100

首次触发时间:2021-11-0810:42:21First trigger time: 2021-11-08 10:42:21

当前触发时间:2021-11-0810:43:36Current trigger time: 2021-11-0810:43:36

影响范围:Sphere of influence:

最近5分钟,共计影响用户166人,启动总用户数75067人,崩溃率0.22%。In the last 5 minutes, a total of 166 users were affected, 75,067 users were activated, and the crash rate was 0.22%.

问题定位:(最近5分钟数据)Problem location: (data in the last 5 minutes)

按异常类型排序Sort by exception type

第一类异常占比:90.70%;The proportion of the first type of abnormality: 90.70%;

第二类异常占比:5.81%;The proportion of the second type of abnormality: 5.81%;

第三类异常占比:1.16%;The proportion of the third type of abnormality: 1.16%;

按崩溃信息排序Sort by crash info

第一类崩溃占比:90.12%;The proportion of the first type of crash: 90.12%;

第二类崩溃占比:5.81%;The proportion of the second type of crash: 5.81%;

…”。…”.

在上述实施例中,可以根据定位出的问题,将分析报告发送给相应的目标群组,从而实现业务隔离,崩溃均为大盘问题,可以将不同的问题,划分给不同的群组。In the above-mentioned embodiment, the analysis report can be sent to the corresponding target group according to the located problem, so as to realize business isolation. The crashes are all large-scale problems, and different problems can be divided into different groups.

在示例性的实施例中,基于存储层8还可以定制化业务方告警系统、堆栈解析平台等。其中,堆栈解析平台用于堆栈解析、ANR(Application Not Responding,应用程序无响应)解析、卡顿分析、内存分析、磁盘分析、操作系统分析等。在Android上,应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作ANR对话框。用户可以选择让程序继续运行或退出。In an exemplary embodiment, based on the storage layer 8, the business side alarm system, the stack analysis platform, and the like can also be customized. Among them, the stack analysis platform is used for stack analysis, ANR (Application Not Responding, application not responding) analysis, stall analysis, memory analysis, disk analysis, operating system analysis, and the like. On Android, the application is not responsive for a while, and the system displays a dialog to the user, which is called the ANR dialog. The user can choose to keep the program running or quit.

需要说明的是,上述各层通过服务器实现,如机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。It should be noted that the above-mentioned layers are implemented by servers, such as rack servers, blade servers, tower servers or cabinet servers (including independent servers or server clusters composed of multiple servers).

另外,上述各层之间通过一个或多个网络进行连接。其中,所述一个或多个网络可以包括各种网络设备,如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等。一个或多个网络也可以包括物理链路,如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物,也可以包括无线链路,如蜂窝链路,卫星链路,Wi-Fi链路和/或类似物。In addition, the above-mentioned layers are connected through one or more networks. The one or more networks may include various network devices, such as routers, switches, multiplexers, hubs, modems, bridges, repeaters, firewalls, proxy devices and/or the like. One or more networks may also include physical links such as coaxial cable links, twisted pair cable links, fiber optic links, combinations thereof and/or the like, and may include wireless links such as cellular links , satellite links, Wi-Fi links and/or the like.

上面具体介绍了数据传输层2、数据消费层4、数据清洗层6、存储层8、自动诊断系统10。The data transmission layer 2 , the data consumption layer 4 , the data cleaning layer 6 , the storage layer 8 , and the automatic diagnosis system 10 are described in detail above.

本申请实施例提供的程序崩溃分析聚合系统,包括如下优点:The program crash analysis and aggregation system provided by the embodiments of the present application includes the following advantages:

(1)通过数据传输层2、数据消费层4、数据清洗层6、存储层8的内部链条,实现了闭环全流程,从而确保了数据的安全性,尤其是程序敏感数据的安全性;(1) Through the internal chain of data transmission layer 2, data consumption layer 4, data cleaning layer 6, and storage layer 8, the closed-loop whole process is realized, thereby ensuring the security of data, especially the security of program-sensitive data;

(2)由于采用上述闭环流程,不再依赖外部平台的数据管理,消除外部平台的“系统不可用”隐患;(2) Due to the above closed-loop process, the data management of the external platform is no longer relied on, and the hidden danger of "system unavailability" of the external platform is eliminated;

(3)数据清洗层6实时更新解析规则,通过数据清洗层6确保堆栈数据的清洗和有效解析;(3) The data cleaning layer 6 updates the analysis rules in real time, and ensures the cleaning and effective analysis of the stack data through the data cleaning layer 6;

(4)可以通过定制化自动诊断系统、业务线自定义规则的监控/告警,拓展数据处理功能;(4) The data processing function can be expanded through the customized automatic diagnosis system and the monitoring/alarm of the customized rules of the business line;

(5)可以通过标签进行聚合,聚合度高且准确,可以高效且准确地定位出问题并生成分析报告;(5) It can be aggregated by tags, the degree of aggregation is high and accurate, and the problem can be located efficiently and accurately and an analysis report can be generated;

(6)可以根据定位出的问题,将分析报告发送给相应的目标群组,从而实现业务隔离。(6) According to the identified problems, the analysis report can be sent to the corresponding target group, so as to realize business isolation.

实施例二Embodiment 2

本实施例提供了一种程序崩溃分析聚合方法,具体细节可参考实施例一。This embodiment provides a program crash analysis and aggregation method, and for details, refer to Embodiment 1.

图3示意性示出了根据本申请实施例二的程序崩溃分析聚合方法的流程图。FIG. 3 schematically shows a flowchart of a program crash analysis and aggregation method according to Embodiment 2 of the present application.

如图3所示,该程序崩溃分析聚合方法可以包括步骤S300~S306,其中:As shown in FIG. 3, the program crash analysis and aggregation method may include steps S300-S306, wherein:

步骤S300,接收用户设备的程序崩溃信息。Step S300, receiving program crash information of the user equipment.

步骤S302,过滤所述用户设备的程序崩溃信息,并分发过滤后的程序崩溃信息。Step S302, filtering the program crash information of the user equipment, and distributing the filtered program crash information.

步骤S304,解析过滤后的程序崩溃信息以得到标签。Step S304, parsing the filtered program crash information to obtain a label.

步骤S306,将所述过滤后的程序崩溃信息及所述标签存储到数据库中,以供查询、读取和/或聚合分析。Step S306: Store the filtered program crash information and the tag in a database for query, reading and/or aggregate analysis.

本申请实施例提供的程序崩溃分析聚合方法,包括如下优点:The program crash analysis and aggregation method provided by the embodiment of the present application includes the following advantages:

(1)通过上述步骤实现闭环全流程,确保了数据的安全性,尤其是程序敏感数据的安全性;(1) The whole closed-loop process is realized through the above steps, which ensures the security of data, especially the security of program-sensitive data;

(2)由于采用上述闭环流程,不再依赖外部平台的数据管理,消除外部平台的“系统不可用”隐患;(2) Due to the above closed-loop process, the data management of the external platform is no longer relied on, and the hidden danger of "system unavailability" of the external platform is eliminated;

(3)通过解析过滤后的程序崩溃信息以得到标签,并将标签一并存入数据库中,因此,数据库的每条数据可以通过标签进行聚合,从而高效且准确地定位出问题并生成分析报告;(3) Obtain tags by parsing the filtered program crash information, and store the tags in the database. Therefore, each piece of data in the database can be aggregated by tags, so as to efficiently and accurately locate the problem and generate an analysis report ;

(4)可以通过定制化自动诊断系统、业务线自定义规则的监控/告警,拓展数据处理功能。(4) The data processing function can be expanded through the customized automatic diagnosis system and the monitoring/alarm of the customized rules of the business line.

作为可选的实施例,如图4所示,步骤S302可以如下步骤实现:As an optional embodiment, as shown in FIG. 4 , step S302 may be implemented by the following steps:

步骤S400,根据预先设置的多个字段,过滤所述用户设备的程序崩溃信息;Step S400, filtering the program crash information of the user equipment according to a plurality of preset fields;

其中,所述多个字段包括基础字段和扩展字段;Wherein, the multiple fields include basic fields and extended fields;

所述扩展字段包括崩溃类型、堆栈信息、崩溃描述、崩溃页面、崩溃时的设备运行状态信息。The extended field includes crash type, stack information, crash description, crash page, and device running state information at the time of crash.

其中,所述基础字段可以包括以下字段:崩溃发生时间、设备型号、程序版本、系统版本、程序发行渠道等。崩溃时的设备运行状态信息可以包括以下字段:崩溃的内存信息、CPU信息、磁盘信息等。在本可选的实施例中,通过过滤出可用于崩溃分析的有效信息,从而可以降低无效信息的干扰和降低系统负担。The basic fields may include the following fields: crash occurrence time, device model, program version, system version, program release channel, and the like. The device running state information at the time of crash may include the following fields: crash memory information, CPU information, disk information, and the like. In this optional embodiment, by filtering out valid information that can be used for crash analysis, the interference of invalid information and the system load can be reduced.

作为可选的实施例,所述标签包括第一标签和第二标签,所述过滤后的程序崩溃信息包括堆栈信息和崩溃描述;As an optional embodiment, the label includes a first label and a second label, and the filtered program crash information includes stack information and crash description;

如图5所示,步骤S304可以如下步骤实现:As shown in Figure 5, step S304 can be implemented as follows:

步骤S500,将所述堆栈信息传递至解析层,通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息;Step S500, passing the stack information to the parsing layer, and parsing the stack information through the parsing layer to obtain the parsed stack information;

步骤S502,根据解析后的堆栈信息生成第一标签;Step S502, generating a first label according to the parsed stack information;

步骤S504,根据所述崩溃描述生成第二标签;Step S504, generating a second label according to the crash description;

步骤S506,将所述第一标签和所述第二标签写入到所述数据库;Step S506, writing the first label and the second label into the database;

其中,所述第一标签和所述第二标签在所述数据库均与所述程序崩溃信息相关联。Wherein, both the first tag and the second tag are associated with the program crash information in the database.

在上述可选的实施例中,为每条程序崩溃信息配置第一标签和第二标签,是以后如下考虑:在部分情况下,解析后的堆栈信息为空,无法设置有效标签,因此设置第二标签作为补充。另外,在第一标签和第二标签相互印证的情形下,利于有效聚合。In the above-mentioned optional embodiment, the configuration of the first label and the second label for each piece of program crash information is based on the following considerations: in some cases, the parsed stack information is empty, and a valid label cannot be set. Therefore, the first label is set. Two labels as a supplement. In addition, in the case where the first label and the second label are mutually authenticated, efficient polymerization is facilitated.

作为可选的实施例,如图6所示,步骤S502可以如下步骤实现:As an optional embodiment, as shown in FIG. 6 , step S502 may be implemented by the following steps:

步骤S600,删除所述解析后的堆栈信息中的无效信息,得到与程序本身关联的有效堆栈信息;其中,所述无效信息至少包括以下一项或多项:与操作系统关联的信息、数字;及Step S600, delete invalid information in the parsed stack information, and obtain valid stack information associated with the program itself; wherein, the invalid information includes at least one or more of the following: information and numbers associated with the operating system; and

步骤S602,根据与所述程序本身关联的有效堆栈信息,通过哈希算法计算得到所述第一标签。Step S602, according to the valid stack information associated with the program itself, calculate and obtain the first tag through a hash algorithm.

上述对解析后的堆栈信息进行清洗:(1)对一些二进制偏移量,以及一些数字、系统符号表信息等浮动噪音数据过滤,可以确保同一问题导致崩溃的多条程序崩溃信息各自对应的第一标签(哈希值)相同,确保有效聚合。(2)清洗掉与操作系统关联的信息,只保留程序自身关联的信息,快速排查程序本身的问题。The above cleaning of the parsed stack information: (1) Filtering some binary offsets, as well as some floating noise data such as numbers and system symbol table information, can ensure that multiple program crash messages corresponding to the same problem cause crashes. A tag (hash value) is the same, ensuring valid aggregation. (2) Clean up the information associated with the operating system, keep only the information associated with the program itself, and quickly troubleshoot the program itself.

作为可选的实施例,所述用户设备为iOS设备;如图7所示,步骤S500可以如下步骤实现:As an optional embodiment, the user equipment is an iOS device; as shown in FIG. 7 , step S500 can be implemented as follows:

步骤S700,通过所述堆栈信息中的符号表的标识和偏移量,以及构建IPA的符号表文件,查询目标函数名;Step S700, query the target function name through the identifier and offset of the symbol table in the stack information, and the symbol table file of the construction IPA;

其中,所述偏移量为发生崩溃的地址和预设基准地址之差;Wherein, the offset is the difference between the address where the crash occurs and the preset reference address;

其中,所述目标函数名对应的函数用于调用出现崩溃的对象。The function corresponding to the target function name is used to call the crashed object.

当获取到所述堆栈信息时,通过所述堆栈信息的符号表uuid+偏移量(发生异常的地址-基地址计算),从MySQL数据库反查目标函数名,即可有效解析出iOS设备反馈的目标函数名。When the stack information is obtained, through the symbol table uuid+offset of the stack information (the address where the exception occurs - the base address calculation), the target function name can be reversely checked from the MySQL database, and the information fed back by the iOS device can be effectively parsed. target function name.

作为可选的实施例,所述用户设备为Android设备;如图8所示,步骤S500可以如下步骤实现:As an optional embodiment, the user equipment is an Android device; as shown in FIG. 8 , step S500 can be implemented as follows:

步骤S800,通过所述堆栈信息中的混淆数据和构建APK的mapping文件,查询混淆前数据;Step S800, query the data before obfuscation through the obfuscated data in the stack information and the mapping file for building the APK;

其中,所述混淆数据为程序运行时的类名;Wherein, the obfuscated data is the class name when the program is running;

其中,所述混淆前数据包括目标函数名,该目标函数名对应的函数用于调用出现崩溃的对象。The pre-obfuscation data includes a target function name, and the function corresponding to the target function name is used to call the crashed object.

具体的,当获取到所述堆栈信息时,针对混淆后的信息,在MySQL数据库中所引出混淆前的数据,以反查得到目标函数名,即可有效解析出Android设备反馈的目标函数名。Specifically, when the stack information is obtained, for the obfuscated information, the pre-obfuscated data is extracted from the MySQL database, and the target function name is obtained by reverse checking, and the target function name fed back by the Android device can be effectively parsed.

作为可选的实施例,如图9所示,所述方法还可以包括:As an optional embodiment, as shown in FIG. 9 , the method may further include:

步骤S900,基于第一标签和第二标签,对所述数据库中预设时段的程序崩溃信息进行聚合,得到多个聚合数据;同一个聚合数据中的每条数据具有相同的第一标签和/或相同的第二标签;Step S900, based on the first label and the second label, aggregate the program crash information of the preset time period in the database to obtain a plurality of aggregated data; each piece of data in the same aggregated data has the same first label and/or or the same second label;

步骤S902,基于所述多个聚合数据生成分析结果,所述分析结果包括导致程序崩溃的一个或多个问题;及Step S902, generating an analysis result based on the plurality of aggregated data, the analysis result including one or more problems causing the program to crash; and

步骤S904,将所述分析报告发送到与所述一个或多个问题关联的一个或多个目标群组中。Step S904, sending the analysis report to one or more target groups associated with the one or more questions.

在上述可选的实施例中,可以根据定位出的问题,将分析报告发送给相应的目标群组,从而实现业务隔离,崩溃均为大盘问题,可以将不同的问题,划分给不同的群组。In the above-mentioned optional embodiment, the analysis report can be sent to the corresponding target group according to the located problem, so as to achieve business isolation, and the crashes are all large-scale problems, and different problems can be divided into different groups .

实施例三Embodiment 3

图10示意性示出了根据本申请实施例三的程序崩溃分析聚合装置的框图。该程序崩溃分析聚合装置可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。FIG. 10 schematically shows a block diagram of a program crash analysis and aggregation apparatus according to Embodiment 3 of the present application. The program crash analysis and aggregation apparatus may be divided into one or more program modules, and the one or more program modules are stored in a storage medium and executed by one or more processors to complete the embodiments of the present application. The program modules referred to in the embodiments of the present application refer to a series of computer program instruction segments capable of performing specific functions. The following description will specifically introduce the functions of each program module in this embodiment.

如图10所示,该程序崩溃分析聚合装置1000可以包括:As shown in FIG. 10 , the program crash analysis and aggregation apparatus 1000 may include:

接收模块1010,用于接收用户设备的程序崩溃信息;A receiving module 1010, configured to receive program crash information of the user equipment;

分发模块1020,用于过滤所述用户设备的程序崩溃信息,并分发过滤后的程序崩溃信息;a distribution module 1020, configured to filter the program crash information of the user equipment, and distribute the filtered program crash information;

解析模块1030,用于解析过滤后的程序崩溃信息以得到标签;A parsing module 1030, configured to parse the filtered program crash information to obtain a label;

存储模块1040,用于将所述过滤后的程序崩溃信息及所述标签存储到数据库中,以供查询、读取和/或聚合分析。The storage module 1040 is configured to store the filtered program crash information and the tag in a database for query, reading and/or aggregate analysis.

作为可选的实施例,所述分发模块1020,还用于:As an optional embodiment, the distribution module 1020 is further configured to:

根据预先设置的多个字段,过滤所述用户设备的程序崩溃信息;Filter the program crash information of the user equipment according to a plurality of preset fields;

其中,所述多个字段包括基础字段和扩展字段;Wherein, the multiple fields include basic fields and extended fields;

所述扩展字段包括崩溃类型、堆栈信息、崩溃描述、崩溃页面、崩溃时的设备运行状态信息。The extended field includes crash type, stack information, crash description, crash page, and device running state information at the time of crash.

作为可选的实施例,所述标签包括第一标签和第二标签,所述过滤后的程序崩溃信息包括堆栈信息和崩溃描述;As an optional embodiment, the label includes a first label and a second label, and the filtered program crash information includes stack information and crash description;

所述解析模块1030,还用于:The parsing module 1030 is also used for:

将所述堆栈信息传递至解析层,通过所述解析层解析所述堆栈信息,以得到解析后的堆栈信息;passing the stack information to the parsing layer, and parsing the stack information through the parsing layer to obtain the parsed stack information;

根据解析后的堆栈信息生成第一标签;Generate a first label according to the parsed stack information;

根据所述崩溃描述生成第二标签;generating a second tag according to the crash description;

将所述第一标签和所述第二标签写入到所述数据库;writing the first tag and the second tag to the database;

其中,所述第一标签和所述第二标签在所述数据库均与所述程序崩溃信息相关联。Wherein, both the first tag and the second tag are associated with the program crash information in the database.

作为可选的实施例,所述解析模块1030,还用于:As an optional embodiment, the parsing module 1030 is further configured to:

删除所述解析后的堆栈信息中的无效信息,得到与程序本身关联的有效堆栈信息;其中,所述无效信息至少包括以下一项或多项:与操作系统关联的信息、数字;及Delete invalid information in the parsed stack information to obtain valid stack information associated with the program itself; wherein, the invalid information includes at least one or more of the following: information associated with the operating system, numbers; and

根据与所述程序本身关联的有效堆栈信息,通过哈希算法计算得到所述第一标签。According to the valid stack information associated with the program itself, the first tag is obtained by calculation through a hash algorithm.

作为可选的实施例,所述用户设备为iOS设备;所述解析模块1030,还用于:As an optional embodiment, the user equipment is an iOS device; the parsing module 1030 is further configured to:

通过所述堆栈信息中的符号表的标识和偏移量,以及构建IPA的符号表文件,查询目标函数名;Through the identifier and offset of the symbol table in the stack information, and the symbol table file for building the IPA, query the target function name;

其中,所述偏移量为发生崩溃的地址和预设基准地址之差;Wherein, the offset is the difference between the address where the crash occurs and the preset reference address;

其中,所述目标函数名对应的函数用于调用出现崩溃的对象。The function corresponding to the target function name is used to call the crashed object.

作为可选的实施例,所述用户设备为Android设备;所述解析模块1030,还用于:As an optional embodiment, the user equipment is an Android device; the parsing module 1030 is further configured to:

通过所述堆栈信息中的混淆数据和构建APK的mapping文件,查询混淆前数据;Through the obfuscation data in the stack information and the mapping file for building the APK, query the data before obfuscation;

其中,所述混淆数据为程序运行时的类名;Wherein, the obfuscated data is the class name when the program is running;

其中,所述混淆前数据包括目标函数名,该目标函数名对应的函数用于调用出现崩溃的对象。The pre-obfuscation data includes a target function name, and the function corresponding to the target function name is used to call the crashed object.

作为可选的实施例,所述装置还包括分析模块,用于:As an optional embodiment, the device further includes an analysis module for:

基于第一标签和第二标签,对所述数据库中预设时段的程序崩溃信息进行聚合,得到多个聚合数据;同一个聚合数据中的每条数据具有相同的第一标签和/或相同的第二标签;Based on the first tag and the second tag, aggregating the program crash information of the preset time period in the database to obtain multiple aggregated data; each piece of data in the same aggregated data has the same first tag and/or the same second label;

基于所述多个聚合数据生成分析结果,所述分析结果包括导致程序崩溃的一个或多个问题;及generating an analysis result based on the plurality of aggregated data, the analysis result including one or more issues that caused the program to crash; and

将所述分析报告发送到与所述一个或多个问题关联的一个或多个目标群组中。The analysis report is sent to one or more target groups associated with the one or more questions.

实施例四Embodiment 4

图11示意性示出了根据本申请实施例四的适于实现程序崩溃分析聚合方法的计算机设备的硬件架构示意图。本实施例中,计算机设备10000是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备,例如,移动设备,平板设备,膝上型计算机,智能设备(如,智能手表,智能眼镜),虚拟现实耳机,游戏设备,机顶盒,数字流设备,机器人,车载终端,智能电视,电子书阅读器,MP4(运动图像专家组音频层IV)播放器等。如图11所示,计算机设备10000至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:FIG. 11 schematically shows a schematic diagram of a hardware architecture of a computer device suitable for implementing a program crash analysis and aggregation method according to Embodiment 4 of the present application. In this embodiment, the computer device 10000 is a device that can automatically perform numerical calculation and/or information processing according to pre-set or stored instructions, for example, a mobile device, a tablet device, a laptop computer, a smart device (such as , smart watches, smart glasses), virtual reality headsets, gaming devices, set-top boxes, digital streaming devices, robots, in-vehicle terminals, smart TVs, e-book readers, MP4 (Moving Picture Experts Group Audio Layer IV) players, etc. As shown in FIG. 11 , the computer device 10000 at least includes but is not limited to: a memory 10010 , a processor 10020 , and a network interface 10030 that can communicate with each other through a system bus. in:

存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备10000的内部存储模块,例如该计算机设备10000的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备10000的外部存储设备,例如该计算机设备10000上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器10010还可以既包括计算机设备10000的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备10000的操作系统和各类应用软件,例如程序崩溃分析聚合方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。The memory 10010 includes at least one type of computer-readable storage medium, and the readable storage medium includes flash memory, hard disk, multimedia card, card-type memory (for example, SD or DX memory, etc.), random access memory (RAM), static random access memory, etc. (SRAM), read only memory (ROM), electrically erasable programmable read only memory (EEPROM), programmable read only memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the memory 10010 may be an internal storage module of the computer device 10000 , such as a hard disk or memory of the computer device 10000 . In other embodiments, the memory 10010 may also be an external storage device of the computer device 10000, such as a pluggable hard disk, a Smart Media Card (SMC for short), a Secure Digital (Secure Digital) device equipped on the computer device 10000 Digital, referred to as SD) card, flash memory card (Flash Card) and so on. Of course, the memory 10010 may also include both an internal storage module of the computer device 10000 and an external storage device thereof. In this embodiment, the memory 10010 is generally used to store the operating system and various application software installed in the computer device 10000, such as program codes of a program crash analysis and aggregation method, and the like. In addition, the memory 10010 can also be used to temporarily store various types of data that have been output or will be output.

处理器10020在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备10000的总体操作,例如执行与计算机设备10000进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。In some embodiments, the processor 10020 may be a central processing unit (Central Processing Unit, CPU for short), a controller, a microcontroller, a microprocessor, or other data processing chips. The processor 10020 is generally used to control the overall operation of the computer device 10000 , such as performing control and processing related to data interaction or communication with the computer device 10000 . In this embodiment, the processor 10020 is configured to execute program codes or process data stored in the memory 10010 .

网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备10000与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备10000与外部终端相连,在计算机设备10000与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通讯系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband Code Division Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。The network interface 10030, which may include a wireless network interface or a wired network interface, is typically used to establish a communication link between the computer device 10000 and other computer devices. For example, the network interface 10030 is used to connect the computer device 10000 with an external terminal through a network, and establish a data transmission channel and a communication link between the computer device 10000 and the external terminal. The network can be an intranet (Intranet), the Internet (Internet), a Global System of Mobile communication (GSM for short), a Wideband Code Division Multiple Access (WCDMA for short), a 4G network , 5G network, Bluetooth (Bluetooth), Wi-Fi and other wireless or wired networks.

需要指出的是,图11仅示出了具有部件10010-10030的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。It should be noted that FIG. 11 only shows a computer device having components 10010-10030, but it should be understood that implementation of all shown components is not required, and more or fewer components may be implemented instead.

在本实施例中,存储于存储器10010中的程序崩溃分析聚合方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本申请。In this embodiment, the program crash analysis and aggregation method stored in the memory 10010 can also be divided into one or more program modules and executed by one or more processors (the processor 10020 in this embodiment) to Complete this application.

实施例五Embodiment 5

本实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例二中的程序崩溃分析聚合方法的步骤。This embodiment also provides a computer-readable storage medium, where a computer program is stored on the computer-readable storage medium, and when the computer program is executed by a processor, the steps of the program crash analysis and aggregation method in the second embodiment are implemented.

本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中的程序崩溃分析聚合方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。In this embodiment, the computer-readable storage medium includes flash memory, hard disk, multimedia card, card-type memory (for example, SD or DX memory, etc.), random access memory (RAM), static random access memory (SRAM), read-only memory ( ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), Programmable Read-Only Memory (PROM), magnetic memory, magnetic disk, optical disk, etc. In some embodiments, the computer-readable storage medium may be an internal storage unit of a computer device, such as a hard disk or memory of the computer device. In other embodiments, the computer-readable storage medium may also be an external storage device of a computer device, such as a plug-in hard disk equipped on the computer device, a Smart Media Card (SMC for short), a secure digital ( Secure Digital, referred to as SD) card, flash memory card (Flash Card) and so on. Of course, the computer-readable storage medium may also include both an internal storage unit of a computer device and an external storage device thereof. In this embodiment, the computer-readable storage medium is generally used to store the operating system and various application software installed on the computer device, for example, the program code of the program crash analysis and aggregation method in the embodiment. In addition, the computer-readable storage medium can also be used to temporarily store various types of data that have been output or will be output.

显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。Obviously, those skilled in the art should understand that each module or each step of the above-mentioned embodiments of the present application may be implemented by a general-purpose computing device, and they may be centralized on a single computing device, or distributed in multiple computing devices. network, they can optionally be implemented with program code executable by a computing device, so that they can be stored in a storage device and executed by the computing device, and in some cases, can be different from the The illustrated or described steps are performed in sequence, either by fabricating them separately into individual integrated circuit modules, or by fabricating multiple modules or steps of them into a single integrated circuit module. As such, the embodiments of the present application are not limited to any specific combination of hardware and software.

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。The above are only the preferred embodiments of the present application, and are not intended to limit the scope of the patent of the present application. Any equivalent structure or equivalent process transformation made by using the contents of the description and drawings of the present application, or directly or indirectly applied in other related technical fields , are similarly included within the scope of patent protection of this application.

Claims (17)

1. A program crash analysis aggregation method, comprising:
receiving program crash information of user equipment;
filtering the program crash information of the user equipment, and distributing the filtered program crash information;
analyzing the filtered program crash information to obtain a label; and
and storing the filtered program crash information and the label into a database for query, reading and/or aggregation analysis.
2. The program crash analysis aggregation method as recited in claim 1,
the filtering program crash information of the user equipment comprises:
filtering program crash information of the user equipment according to a plurality of preset fields;
wherein the plurality of fields include a base field and an extension field;
the extension field comprises a crash type, stack information, a crash description, a crash page and equipment running state information during crash.
3. The program crash analysis aggregation method of claim 1, wherein the tags comprise a first tag and a second tag, and wherein the filtered program crash information comprises stack information and a crash description;
the parsing the filtered program crash information to obtain a tag includes:
transmitting the stack information to an analysis layer, and analyzing the stack information through the analysis layer to obtain analyzed stack information;
generating a first label according to the analyzed stack information;
generating a second label according to the crash description;
writing the first tag and the second tag to the database;
wherein the first tag and the second tag are both associated with the program crash information at the database.
4. The program crash analysis aggregation method according to claim 3, wherein the generating a first tag according to the parsed stack information comprises:
deleting invalid information in the analyzed stack information to obtain valid stack information associated with the program; wherein the invalid information comprises at least one or more of: information, numbers associated with the operating system; and
and calculating the first label through a Hash algorithm according to the effective stack information associated with the program.
5. The program crash analysis aggregation method according to claim 3, wherein the user device is an iOS device; the analyzing the stack information through the analyzing layer to obtain analyzed stack information includes:
inquiring the name of the target function through the identifier and the offset of the symbol table in the stack information and the symbol table file of the IPA;
wherein the offset is the difference between the address where the crash occurs and a preset reference address;
and the function corresponding to the target function name is used for calling the object with the crash.
6. The program crash analysis and aggregation method according to claim 3, wherein the user equipment is an Android device; the analyzing the stack information through the analyzing layer to obtain analyzed stack information includes:
inquiring the data before confusion through the confusion data in the stack information and the mapping file for constructing the APK;
wherein the obfuscated data is a class name of the program when running;
and the data before confusion comprises a target function name, and a function corresponding to the target function name is used for calling the object with the crash.
7. The program crash analysis aggregation method according to any one of claims 3 to 6, further comprising:
aggregating the program crash information of the preset time period in the database based on the first label and the second label to obtain a plurality of aggregated data; each piece of data in the same aggregated data has the same first label and/or the same second label;
generating an analysis result based on the plurality of aggregated data, the analysis result including one or more problems that caused the program to crash; and
sending the analysis report into one or more target groups associated with the one or more issues.
8. A program crash analysis aggregation apparatus, comprising:
the receiving module is used for receiving program crash information of the user equipment;
the distribution module is used for filtering the program crash information of the user equipment and distributing the filtered program crash information;
the analysis module is used for analyzing the filtered program crash information to obtain a label;
and the storage module is used for storing the filtered program crash information and the label into a database for query, reading and/or aggregation analysis.
9. A computer device comprising a memory, a processor and a computer program stored on the memory and executable on the processor, wherein the processor is configured to implement the steps of the program crash analysis aggregation method according to any one of claims 1 to 7 when executing the computer program.
10. A computer-readable storage medium, having stored thereon a computer program which is executable by at least one processor to cause the at least one processor to perform the steps of the program crash analysis aggregation method according to any one of claims 1 to 7.
11. A program crash analysis aggregation system, comprising:
the data transmission layer is used for receiving program crash information of the user equipment;
the data consumption layer is used for receiving and filtering the program crash information of the user equipment and distributing the filtered program crash information;
the data cleaning layer is used for analyzing the filtered program collapse information to obtain a label;
and the storage layer is used for storing the filtered program crash information and the label for inquiry, reading and/or aggregation analysis.
12. The program crash analysis aggregation system of claim 11, wherein the data consumption layer is further configured to:
filtering program crash information of the user equipment according to a plurality of preset fields;
wherein the plurality of fields include a base field and an extension field;
the extension field comprises a crash type, stack information, a crash description, a crash page and equipment running state information during crash.
13. The program crash analysis aggregation system of claim 11, wherein the tags comprise a first tag and a second tag, and wherein the filtered program crash information comprises stack information and a crash description;
the data cleaning layer is further configured to:
transmitting the stack information to an analysis layer, and analyzing the stack information through the analysis layer to obtain analyzed stack information;
generating a first label according to the analyzed stack information;
generating a second label according to the crash description;
writing the first tag and the second tag to the storage layer;
wherein the first tag and the second tag are both associated with the program crash information at the storage tier.
14. The program crash analysis and aggregation system of claim 13, wherein the generating a first tag from the parsed stack information comprises:
deleting invalid information in the analyzed stack information to obtain valid stack information associated with the program; wherein the invalid information comprises at least one or more of: information, numbers associated with the operating system; and
and calculating the first label through a Hash algorithm according to the effective stack information associated with the program.
15. The program crash analysis and aggregation system of claim 13, wherein the user device is an iOS device; the analyzing the stack information through the analyzing layer to obtain analyzed stack information includes:
inquiring the name of the target function through the identifier and the offset of the symbol table in the stack information and the symbol table file of the IPA;
wherein the offset is the difference between the address where the crash occurs and a preset reference address;
and the function corresponding to the target function name is used for calling the object with the crash.
16. The program crash analysis and aggregation system of claim 13, wherein the user device is an Android device; the analyzing the stack information through the analyzing layer to obtain analyzed stack information includes:
inquiring the data before confusion through the confusion data in the stack information and the mapping file for constructing the APK;
wherein the obfuscated data is a class name of the program when running;
and the data before confusion comprises a target function name, and a function corresponding to the target function name is used for calling the object with the crash.
17. The program crash analysis aggregation system of any one of claims 13-16, further comprising an automated diagnostic system to:
aggregating the program crash information of the storage layer in a preset time period based on the first label and the second label to obtain a plurality of aggregated data; each piece of data in the same aggregated data has the same first label and/or the same second label;
generating an analysis result based on the plurality of aggregated data, the analysis result including one or more problems that caused the program to crash; and
sending the analysis report into one or more target groups associated with the one or more issues.
CN202210060228.4A 2022-01-19 2022-01-19 Program crash analysis aggregation method and system Pending CN114416560A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210060228.4A CN114416560A (en) 2022-01-19 2022-01-19 Program crash analysis aggregation method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210060228.4A CN114416560A (en) 2022-01-19 2022-01-19 Program crash analysis aggregation method and system

Publications (1)

Publication Number Publication Date
CN114416560A true CN114416560A (en) 2022-04-29

Family

ID=81276205

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210060228.4A Pending CN114416560A (en) 2022-01-19 2022-01-19 Program crash analysis aggregation method and system

Country Status (1)

Country Link
CN (1) CN114416560A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115373965A (en) * 2022-10-25 2022-11-22 中汽信息科技(天津)有限公司 User label identification method and device based on stack technology

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785848B1 (en) * 2000-05-15 2004-08-31 Microsoft Corporation Method and system for categorizing failures of a program module
WO2014106489A1 (en) * 2013-01-07 2014-07-10 北京奇虎科技有限公司 Method and system for processing browser crash information
CN104199749A (en) * 2014-09-17 2014-12-10 百度在线网络技术(北京)有限公司 Crash information processing method and crash information processing device
CN108334515A (en) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 The method, apparatus and system of stack address in file are collapsed in a kind of processing
CN109032909A (en) * 2018-07-18 2018-12-18 携程旅游信息技术(上海)有限公司 Processing method, system, equipment and the storage medium of application crash log
CN110489345A (en) * 2019-08-08 2019-11-22 北京字节跳动网络技术有限公司 A kind of collapse polymerization, device, medium and equipment
CN111190792A (en) * 2019-12-20 2020-05-22 中移(杭州)信息技术有限公司 A method, device, electronic device and readable storage medium for log storage
CN112306833A (en) * 2020-10-28 2021-02-02 广州虎牙科技有限公司 Application program crash statistical method and device, computer equipment and storage medium
CN112711520A (en) * 2020-12-30 2021-04-27 平安科技(深圳)有限公司 Method, device and equipment for processing abnormal log information and storage medium
CN113590188A (en) * 2021-07-30 2021-11-02 上海识装信息科技有限公司 Method, device and storage medium for application program crash stack aggregation

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6785848B1 (en) * 2000-05-15 2004-08-31 Microsoft Corporation Method and system for categorizing failures of a program module
WO2014106489A1 (en) * 2013-01-07 2014-07-10 北京奇虎科技有限公司 Method and system for processing browser crash information
CN104199749A (en) * 2014-09-17 2014-12-10 百度在线网络技术(北京)有限公司 Crash information processing method and crash information processing device
CN108334515A (en) * 2017-01-20 2018-07-27 阿里巴巴集团控股有限公司 The method, apparatus and system of stack address in file are collapsed in a kind of processing
CN109032909A (en) * 2018-07-18 2018-12-18 携程旅游信息技术(上海)有限公司 Processing method, system, equipment and the storage medium of application crash log
CN110489345A (en) * 2019-08-08 2019-11-22 北京字节跳动网络技术有限公司 A kind of collapse polymerization, device, medium and equipment
CN111190792A (en) * 2019-12-20 2020-05-22 中移(杭州)信息技术有限公司 A method, device, electronic device and readable storage medium for log storage
CN112306833A (en) * 2020-10-28 2021-02-02 广州虎牙科技有限公司 Application program crash statistical method and device, computer equipment and storage medium
CN112711520A (en) * 2020-12-30 2021-04-27 平安科技(深圳)有限公司 Method, device and equipment for processing abnormal log information and storage medium
CN113590188A (en) * 2021-07-30 2021-11-02 上海识装信息科技有限公司 Method, device and storage medium for application program crash stack aggregation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115373965A (en) * 2022-10-25 2022-11-22 中汽信息科技(天津)有限公司 User label identification method and device based on stack technology

Similar Documents

Publication Publication Date Title
CN110661659B (en) Alarm method, device and system and electronic equipment
CN110213068B (en) Message middleware monitoring method and related equipment
CN112631913B (en) Method, device, equipment and storage medium for monitoring operation faults of application program
CN113157545A (en) Method, device and equipment for processing service log and storage medium
US10133622B2 (en) Enhanced error detection in data synchronization operations
CN109960635B (en) Monitoring and alarming method, system, equipment and storage medium of real-time computing platform
CN112395156A (en) Fault warning method and device, storage medium and electronic equipment
CN111563016A (en) Log collection and analysis method and device, computer system and readable storage medium
CN110807050B (en) Performance analysis method, device, computer equipment and storage medium
CN114500249B (en) Root cause positioning method and device
CN109284331B (en) Certificate making information acquisition method based on service data resources, terminal equipment and medium
CN112130944A (en) Page abnormity detection method, device, equipment and storage medium
CN113407374A (en) Fault processing method and device, fault processing equipment and storage medium
CN111258798A (en) Fault positioning method and device for monitoring data, computer equipment and storage medium
WO2019195482A1 (en) Database lock
CN118012864A (en) Construction engineering cost information management method, system and readable storage medium
CN107885634B (en) Method and device for processing abnormal information in monitoring
CN112416896A (en) Data abnormity warning method and device, storage medium and electronic device
CN114416560A (en) Program crash analysis aggregation method and system
CN111045723B (en) Method and device for notifying code change between associated systems
CN111159010A (en) Defect collecting method, defect reporting method and related device
CN108334524A (en) A kind of storm daily records error analysis methodology and device
CN114265749B (en) Data processing method, device, electronic device and medium for cluster edge node
CN117692499A (en) Distributed monitoring management method, system, equipment and medium for operation and maintenance service
CN117707892A (en) Application monitoring method and device, electronic equipment and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination