CN118152170A - 用于处理应用程序的异常信息的方法及相关设备 - Google Patents
用于处理应用程序的异常信息的方法及相关设备 Download PDFInfo
- Publication number
- CN118152170A CN118152170A CN202410389504.0A CN202410389504A CN118152170A CN 118152170 A CN118152170 A CN 118152170A CN 202410389504 A CN202410389504 A CN 202410389504A CN 118152170 A CN118152170 A CN 118152170A
- Authority
- CN
- China
- Prior art keywords
- information
- abnormal
- abnormal information
- application program
- anomaly
- 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
Links
- 238000000034 method Methods 0.000 title claims description 107
- 238000012545 processing Methods 0.000 title claims description 64
- 230000002159 abnormal effect Effects 0.000 claims abstract description 166
- 230000002776 aggregation Effects 0.000 claims abstract description 82
- 238000004220 aggregation Methods 0.000 claims abstract description 82
- 238000004458 analytical method Methods 0.000 claims abstract description 30
- 230000008569 process Effects 0.000 claims description 43
- 230000006870 function Effects 0.000 claims description 32
- 230000005856 abnormality Effects 0.000 claims description 21
- 230000004931 aggregating effect Effects 0.000 claims description 18
- 238000007619 statistical method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 11
- 230000002829 reductive effect Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 29
- 238000004891 communication Methods 0.000 description 13
- 235000019580 granularity Nutrition 0.000 description 11
- 238000007726 management method Methods 0.000 description 11
- 101150090313 abc1 gene Proteins 0.000 description 5
- 101150035381 abc2 gene Proteins 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000011835 investigation Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013024 troubleshooting Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 101150005874 DEF1 gene Proteins 0.000 description 2
- 101150011704 Def3 gene Proteins 0.000 description 2
- 101100214787 Schizosaccharomyces pombe (strain 972 / ATCC 24843) abc3 gene Proteins 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000013475 authorization Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 101150060629 def gene Proteins 0.000 description 2
- 101150060894 def2 gene Proteins 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000006116 polymerization reaction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Abstract
本申请提供一种用于处理应用程序的异常信息的方法及相关设备,在获取到应用程序的多个异常信息后,对多个异常信息对应的多个堆栈信息分别进行哈希处理,以得到多个哈希值,基于多个哈希值对多个异常信息进行聚合,进而基于聚合结果展示应用程序的多个异常信息。通过基于多个哈希值对应用程序的多个异常信息进行聚合后分析,精简了信息量,从而使得分析工作更加高效。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种用于处理应用程序的异常信息的方法及相关设备。
背景技术
随着互联网技术的发展,实现各种服务的程序层出不穷。进程异常是指进程在运行过程中出现的运行错误,进程异常可以是导致运行终止的异常或者导致进程运行进入死循环的异常等。
在检测到进程在运行过程中出现异常流量时,操作系统可以将程序出现异常时的信息存储在一个文件中,从而生成异常文件以供后续异常崩溃分析。然而,基于该异常文件进行的分析工作比较复杂。
发明内容
有鉴于此,本申请的目的在于提出一种用于处理应用程序的异常信息的方法及相关设备,以解决或部分解决上述问题。
基于上述目的,本申请第一方面,提供了一种用于处理应用程序的异常信息的方法,包括:
获取所述应用程序的多个异常信息,所述异常信息包括所述应用程序在运行异常时的堆栈信息;
对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果;
基于所述聚合结果展示所述多个异常信息。
本申请第二方面,提供了一种用于处理应用程序的信息的装置,包括:
获取模块,被配置为获取所述应用程序的多个异常信息,所述异常信息包括所述应用程序在运行异常时的堆栈信息;
聚合模块,被配置为对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果;
展示模块,被配置为基于所述聚合结果展示所述多个异常信息。
本申请第三方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一方面所述的方法。
本申请第四方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如第一方面所述的方法。
本申请第四方面,提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
从上面所述可以看出,本申请提供的一种用于处理应用程序的异常信息的方法及相关设备,在获取到应用程序的多个异常信息后,对多个异常信息对应的多个堆栈信息分别进行哈希处理,以得到多个哈希值,基于多个哈希值对多个异常信息进行聚合,进而基于聚合结果展示应用程序的多个异常信息。通过基于多个哈希值对应用程序的多个异常信息进行聚合后分析,精简了信息量,从而使得分析工作更加高效。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A示出了根据本申请实施例的示例性系统的示意图。
图1B示出了根据本申请实施例的示例性生成异常文件的流程示意图。
图1C示出了根据本申请实施例的示例性异常崩溃分析的流程示意图。
图1D示出了根据本申请实施例的另一示例性异常崩溃分析的流程示意图。
图1E示出了根据本申请实施例的示例性系统的示意图。
图2A示出了根据本申请实施例的示例性处理应用程序的异常信息的流程示意图。
图2B示出了根据本申请实施例的示例性数据聚合的流程示意图。
图2C示出了根据本申请实施例的页面的示意图。
图2D示出了根据本申请实施例的示例性第二功能的流程示意图。
图2E示出了根据本申请实施例的又一示例性第二功能的流程示意图。
图2F示出了根据本申请实施例的示例性页面的示意图。
图3示出了根据本申请实施例的示例性用于处理应用程序的异常信息的方法的流程示意图。
图4示出了根据本申请实施例示例性用于处理应用程序的异常信息的装置的示意图。
图5示出了根据本申请实施例的示例性电子设备的示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
可以理解的是,在使用本申请中各个实施例的技术方案之前,均会通过恰当的方式对所涉及的个人信息的类型、使用范围、使用场景等告知用户,并获得用户的授权。
例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确的提示用户,其请求执行的操作将需要获取和使用到用户的个人信息。从而,使得用户可以根据提示信息来自主的选择是否向执行本申请技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。
作为一种可选的但非限定的实现方式,响应于接受到用户的主动请求,向用户发送提示信息的方式例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或者“不同意”向电子设备提供个人信息的选择控件。
可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本申请的实现方式构成限定,其他满足相关法律法规的方式也可应用于本申请的实现方式中。
图1A示出了根据本申请实施例的示例性系统100的示意图。
如图1A所示,系统100可以包括服务器端102和终端设备104、终端设备106、终端设备108,终端设备104、终端设备106、终端设备108和服务器端102之间通过网络连接,比如,通过有线或无线网络连接等。其中,本申请实施例中用于处理应用程序的异常信息的装置可以集成在终端设备104、终端设备106和终端设备108中。
服务器端102可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)以及大数据和人工智能平台等基础云计算服务的云服务器。服务器端102可以为终端设备104、终端设备106、终端设备108提供后台服务。服务器端102上运行的操作系统可以包括但不限于安卓系统、IOS系统、Linux系统、Windows系统等。
终端设备104、终端设备106、终端设备108可以包括智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、车载终端、数字助理、增强现实(Augmented Reality,AR)或虚拟现实(Virtual Reality,VR)设备、智能可穿戴设备等类型的实体设备,也可以包括运行于实体设备中的软件,例如,应用程序等。本申请实施例中上述终端设备104、终端设备106、终端设备108上运行的操作系统可以包括但不限于安卓系统、IOS系统、Linux系统、Windows系统等。
终端设备104、终端设备106、终端设备108上可以安装有各种应用程序(Application,APP,中文简称:应用),例如,图像处理类应用程序、视频会议类应用程序、读书类应用程序、视频类应用程序、社交类应用程序、支付类应用程序、网页浏览器和即时通讯工具等。
上述终端设备104、终端设备106、终端设备108和服务器端102可以用于构建分布式系统。分布式系统可以由多个节点和终端设备形成,节点之间通过网络协议进行通信传输。在分布式系统中,任何机器如服务器、终端设备都可以加入而成为节点。
图1B示出了根据本申请实施例的示例性生成异常文件的流程示意图。
如图1B所示,服务器端102可以包括多个物理设备(例如,硬件服务器),这些物理设备上可以部署服务器端102的多个节点。物理设备与节点不一定是一一对应的,一台物理设备可以部署多个节点。为了示意得方便,本实施例以一台物理设备部署一个节点为例进行说明。如图1B所示,例如,服务器端102的多个节点可以包括节点1022、节点1024和节点1026。终端设备104、终端设备106、终端设备108可以将各种应用程序分配到服务器端102中的一个或多个节点上执行。在一个或多个节点上执行的一个或多个操作可以完成应用程序的一项或多项任务(或功能),因此也可以被称为服务器端102所提供的服务。
在服务器端102的操作系统中,应用程序以进程的形态运行在系统中。进程是程序运行的实体。每个进程对应配置有自己的地址空间,该地址空间可以包括但不限于:文本区域(Text Region)、数据区域(Data Region)和堆栈(Stack Region)。其中,文本区域用于存储处理器执行的代码,数据区域用于存储变量和进程执行过程中动态分配的内存,堆栈区域用于存储进程执行过程中调用的指令、函数和变量。
进程异常是指进程在运行过程中出现的运行错误,进程异常可以是导致运行终止的异常或者导致进程运行进入死循环的异常等。进程异常可以包括由于外部问题引起的异常,例如,硬件错误、输入错误等,也可以包括由于内部的逻辑处理错误引起的异常。进程存在异常会对该进程对应用程序所提供的服务产生不利影响。
在检测到进程在运行过程中出现异常流量时,操作系统可以将程序出现异常时的信息映像存储在一个文件中,从而生成异常文件以供后续异常崩溃分析。其中,异常文件可以是核心转储文件(Coredump文件)。
应用程序的源代码可以包括由软件描述语言编码的代码,软件描述语言至少包括Java语言和C/C++语言。由于C++语言的卓越性能和低延迟特性,它在推荐、广告、搜索等对实时性要求极高的大规模系统中被广泛应用。在这些场景中,线上系统需要在毫秒级的短时间内对大量数据进行在线计算,并快速得出推荐排序结果。
然而,C++语言的异常处理能力较弱。一旦应用程序中的代码运行出现异常,可能会导致整个服务器端102崩溃。此外,应用程序进程出现异常的问题排查过程复杂且困难,这对服务器端102提供的线上服务的稳定性造成了极大的影响。
图1C示出了根据本申请实施例的示例性异常崩溃分析的流程示意图。
如图1C所示,当线上出现C++应用程序崩溃时,在一些实施例中,可以通过在代码中预先写入的打点逻辑,基于时序数据库来收集应用程序代码中的打点信息,记录数据,快速展现给应用程序的维护者122。维护者122可以查询时序数据库获取打点信息,以排查导致应用程寻出现崩溃的问题。然而,这种方式的缺陷是,受到时序数据库的能力限制,仅能收集一部分固定异常信息,例如,IP地址(Internet Protocol Address,互联网协议地址),环境变量等,无法回传最重要的应用程序崩溃的堆栈。凭借IP地址和环境变量等异常信息,仅能起到报警作用,无法真正辅助排查导致程序崩溃的问题。因此,该方法无法解决大规模C++应用程序崩溃调试的问题。
图1D示出了根据本申请实施例的另一示例性异常崩溃分析的流程示意图。
如图1D所示,当异常流量引起线上主进程中的异常信号触发时,在一些实施例中,用户132可以通过远程执行命令(SSH)连接到到指定的云服务器节点中的调试进程上,基于Linux系统命令和调试工具,加载异常文件进行调试。然而,这种方式的缺陷包括三点:其一,调试属于单点操作,一次仅能调试一个云服务器节点,缺乏全局视野。多台服务器上的崩溃堆栈往往不尽相同,调试人员通常需要在多台服务器上进行这一操作来验证调试猜想,耗时耗力;其二,因需要加载巨大的异常文件,调试时间不可控,不适用于需要紧急修复线上故障的场景;其三,通过SSH命令登录到对应的云服务器存在安全风险。
服务器端102可以是云服务器。在一些大规模的项目中,云服务器通常会部署成千上万的节点。然而,当常规C++语言编写的应用程序出现崩溃时,操作系统会将当前进程的状态信息和二进制调试信息一起打包成异常文件。这里以Coredump文件为例进行说明。
Coredump文件是一个程序在运行过程中发生错误或异常时,操作系统生成的一种包含了程序崩溃那一刻的内存状况的文件。它是一种非常重要的调试工具,它可以帮助用户(例如,调试人员)找到导致程序崩溃的原因。然而,排查Coredump文件中的异常问题的过程通常会非常复杂和困难。其原因包括:首先,Coredump文件中通常包含大量的异常信息,这些异常信息需要具备专业的技术知识的人员才能理解和分析。其次,Coredump文件只能提供程序崩溃时的内存快照,而无法提供崩溃前的程序运行情况,这就需要调试人员具备丰富的经验和高超的推理能力,才能从这些异常信息中找出异常问题的根源。
如上所述,在一些大规模的项目中,云服务器通常会部署成千上万的节点。
图1E示出了根据本申请实施例的示例性系统140的示意图。
如图1E所示,系统140可以包括服务器端102,服务器端102(例如,云服务器)可以部署多个节点。这里以服务器端102部署了节点a-f为例。系统140还可以包括多个终端设备(例如,终端设备142、144、146)以及请求入口模块148。多个终端设备可以向服务器端102发送请求,该请求可以经由请求入口模块148依次经过对应的节点a、b、c,并依次传输至与节点a、b、c对应的节点d、e、f。其中,该请求可以是多个终端设备将各自的应用程序部署至服务器端102运行的请求。
在该应用场景中,可以看到,当异常流量来自同一个终端设备的同一个应用程序时,该应用程序的异常信息会在多个节点中传递。例如,异常流量来自终端设备142中的同一个应用程序,该应用程序的异常信息可以在节点a和b中传递。这样,当操作系统触发异常生成异常文件时,节点a和节点b生成的异常文件中包含的应用程序的异常信息相同。来自同一个终端设备异常流量确触发生成多个相同的异常文件无疑会导致大量资源的占用。并且在排查异常时,来自同一个终端设备异常流量需要排查多个相同的异常文件,会导致排查效率较低。
此外,排查大集群的C++服务异常崩溃还包括以下几个难点。
首先,C++服务崩溃时堆栈存在不稳定问题,如内存踩踏等。在大集群,多线程,高频异常崩溃发生时,每秒会发生上千条异常崩溃信息。在缺乏平台工具的情况下,最多只能看到几条异常信息,而缺少全局纵览能力。
其次,异常崩溃文件包含大量异常信息,需要具备专业的技术知识才能理解和分析。业务开发人员往往对C++服务崩溃的排查经验不足,排查困难。
再有,在因异常流量带来的高频异常文件的生成时,单纯靠异常文件来排查效率极差且止损慢。如果有平台工具可以辅助归因,可以极大的保障服务稳定性。
有鉴于此,本申请提供一种用于处理应用程序的异常信息的方法及相关设备,在获取到应用程序的多个异常信息后,对多个异常信息对应的多个堆栈信息分别进行哈希处理,以得到多个哈希值,基于多个哈希值对多个异常信息进行聚合,进而基于聚合结果展示应用程序的多个异常信息。通过基于多个哈希值对应用程序的多个异常信息进行聚合后分析,精简了信息量,从而使得分析工作更加高效。
图2A示出了根据本申请实施例的示例性处理应用程序的异常信息的流程示意图。
如图2A所示,在一些实施例中,应用程序的异常信息可以是来自目标平台202的多个异常信息。该异常信息可以包括应用程序在运行时的堆栈信息,以及环境变量、服务标识(PSM)、终端设备所在机房的信息、IP地址等。
应用程序的多个异常信息可以通过目标函数读取。在一些实施例中,目标函数可以是数据消费函数。通过目标函数可以将目标平台202中的数据读取出来并写入平台204对应的数据库中,以供用户在平台204对数据进行分析处理。利用平台204进行数据的分析处理,避免了用户通过SSH命令登录到服务器进行异常问题排查带来的存在安全风险的问题。
为了精简应用程序的多个异常信息,在一些实施例中,可以基于堆栈信息对应用程序的多个异常信息进行聚合处理,得到聚合结果(例如,聚合数据),并基于聚合数据进行异常原因的排查。
图2B示出了根据本申请实施例的示例性数据聚合的流程示意图。
通过目标函数读取目标平台202中的数据(即应用程序的多个异常信息)。如图2B所示,在一些实施例中,可以对应用程序的多个异常信息进行处理,并将处理结果作为原始数据进行聚合处理。
如上所述,同一条应用程序的异常信息(例如,堆栈信息)可能在不同时间不同物理设备(例如,服务器端102上的不同节点)上反复出现。鉴于此,在一些实施例中,可以基于应用程序在运行时的堆栈信息对应用程序的多个异常信息进行聚合。在聚合之前,在一些实施例中,可以对多个异常信息对应的多个堆栈信息分别进行哈希处理,以得到多个第一哈希值。以第一哈希值、服务标识等应用程序的异常信息作为原始数据进行聚合处理,以精简应用程序的多个异常信息。
在进行聚合处理时,在一些实施例中,可以以第一哈希值为标识(ID),将应用程序的多个异常信息聚合成数组。例如,如图2B所示,原始数据1中可以包括第一哈希值:123、服务标识:abc1、IP地址:def1;原始数据2中可以包括第一哈希值:123、服务标识:abc2、IP地址:def2;原始数据3中可以包括第一哈希值:456、服务标识:abc3、IP地址:def3。在进行聚合处理时,可以以第一哈希值为标识,对原始数据1、2、3中的服务标识和IP地址进行聚合处理。可以看到,由于原始数据1和2中的第一哈希值相同,因此,在聚合后的聚合数据1中,以第一哈希值:123为标识,可以将服务标识聚合为数组:[abc1,abc2],将IP地址聚合为数组:[def1,def2];在聚合后的聚合数据2中,以第一哈希值:456为标识,聚合后的服务标识依然为abc3,聚合后的IP地址依然为def3。
作为一可选实施例,还可以增加应用程序的异常信息中的服务标识和堆栈信息一起进行哈希处理后进行聚合。例如,针对每个应用程序的异常信息,可以对服务标识和堆栈信息进行哈希处理,以得到每个应用程序的异常信息对应的第二哈希值。将第二哈希值作为标识对多个应用程序的异常信息进行聚合,得到聚合结果。这样,通过控制与堆栈信息一起进行哈希处理的元信息的数量,可以控制数据聚合的粒度。在通过聚合精简了数据的基础上,针对不同的聚合粒度可以进行不同的分析处理,以便用户(例如,调试人员)可以从不同的维度对异常原因进行排查。
回到图2A,在一些实施例中,基于聚合结果可以在第二平台204展示应用程序的多个异常信息,以便用户可以利用第二平台204的第一功能206对多个异常信息进行异常问题的排查。通过可视化的方式展示聚合结果,方便了用于进行异常问题的排查。
图2C示出了根据本申请实施例的页面200的示意图。页面200可以是第二平台204提供的页面。第二平台204可以部署在终端设备上。
如图2C所示,页面200可以包括用于执行第一功能206的控件。在一些实施例中,基于聚合后的数据,用户可以在第二平台204上通过对服务标识、时间等筛选条件对聚合后的数据进行检索过滤,以快速定位到目标线上服务的异常信息。例如,终端设备响应于针对第一功能206的控件的触发操作,可以显示用于选择服务标识的选项框222和/或用于选择IP地址的选项框224。用户可以通过点击控件214选择目标服务标识,通过点击控件216选择目标IP地址。进而通过点击控件226检索到想要查看的应用程序的异常信息。终端设备响应于针对目标服务标识和/或目标IP地址的检索操作,可以根据聚合结果展示与目标服务标识和/或IP地址对应的应用程序的异常信息。
需要说明的是,上述实施例仅是以基于服务标识和/或IP地址进行检索为例。在实际应用中,基于数据聚合的粒度不同可以设置不同的检索方式,在一些实施例中,在进行数据聚合时还可以将应用程序的异常信息中预先设定的多个目标信息(例如,终端设备所在机房的信息)与堆栈信息和服务标识一起进行哈希处理,以得到第三哈希值,并基于第三哈希值对应用程序的异常信息进行聚合,此时,可以设置在页面200中除了服务标识、IP地址,还可以通过预设的目标信息对聚合后的应用程序的异常信息进行检索。本申请对此不作限制。
检索结果(例如,与服务标识和/或多个目标信息对应的应用程序的异常信息)可以以卡片228的形式展示在页面200中。如图2C所示,在一些实施例中,卡片228中可以包括应用程序的异常信息对应的标题218,例如,标题218可以包括与目标服务标识对应的服务标识的信息,该目标服务标识首次出现的时间、最新出现的时间、发生次数等信息。控件226的下方还可以显示检索结果的条数(例如,XXX条检索结果)。在标题218下方的内容框220中可以显示与目标服务标识和/或多个目标信息对应的应用程序的异常信息中的内容,例如,在内容框220中可以显示与目标服务标识对应的应用程序的源代码中的行号、函数名称等信息。这样,通过服务标识或其他元信息检索聚合后的结果可以使得用户快速定位到需要查看的源代码的位置,减少了缺少平台的辅助进行异常问题的排查需要人工查看多个堆栈信息的问题,提升了异常问题排查的效率。将检索的结果展示在页面200中可以方便用户进行查看。此外,根据数据聚合粒度的不同设置不同的检索方式更加灵活。
通过以卡片228的形式展示检索结果,可以使得应用程序的源代码信息的展示更加整洁、有条理。在一些实施例中,卡片228中的信息可以包括堆栈信息、聚合次数、首次出现时间、最新出现时间、其他目标信息、时间线信息等多种信息。基于卡片228,还可以在第二平台204上支持收藏、分享、日报、周报等能力,来辅助提醒用户解决自己所属服务的异常文件,以提高服务的稳定性。
在一些实施例中,基于数据聚合能力,可以通过对服务标识、IP地址、所在机房等多个目标信息与堆栈内容一起进行哈希处理,来存储聚合数据。以便用户在第二平台204上通过更加细粒度的维度来定位应用程序的异常信息。同时,因为聚合粒度较细,应用程序的多个异常信息可以最大程度地被保留而非聚合在一起。在此场景下,用户可以通过第三功能210在应用程序的开发阶段进行多个异常信息的检索,方便用户在本地或小流量环境下(例如,应用程序的开发阶段)进行更细致的调试。
回到图2A,在一些实施例中,可以利用第二平台204的第二功能208对收集到的多个异常信息进行归因分析处理。如图2C所示,用户可以通过在页面200中点击第二功能208对应的控件对多个异常信息进行归因分析处理。
图2D示出了根据本申请实施例的示例性第二功能208的流程示意图。
如图2D所示,用户在应用程序的开发阶段,可以预先在请求中携带部分,以便在应用程序发生崩溃时回传更多异常信息,方便用户进行归因分析,在一些实施例中,可以通过设置线程池支持线程间上下文传递字段的功能。这样,在多线程任务中可以实现运行时数据在线程间的传递。其中,上下文传递的字段可以是应用程序的异常信息中的请求级数据,请求级数据可以包括请求标识(id)等业务特化数据。
例如,如图2D所示,在支持上下文传递自定义数据的场景中,可以注入用户自定义请求标识(vid)。这样,请求入口线程除了获取到的数据,还可以包括请求标识,例如,vid=1、vid=2、vid=3、vid=4。如果对应请求标识vid=3和vid=4的应用程序触发异常流量,而对应请求标识vid=1和vid=2的应用程序为正常流量,则目标平台202中收集到的触发异常流量的应用程序的异常信息除了堆栈信息、环境变量等信息,还可以包括请求标识vid=3和vid=4。
基于目标平台202中收集到的请求标识,利用第二平台的第二功能208可以对原始数据进行进行归因分析处理,例如,将相同请求标识的异常信息进行归类,以得到应用程序的多个异常信息的归因分析结果。例如,如图2D所示,原始数据1(可以包括第一哈希值:123、服务标识:abc1和请求标识vid:3)和原始数据2(可以包括第一哈希值:456、服务标识:abc2和请求标识vid:4)进行利用第二功能208进行自定义归因处理后,归因分析结果可以显示(vid=1):0次,表示请求标识vid=1出现的次数为0次;(vid=2):0次,表示请求标识vid=2出现的次数为0次;(vid=3):50次,表示请求标识vid=3出现的次数为50次;(vid=4):50次,表示请求标识vid=4出现的次数为50次。基于此,可以得到请求标识vid=3和请求标识vid=4对应的应用程序的异常信息有问题的归因结论。通过请求标识将数据进行归因可以快速分析出异常问题来自哪个应用程序,从而提升问题排查的效率。
图2E示出了根据本申请实施例的又一示例性第二功能208的流程示意图。
作为一可选实施例,如图2E所示,基于携带请求标识的原始数据,可以先基于对堆栈信息进行哈希处理后的哈希值对原始数据进行聚合处理后,再基于请求标识对聚合数据进行自定义归因处理。分析结果。例如,如图2E所示,原始数据1(可以包括第一哈希值:123、服务标识:abc1和请求标识vid:3)和原始数据2(可以包括第一哈希值:456、服务标识:abc2和请求标识vid:4)基于第一哈希值进行聚合处理后得到聚合数据1(第一哈希值:123、服务标识:abc1和vid:3)和聚合数据2(第一哈希值456、服务标识abc2和vid:4)。基于请求标识利用第二功能208对聚合数据进行自定义归因处理后,归因分析结果可以显示(vid=1):0次,表示请求标识vid=1出现的次数为0次;(vid=2):0次,表示请求标识vid=2出现的次数为0次;(vid=3):50次,表示请求标识vid=3出现的次数为50次;(vid=4):50次,表示请求标识vid=4出现的次数为50次。基于此,可以得到请求标识vid=3和请求标识vid=4对应的应用程序的异常信息有问题的归因结论。这样先通过数据聚合精简数据后再进行归因处理,可以提升归因处理的效率。
回到图2A,为了最大程度上支持灵活多变的统计分析,在一些实施例中,可以通过目标函数将目标平台202中的数据写入目标数据库管理系统中,基于目标数据库管理系统全量保存短期的应用程序的异常信息。同时,可以利用第二平台的第四功能212对目标数据库管理系统中的异常信息进行统计分析处理,以得到应用程序的多个异常信息的统计分析结果。
图2F示出了根据本申请实施例的示例性页面250的示意图。
在一些实施例中,上述目标数据库管理系统可以是ClickHouse数据库管理系统。ClickHouse数据库管理系统是一个开源的列式数据库管理系统,用于在线分析处理(OLAP)。在目标数据库管理系统中,可以使用SQL数据库查询并实时生成分析数据报告,处理包含数百亿行和数千万列的数据,而且能够在短时间内生成报告。
如图2F所示,基于目标数据库管理系统,可以利用第二平台204的第四功能212进行应用程序的多个异常信息的统计分析。在一些实施例中,统计分析结果可以以各种图表的形式展示在页面250中。这里以饼状图为例,用户可以通过页面250中的选项框选服务标识。终端设备响应于通过控件256触发的选择目标服务标识的指令,可以在页面250中显示基于服务标识的统计结果。该统计结果中可以显示每个服务标识所占比例,并突出显示用户所选择的目标服务标识的比例。例如,在图2F中所示的饼状图中可以显示应用程序的多个异常信息中的每个服务标识所在比例,例如,第一服务标识、第二服务标识、第三服务标识和第四服务标识。如果用户选择的目标服务标识为第一服务标识,则可以在饼状图中突出显示第一服务标识,以便用户定位到需要查看的异常信息。通过统计分析报告将数据进行可视化,使得用户对于应用程序的多个异常信息有了全局视角。
图3示出了根据本申请实施例的示例性用于处理应用程序的异常信息的方法300的流程示意图。方法300可以由系统100(例如,图1A中的系统100)执行。方法300可以包括如下步骤。
在步骤302,获取所述应用程序的多个异常信息,所述异常信息包括所述应用程序在运行异常时的堆栈信息。
在一些实施例中,所述应用程序的源代码包括由软件描述语言编码的代码,所述软件描述语言至少包括C++语言。
在一些实施例中,所述获取所述应用程序的多个异常信息进一步包括:基于目标函数在目标平台中获取所述应用程序的所述多个异常信息。以读取多个异常信息并将多个异常信息写入用于处理异常信息的平台。
在步骤304,对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果。
在一些实施例中,所述对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果进一步包括:针对每个所述异常信息,对所述异常信息的所述堆栈信息进行哈希处理,以得到每个所述异常信息对应的第一哈希值;基于所述多个异常信息对应的多个所述第一哈希值对所述多个异常信息进行聚合,以得到所述聚合结果。这样可以精简应用程序的多个异常信息。
在一些实施例中,所述异常信息还包括请求级数据,所述请求级数据包括请求标识,所述方法还包括:基于所述请求标识对所述聚合结果进行归因分析处理(例如,第二功能208),以得到所述多个异常信息的归因分析结果。通过请求标识将数据进行归因可以快速分析出异常问题来自哪个应用程序,从而提升问题排查的效率。
在一些实施例中,所述多个异常信息存储在目标数据库管理系统,所述方法还包括:基于所述哈希值对所述目标数据库管理系统中的所述多个异常信息进行统计分析处理(例如,第四功能212),以得到所述多个异常信息的统计分析结果。通过统计分析报告将数据进行可视化,使得用户对于应用程序的多个异常信息有了全局视角。
在一些实施例中,所述异常信息还包括所述应用程序对应的服务的服务标识,所述对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果进一步包括:针对每个所述异常信息,对所述异常信息的所述堆栈信息和所述服务标识进行哈希处理,以得到每个所述异常信息对应的第二哈希值;基于所述多个异常信息对应的多个所述第二哈希值对所述多个异常信息进行聚合,以得到所述聚合结果。这样,通过控制与堆栈信息一起进行哈希处理的元信息的数量,可以控制数据聚合的粒度。在通过聚合精简了数据的基础上,针对不同的聚合粒度可以进行不同的分析处理,以便用户(例如,调试人员)可以从不同的维度对异常原因进行排查。
在一些实施例中,所述基于所述多个异常信息对应的多个所述第二哈希值对所述多个异常信息进行聚合,以得到所述聚合结果之后,所述方法还包括:响应于针对目标服务标识的检索操作,根据所述聚合结果展示所述目标服务标识对应的所述异常信息。以快速定位到目标线上服务的异常信息。
在一些实施例中,所述异常信息还包括所述应用程序对应的服务的服务标识和预先设定的多个目标信息,所述对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果进一步包括:针对每个所述异常信息,对所述异常信息的所述堆栈信息、所述服务标识和所述多个目标信息进行哈希处理,以得到每个所述异常信息对应的第三哈希值;基于所述多个异常信息对应的多个所述第三哈希值对所述多个异常信息进行聚合处理,以得到所述聚合结果。这样,通过控制与堆栈信息一起进行哈希处理的元信息的数量,可以控制数据聚合的粒度。在通过聚合精简了数据的基础上,针对不同的聚合粒度可以进行不同的分析处理,以便用户(例如,调试人员)可以从不同的维度对异常原因进行排查。
在一些实施例中,所述方法还包括:响应于针对所述服务标识和/或所述多个目标信息的检索操作,根据所述聚类结果展示所述服务标识和/或所述多个目标信息对应的所述异常信息。基于更细的聚合粒度,应用程序的多个异常信息可以最大程度地被保留而非聚合在一起。在此场景下,可以方便用户在本地或小流量环境下(例如,应用程序的开发阶段)进行更细致的调试。
在一些实施例中,所述根据所述聚类结果展示所述服务标识和/或所述多个目标信息对应的所述异常信息进一步包括:根据所述聚类结果,以卡片(例如,图2C中的卡片228)的形式展示所述服务标识和/或所述多个目标信息对应的所述异常信息。通过以卡片的形式展示检索结果,可以使得应用程序的源代码信息的展示更加整洁、有条理。
在步骤306,基于所述聚合结果展示所述多个异常信息。通过可视化的方式展示聚合结果,方便了用于进行异常问题的排查。
本申请提供的一种用于处理应用程序的异常信息的方法及相关设备,在获取到应用程序的多个异常信息后,对多个异常信息对应的多个堆栈信息分别进行哈希处理,以得到多个哈希值,基于多个哈希值对多个异常信息进行聚合,进而基于聚合结果展示应用程序的多个异常信息。通过基于多个哈希值对应用程序的多个异常信息进行聚合后分析,精简了信息量,从而使得分析工作更加高效。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一技术构思,与上述任意实施例方法相对应的,本申请还提供了一种用于处理应用程序的异常信息的装置400。
参考图4,所述装置400,可以包括:
获取模块402,被配置为获取所述应用程序的多个异常信息,所述异常信息包括所述应用程序在运行异常时的堆栈信息。
其中,所述应用程序的源代码包括由软件描述语言编码的代码,所述软件描述语言至少包括C++语言。
获取模块402,还被配置为基于目标函数在目标平台中获取所述应用程序的所述多个异常信息。
聚合模块404,被配置为对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果。
聚合模块404,还被配置为针对每个所述异常信息,对所述异常信息的所述堆栈信息进行哈希处理,以得到每个所述异常信息对应的第一哈希值;基于所述多个异常信息对应的多个所述第一哈希值对所述多个异常信息进行聚合,以得到所述聚合结果。
聚合模块404,还被配置为基于所述请求标识对所述聚合结果进行归因分析处理,以得到所述多个异常信息的归因分析结果。
聚合模块404,还被配置为基于所述哈希值对所述目标数据库管理系统中的所述多个异常信息进行统计分析处理,以得到所述多个异常信息的统计分析结果。
聚合模块404,还被配置为针对每个所述异常信息,对所述异常信息的所述堆栈信息和所述服务标识进行哈希处理,以得到每个所述异常信息对应的第二哈希值;基于所述多个异常信息对应的多个所述第二哈希值对所述多个异常信息进行聚合,以得到所述聚合结果。
聚合模块404,还被配置为响应于针对目标服务标识的检索操作,根据所述聚合结果展示所述目标服务标识对应的所述异常信息。
聚合模块404,还被配置为针对每个所述异常信息,对所述异常信息的所述堆栈信息、所述服务标识和所述多个目标信息进行哈希处理,以得到每个所述异常信息对应的第三哈希值;基于所述多个异常信息对应的多个所述第三哈希值对所述多个异常信息进行聚合处理,以得到所述聚合结果。
聚合模块404,还被配置为响应于针对所述服务标识和/或所述多个目标信息的检索操作,根据所述聚类结果展示所述服务标识和/或所述多个目标信息对应的所述异常信息。
聚合模块404,还被配置为根据所述聚类结果,以卡片的形式展示所述服务标识和/或所述多个目标信息对应的所述异常信息。
展示模块406,被配置为基于所述聚合结果展示所述多个异常信息。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的方法300,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一技术构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一实施例所述的方法300。
图5示出了根据本申请实施例的示例性电子设备的示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备、动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的方法300,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一技术构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法300。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法300,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例所述的方法300相对应的,本申请还提供了一种计算机程序产品,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如上任一实施例所述的方法300。在一些实施例中,所述计算机程序指令可以由计算机的一个或多个处理器执行以使得所述计算机和/或所述处理器执行所述的方法300。对应于所述的方法300中各实施例中各步骤对应的执行主体,执行相应步骤的处理器可以是属于相应执行主体的。
上述实施例的计算机程序产品用于使所述计算机和/或所述处理器执行如上任一实施例所述的方法300,并且具有相应的方法实施例的有益效果,在此不再赘述。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种用于处理应用程序的异常信息的方法,包括:
获取所述应用程序的多个异常信息,所述异常信息包括所述应用程序在运行异常时的堆栈信息;
对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果;
基于所述聚合结果展示所述多个异常信息。
2.如权利要求1所述的方法,其中,所述对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果进一步包括:
针对每个所述异常信息,对所述异常信息的所述堆栈信息进行哈希处理,以得到每个所述异常信息对应的第一哈希值;
基于所述多个异常信息对应的多个所述第一哈希值对所述多个异常信息进行聚合,以得到所述聚合结果。
3.如权利要求1所述的方法,其中,所述异常信息还包括请求级数据,所述请求级数据包括请求标识,所述方法还包括:
基于所述请求标识对所述聚合结果进行归因分析处理,以得到所述多个异常信息的归因分析结果。
4.如权利要求1所述的方法,其中,所述多个异常信息存储在目标数据库管理系统,所述方法还包括:
基于所述哈希值对所述目标数据库管理系统中的所述多个异常信息进行统计分析处理,以得到所述多个异常信息的统计分析结果。
5.如权利要求1所述的方法,其中,所述异常信息还包括所述应用程序对应的服务的服务标识,所述对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果进一步包括:
针对每个所述异常信息,对所述异常信息的所述堆栈信息和所述服务标识进行哈希处理,以得到每个所述异常信息对应的第二哈希值;
基于所述多个异常信息对应的多个所述第二哈希值对所述多个异常信息进行聚合,以得到所述聚合结果。
6.如权利要求5所述的方法,其中,所述基于所述多个异常信息对应的多个所述第二哈希值对所述多个异常信息进行聚合,以得到所述聚合结果之后,所述方法还包括:
响应于针对目标服务标识的检索操作,根据所述聚合结果展示所述目标服务标识对应的所述异常信息。
7.如权利要求1所述的方法,其中,所述异常信息还包括所述应用程序对应的服务的服务标识和预先设定的多个目标信息,所述对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果进一步包括:
针对每个所述异常信息,对所述异常信息的所述堆栈信息、所述服务标识和所述多个目标信息进行哈希处理,以得到每个所述异常信息对应的第三哈希值;
基于所述多个异常信息对应的多个所述第三哈希值对所述多个异常信息进行聚合处理,以得到所述聚合结果。
8.如权利要求7所述的方法,其中,所述方法还包括:
响应于针对所述服务标识和/或所述多个目标信息的检索操作,根据所述聚类结果展示所述服务标识和/或所述多个目标信息对应的所述异常信息。
9.如权利要求8所述的方法,其中,所述根据所述聚类结果展示所述服务标识和/或所述多个目标信息对应的所述异常信息进一步包括:
根据所述聚类结果,以卡片的形式展示所述服务标识和/或所述多个目标信息对应的所述异常信息。
10.如权利要求1所述的方法,其中,所述获取所述应用程序的多个异常信息进一步包括:
基于目标函数在目标平台中获取所述应用程序的所述多个异常信息。
11.如权利要求1所述的方法,其中,所述应用程序的源代码包括由软件描述语言编码的代码,所述软件描述语言至少包括C++语言。
12.一种用于处理应用程序的异常信息的装置,包括:
获取模块,被配置为获取所述应用程序的多个异常信息,所述异常信息包括所述应用程序在运行异常时的堆栈信息;
聚合模块,被配置为对所述多个异常信息对应的多个所述堆栈信息分别进行哈希处理,以得到多个哈希值,并基于所述多个哈希值对所述多个异常信息进行聚合,以得到所述多个异常信息的聚合结果;
展示模块,被配置为基于所述聚合结果展示所述多个异常信息。
13.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述程序时实现如权利要求1至11任意一项所述的方法。
14.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,其中,所述计算机指令用于使计算机执行如权利要求1至11任意一项所述的方法。
15.一种计算机程序产品,其中,包括计算机程序指令,当所述计算机程序指令在计算机上运行时,使得计算机执行如权利要求1至11中任意一项所述的方法。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118152170A true CN118152170A (zh) | 2024-06-07 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10733079B2 (en) | Systems and methods for end-to-end testing of applications using dynamically simulated data | |
CN111522922B (zh) | 日志信息查询方法、装置、存储介质及计算机设备 | |
US10810074B2 (en) | Unified error monitoring, alerting, and debugging of distributed systems | |
US10135936B1 (en) | Systems and methods for web analytics testing and web development | |
US10540358B2 (en) | Telemetry data contextualized across datasets | |
KR20190075972A (ko) | 로그 파일들로부터 프로세스 흐름들을 식별하고 흐름을 시각화하기 위한 시스템들 및 방법들 | |
CN111209352B (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN112491602B (zh) | 行为数据的监控方法、装置、计算机设备及介质 | |
CN112307057A (zh) | 数据的处理方法及装置、电子设备、计算机存储介质 | |
US11036608B2 (en) | Identifying differences in resource usage across different versions of a software application | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN109815119B (zh) | 一种app链接渠道的测试方法及装置 | |
CN112148610A (zh) | 测试用例执行方法、装置、计算机设备和存储介质 | |
US10713070B2 (en) | Systems and methods for capturing and visualizing user interactions across devices | |
CN110647471A (zh) | 接口测试用例生成方法、电子装置及存储介质 | |
CN116644250B (zh) | 页面检测方法、装置、计算机设备和存储介质 | |
CN114691445A (zh) | 集群故障处理方法、装置、电子设备及可读存储介质 | |
CN111639016A (zh) | 大数据日志分析方法、装置及计算机存储介质 | |
CN115269331A (zh) | 面向微服务组的服务拓扑监控方法及相关设备 | |
CN118152170A (zh) | 用于处理应用程序的异常信息的方法及相关设备 | |
CN114780378A (zh) | 基于业务接口的系统稳定性检测溯源方法及相关设备 | |
KR102349495B1 (ko) | 가상 서버들로부터 대용량 로그 파일들을 프로세싱하는 컴퓨터 시스템 및 방법. | |
CN113781068A (zh) | 线上问题解决方法、装置、电子设备和存储介质 | |
CN113760696A (zh) | 一种程序问题定位方法、装置、电子设备和存储介质 | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |