CN117215964A - 一种业务系统的程序异常观测方法和装置 - Google Patents
一种业务系统的程序异常观测方法和装置 Download PDFInfo
- Publication number
- CN117215964A CN117215964A CN202311481879.1A CN202311481879A CN117215964A CN 117215964 A CN117215964 A CN 117215964A CN 202311481879 A CN202311481879 A CN 202311481879A CN 117215964 A CN117215964 A CN 117215964A
- Authority
- CN
- China
- Prior art keywords
- link
- abnormal
- log
- processed
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 58
- 230000002159 abnormal effect Effects 0.000 claims abstract description 248
- 238000012545 processing Methods 0.000 claims abstract description 75
- 238000009826 distribution Methods 0.000 claims abstract description 42
- 230000005856 abnormality Effects 0.000 claims abstract description 32
- 238000004458 analytical method Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 13
- 238000012216 screening Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 8
- 238000004891 communication Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 8
- 238000007781 pre-processing Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000000523 sample Substances 0.000 description 4
- 238000007619 statistical method Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请提供了一种业务系统的程序异常观测方法和装置,其中,该方法包括:获取观测时间段内业务系统的日志数据和链路数据;分别对日志数据、链路数据进行解析,得到日志数据的第一待处理字段、链路数据的第二待处理字段;采用与待处理字段的数据类型相匹配的处理规则,对第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情,对第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列;对待处理字段的处理结果进行展示。本申请通过链路码和跨度码实现跨服务的追踪,打通日志和链路的关系,快速定位系统异常原因,提高解决系统异常的时效性。
Description
技术领域
本申请涉及计算机软件技术领域,尤其是涉及一种业务系统的程序异常观测方法和装置。
背景技术
随着业务规模的不断增大,业务系统的复杂度越来越高,常采用分布式软件架构,将服务按照不同的维度进行拆分,一次请求可能横跨多个服务模块,依赖的中间件也随之增多。实际中,业务系统的任何一个节点出现异常,都可能导致业务出现波动。
为了维护业务系统的稳定性,需要对庞杂的业务系统进行监控,但是,传统的日志监控方式只能监控单个服务模块的健康状况,或者监控一次请求的成功失败,无法快速定位失败的根本原因,导致解决系统异常的时效性不高。
发明内容
有鉴于此,本申请实施例的目的在于提供一种业务系统的程序异常观测方法和装置,能够通过链路码和跨度码实现跨服务的追踪,打通日志和链路的关系,快速定位系统异常原因,提高解决系统异常的时效性。
第一方面,本申请实施例提供了一种业务系统的程序异常观测方法,所述方法包括:
获取观测时间段内业务系统的日志数据和链路数据;其中,所述日志数据携带有链路码和跨度码;
分别对所述日志数据、所述链路数据进行解析,得到所述日志数据的第一待处理字段、所述链路数据的第二待处理字段;其中,所述第一待处理字段包括链路码、跨度码、日志详情、应用名称、应用实例;所述第二待处理字段包括:链路码、跨度码、调用对象、调用对象类型、请求客户端、链路状态;
采用与待处理字段的数据类型相匹配的处理规则,对所述第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情,对所述第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列;
分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示。
在一种可能的实施方式中,所述第一待处理字段还包括时间、日志级别,所述第一待处理字段的处理结果还包括异常日志数、异常日志级别分布、异常日志数趋势、异常日志列表、异常日志上下文。
在一种可能的实施方式中,所述第二待处理字段的处理结果还包括异常链路数、异常链路数状态分布、异常链路数趋势、异常链路列表、异常链路详情。
在一种可能的实施方式中,采用预设颜色对异常链路层级进行标识;设有筛选框,从不同维度对待处理字段的处理结果进行筛选。
在一种可能的实施方式中,所述分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示,包括:
在不同的展示页面分别展示所述第一待处理字段、所述第二待处理字段的处理结果;和/或,在同一展示页面的不同展示区域内分别展示待处理字段的各个处理结果。
在一种可能的实施方式中,对所述第一待处理字段的处理结果进行展示,包括:
采用饼状图对所述异常日志级别分布进行展示;
采用二维曲线图对所述异常日志数趋势进行展示;
采用表格对所述异常日志列表进行展示,所述异常日志列表的表头包括时间、应用名称、应用实例、异常日志级别、异常日志详情、操作;其中,所述操作包括查看异常日志上下文、异常日志所属链路的链接。
在一种可能的实施方式中,对所述第二待处理字段的处理结果进行展示,包括:
采用饼状图对所述异常链路数状态分布、异常链路数调用对象类型分布进行展示;
采用二维曲线图对所述异常链路数趋势进行展示;
采用条状图对所述异常链路数调用对象序列、所述异常链路数请求客户端序列进行展示;
采用表格对所述异常链路列表进行展示,所述异常链路列表的表头包括时间、请求客户端、应用名称、应用实例、链路码、链路状态、调用对象、操作;其中,所述操作包括查看异常链路详情的链接。
第二方面,本申请实施例提供了一种业务系统的程序异常观测装置,所述装置包括:
获取模块,用于获取观测时间段内业务系统的日志数据和链路数据;其中,所述日志数据携带有链路码和跨度码;
解析模块,用于分别对所述日志数据、所述链路数据进行解析,得到所述日志数据的第一待处理字段、所述链路数据的第二待处理字段;其中,所述第一待处理字段包括链路码、跨度码、日志详情、应用名称、应用实例;所述第二待处理字段包括:链路码、跨度码、调用对象、调用对象类型、请求客户端、链路状态;
处理模块,用于采用与待处理字段的数据类型相匹配的处理规则,对所述第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情,对所述第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列;
展示模块,用于分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行第一方面任一项所述的业务系统的程序异常观测方法的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行第一方面任一项所述的业务系统的程序异常观测方法的步骤。
本申请实施例提供的一种业务系统的程序异常观测方法和装置,能够通过链路码和跨度码实现跨服务的追踪,打通日志和链路的关系,快速定位系统异常原因,提高解决系统异常的时效性。
为使本申请的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例提供的一种业务系统的程序异常观测方法的流程图;
图2示出了本申请实施例提供的一种异常日志分析效果图;
图3示出了本申请实施例提供的一种异常链路分析效果图;
图4示出了本申请实施例提供的另一种业务系统的程序异常观测方法的流程图;
图5示出了本申请实施例提供的一种业务系统的程序异常观测装置的结构示意图
图6示出了本申请实施例提供的一种电子设备的示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着业务规模的不断增大,业务系统的复杂度越来越高,常采用分布式软件架构,将服务按照不同的维度进行拆分,一次请求可能横跨多个服务模块,依赖的中间件也随之增多。实际中,业务系统的任何一个节点出现异常,都可能导致业务出现波动。
为了维护业务系统的稳定性,需要对庞杂的业务系统进行监控,但是,传统的日志监控方式只能监控单个服务模块的健康状况,或者监控一次请求的成功失败,无法快速定位失败的根本原因,导致解决系统异常的时效性不高。
基于上述问题,本申请实施例提供了一种业务系统的程序异常观测方法和装置,能够通过链路码和跨度码实现跨服务的追踪,打通日志和链路的关系,快速定位系统异常原因,提高解决系统异常的时效性。
针对以上方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。
下面将结合本申请中附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
为便于对本实施例进行理解,首先对本申请实施例所公开的一种业务系统的程序异常观测方法进行详细介绍。
参见图1所示,图1为本申请实施例提供的一种业务系统的程序异常观测方法的流程图,该方法包括以下步骤:
S101、获取观测时间段内业务系统的日志数据和链路数据;其中,所述日志数据携带有链路码和跨度码。
本申请实施例可以应用于采用分布式软件结构的业务系统,多服务模块共同实现一次服务请求的场景中。
本申请实施例中,在获取待处理的日志数据和链路数据之前,将探针集成到应用程序中,探针自动将链路追踪标识注入日志数据,并输出链路数据,其中,链路追踪标识包括链路码(trace ID)和跨度码(span ID)。因此,获取的日志数据均携带有链路码和跨度码。
具体的,用户的每次服务请求,都会形成完整的调用链路,随之生成本次服务请求的链路数据。一次服务请求需要多个服务参与,每个服务形成一个跨度(span),跨度是服务请求的基本工作单元,每一次链路调用(RPC、Rest、数据库调用)都会创建一个跨度,一个完整的调用链路是包含多个跨度的树状结构。
关于链路追踪标识,每个服务请求的调用链路对应有唯一标识码(trace ID),在服务请求的整个调用链路中,请求会一直携带链路码往下游服务传递,每个服务内部也会生成跨度码,通过跨度码形成服务的内部调用视图,跨度码随链路码一并传递给下游服务,作为下游服务的父跨度码(parent ID),这样,一次服务请求的每条链路就可以通过链路码、父跨度码及跨度码串联起来。
观测时间段的时间间隔可以根据用户的实际需求进行设置,用户向业务系统发送服务请求,并从业务系统获取服务请求的响应结果,在观测时间段内,可以只获取业务系统的一次服务请求的相关数据,也可以获取业务系统的多次服务请求的相关数据。
对观测时间段内业务系统的全部服务组件的日志数据、链路数据进行采集,获取待处理的日志数据和链路数据。
S102、分别对所述日志数据、所述链路数据进行解析,得到所述日志数据的第一待处理字段、所述链路数据的第二待处理字段;其中,所述第一待处理字段包括链路码、跨度码、日志详情、应用名称、应用实例;所述第二待处理字段包括:链路码、跨度码、调用对象、调用对象类型、请求客户端、链路状态。
本申请实施例中,业务系统的数据类型包括日志数据、链路数据,针对不同的数据类型,采用与数据类型相匹配的预处理方式,换句话说,分别采用不同的方式对日志数据、链路数据进行预处理。
具体的,对日志数据进行解析,得到日志数据的第一待处理字段,包括链路码、跨度码、日志详情、应用名称、应用实例。其中,应用名称是服务组件的名称,应用实例是每个服务组件的具体运行,举例来讲,tomcat中间件是一个应用名称,一个tomcat服务器可以对应有多个端口,就意味着它可以有多个服务实例。
对链路数据进行解析,得到链路数据的第二待处理字段,包括链路码、跨度码、调用对象、调用对象类型、请求客户端、链路状态。其中,调用对象是调用的外部微服务实例,比如,其他微服务实例、数据库实例;调用对象类型至少包括数据库、缓存、消息队列、API;请求客户端是发送服务请求的客户端;链路状态是每条链路的工作状态,包括正常、异常(含ERROR、未知等,以便对异常进行区分)。
在得到日志数据的第一待处理字段、链路数据的第二待处理字段后,将数据的预处理结果写入与数据类型相匹配的数据库中,具体的,将第一待处理字段写入日志数据对应的数据库中,将第二待处理字段写入链路数据对应的数据库中。
S103、采用与待处理字段的数据类型相匹配的处理规则,对所述第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情,对所述第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列。
本申请实施例中,基于日志数据的第一待处理字段和链路数据的第二待处理字段,对业务系统进行异常分析,针对不同的数据类型采用不同的异常分析方法,即采用与待处理字段的数据类型相匹配的处理规则,对待处理字段进行处理,得到待处理字段的处理结果。具体的:
对第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情。日志包括正常日志和异常日志,从日志数据中筛选出异常日志,并根据异常日志携带的链路码和跨度码,确定异常日志所属链路,从日志数据中获取异常日志详情,即异常日志的日志内容。
对第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列。链路包括正常链路和异常链路,从链路数据中筛选出异常链路。通过如下方式确定异常链路数调用对象类型分布:统计异常链路中每种调用对象类型对应的异常链路的个数,通过比对每种调用对象类型对应的异常链路的个数,可以知道业务系统出现异常时调用对象类型的分布情况。通过如下方式确定异常链路数调用对象序列:统计异常链路中每个调用对象对应的异常链路的个数,对每个调用对象对应的异常链路的个数进行排序,比如,异常链路数调用对象Top5表示异常链路中出现次数排在前五名的调用对象。通过如下方式确定异常链路数请求客户端序列:统计异常链路中每个请求客户端对应的异常链路的个数,对每个请求客户端对应的异常链路的个数进行排序,比如,异常链路数请求客户端Top5表示异常链路中出现次数排在前五名的请求客户端。
通过异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列的确定,能够缩小业务系统的排障范围,快速从大量异常链路中定位出问题所在。
S104、分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示。
本申请实施例中,对第一待处理字段的处理结果进行展示,即对异常日志、异常日志所属链路、异常日志详情进行展示;对第二待处理字段的处理结果进行展示,即对异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列进行展示。
本申请实施例提供的业务系统的程序异常观测方法,一是能够通过链路码和跨度码实现跨服务的追踪,打通日志和链路的关系,在异常链路拓扑图(即异常链路树状图)上提供辅助信息,比如原始日志、堆栈信息等,基于辅助信息精准定位异常根源;二是从链路数据中解析出调用对象、调用对象类型、请求客户端,并在异常链路分析时从调用对象、调用对象类型、请求客户端这些维度进行聚合统计分析,从大量异常链路中分析出导致业务系统异常的具体原因。采用以上处理方式能够快速定位业务系统出现异常的原因,提高解决业务系统异常的时效性。
进一步的,本申请实施例提供的业务系统的程序异常观测方法中,所述第一待处理字段还包括时间、日志级别,所述第一待处理字段的处理结果还包括异常日志数、异常日志级别分布、异常日志数趋势、异常日志列表、异常日志上下文。
本申请实施例中,时间是日志发生的时间,日志级别包括FATAL,ERROR,WARN,INFO,DEBUG,TRACE。异常日志数是观测时间段内业务系统的异常日志的总数。统计属于每个日志级别的异常日志的个数,得到异常日志级别分布。统计在等时间间隔内发生的异常日志的个数,得到异常日志数趋势。根据异常日志发生的时间,以及预设的采集时间间隔,确定异常日志上下文,比如,异常日志发生在15:15,根据15:00~15:30时间段内的日志数据,确定异常日志上下文。
通过异常日志数、异常日志级别分布能够了解观测时间段内异常日志发生的总数以及不同异常级别的异常日志的分布情况。通过异常日志数趋势了解异常发生的时间分布。通过异常日志列表可以查看异常日志的概览情况。通过异常日志上下文可以查看异常日志发生位置,并对异常日志发生前后一段时间内的日志情况进行查看。通过异常日志所属链路可以了解异常发生的业务场景和前后调用逻辑。
进一步的,本申请实施例提供的业务系统的程序异常观测方法中,所述第二待处理字段的处理结果还包括异常链路数、异常链路数状态分布、异常链路数趋势、异常链路列表、异常链路详情。
本申请实施例中,统计观测时间段内异常链路的总数,得到异常链路数。异常链路对应有多种状态,统计每种状态的异常链路的个数,得到异常链路数状态分布。统计在等时间间隔内出现的异常链路的个数,得到异常链路数趋势。异常链路详情能够下钻到整条异常链路的各个节点上的异常堆栈和异常日志详情,从而快速实现根因定位。
具体的,对根因定位过程进行说明:当针对一个异常链路进行分析时,可以在异常链路列表中找到该异常链路,异常链路列表中包括异常链路详情的链接,点击“查看链路详情”,对异常链路详情进行查询,可以追踪所有的调用关系链路、执行时间、执行过程,以及每个span中所有的日志记录和链路关联关系,并突出展示哪个层级存在问题,可选的,用红色标识出现问题的层级。
通过异常链路数能够了解当前业务系统异常的整体概况,通过异常链路数状态分布能够了解异常严重程度,通过异常链路数趋势能够了解异常数量变化趋势,便于评估问题严重性并追溯异常发生时间。
进一步的,本申请实施例提供的业务系统的程序异常观测方法中,采用预设颜色对异常链路层级进行标识;设有筛选框,从不同维度对待处理字段的处理结果进行筛选。
本申请实施中,在查看异常链路详情时,采用预设颜色对异常链路拓扑图中异常的链路层级进行标识,以直观地对异常链路层级进行展示。通过筛选框对异常日志、异常链路的相关数据进行过滤,筛选出特定对象,比如,异常链路数调用对象Top5、异常链路数请求客户端Top5,进而缩小异常排查的范围,快速实现根因定位。
进一步的,本申请实施例提供的业务系统的程序异常观测方法中,所述分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示,包括:
在不同的展示页面分别展示所述第一待处理字段、所述第二待处理字段的处理结果;和/或,在同一展示页面的不同展示区域内分别展示待处理字段的各个处理结果。
本申请实施例中,分别对日志数据、链路数据进行预处理和异常分析,在展示分析结果时,也是采用分别展示的方式,具体的,在不同的展示页面上对第一待处理字段、第二待处理字段的处理结果进行展示。待处理字段的处理结果有多种内容,因此,需要在展示页面的不同展示区域分别对处理结果进行展示。
进一步的,本申请实施例提供的业务系统的程序异常观测方法中,对所述第一待处理字段的处理结果进行展示,包括:
采用饼状图对所述异常日志级别分布进行展示;
采用二维曲线图对所述异常日志数趋势进行展示;
采用表格对所述异常日志列表进行展示,所述异常日志列表的表头包括时间、应用名称、应用实例、异常日志级别、异常日志详情、操作;其中,所述操作包括查看异常日志上下文、异常日志所属链路的链接。
参见图2所示,图2为本申请实施例提供的一种异常日志分析效果图,在图2中,应用名、实例名、日志级别是预设的筛选框,在应用名的右侧框中可以输入任一应用名称,在实例名的右侧框中可以输入任一应用实例,在日志级别的右侧框中可以输入任意一种日志级别,从而对输入的信息进行筛选。通过异常日志级别分布的饼状图,可以了解异常日志级别共出现两种,分别是Error、Fatal,且Error占比75%左右,Fatal占比25%左右。通过异常日志数趋势可以了解在观测时间段的中间段系统异常的占比较高。异常日志列表的表头包括时间、应用(应用名称)、实例(应用实例)、日志级别(异常日志级别)、日志内容(异常日志详情)、操作,操作对应有查看上下文(异常日志上下文)、查看链路(异常日志所属链路)两个链接。
进一步的,本申请实施例提供的业务系统的程序异常观测方法中,对所述第二待处理字段的处理结果进行展示,包括:
采用饼状图对所述异常链路数状态分布、异常链路数调用对象类型分布进行展示;
采用二维曲线图对所述异常链路数趋势进行展示;
采用条状图对所述异常链路数调用对象序列、所述异常链路数请求客户端序列进行展示;
采用表格对所述异常链路列表进行展示,所述异常链路列表的表头包括时间、请求客户端、应用名称、应用实例、链路码、链路状态、调用对象、操作;其中,所述操作包括异常链路详情的链接。
参见图3所示,图3为本申请实施例提供的一种异常链路分析效果图,在图3中,应用名、实例名、请求客户端、调用对象、请求接口、链路ID是预设的筛选框,实现多维度信息的搜索和过滤。操作对应有查看链路详情(异常链路详情)的链接。表中其他内容可参照对图2的说明,这里不再赘述。
在一种可能的实施方式中,参见图4所示,图4为本申请实施例提供的另一种业务系统的程序异常观测方法的流程图,业务系统的程序异常观测流程包括以下步骤:
步骤1、在应用软件中打入探针,探针会在日志数据中打入链路标识。链路标识即为链路码、跨度码。
步骤2、采集链路和日志数据。
步骤3、针对数据类型进行数据预处理,即针对不同数据类型采用不同的数据预处理方式。
步骤3.1、链路数据处理:根据链路中操作对象不同识别出不同特征码,比如Mysql、Redis、MongoDB等。对于链路数据,除链路基础字段还需要额外解析出调用对象(调用的外部微服务实例,如其他微服务实例、数据库实例等)和调用对象类型(如数据库、缓存、消息队列、API等),这里,特征码即为日志数据的字段。
步骤3.2、日志数据处理:时间、日志级别、链路ID、跨度ID、日志内容等日志字段提取。除此之外,还可以提取出应用名称、应用实例等字段。
步骤4、数据预处理完成后,根据数据类型不同,写入对应的数据库。包括:步骤4.1、写入链路数据库;步骤4.2、写入日志数据库。
步骤5、基于日志和链路数据对应用进行异常分析。针对不同的数据类型采用不同的异常分析方法:
步骤5.1、异常链路分析:主要对当前所选时间范围内异常链路进行统计分析。包含异常链路数、异常链路状态分布、异常链路数趋势、异常链路调用对象类型分布、异常链路请求对象Top5、异常链路请求客户端Top5、异常链路列表、异常链路详情分析。
步骤5.2、日常日志分析:主要对当前所选时间范围内的异常日志进行统计分析。包含异常日志数统计、异常日志级别分布、异常日志数趋势、异常日志列表、异常日志详情、异常日志关联链路分析。
基于同一发明构思,本申请实施例中还提供了与业务系统的程序异常观测方法对应的业务系统的程序异常观测装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述业务系统的程序异常观测方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
参见图5所示,图5为本申请实施例提供的一种业务系统的程序异常观测装置的结构示意图,该装置包括:
获取模块501,用于获取观测时间段内业务系统的日志数据和链路数据;其中,所述日志数据携带有链路码和跨度码;
解析模块502,用于分别对所述日志数据、所述链路数据进行解析,得到所述日志数据的第一待处理字段、所述链路数据的第二待处理字段;其中,所述第一待处理字段包括链路码、跨度码、日志详情、应用名称、应用实例;所述第二待处理字段包括:链路码、跨度码、调用对象、调用对象类型、请求客户端、链路状态;
处理模块503,用于采用与待处理字段的数据类型相匹配的处理规则,对所述第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情,对所述第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列;
展示模块504,用于分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示。
在一种可能的实施方式中,所述第一待处理字段还包括时间、日志级别,所述第一待处理字段的处理结果还包括异常日志数、异常日志级别分布、异常日志数趋势、异常日志列表、异常日志上下文。
在一种可能的实施方式中,所述第二待处理字段的处理结果还包括异常链路数、异常链路数状态分布、异常链路数趋势、异常链路列表、异常链路详情。
在一种可能的实施方式中,采用预设颜色对异常链路层级进行标识;设有筛选框,从不同维度对待处理字段的处理结果进行筛选。
在一种可能的实施方式中,所述展示模块504,在分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示时,包括:
在不同的展示页面分别展示所述第一待处理字段、所述第二待处理字段的处理结果;和/或,在同一展示页面的不同展示区域内分别展示待处理字段的各个处理结果。
在一种可能的实施方式中,所述展示模块504,在对所述第一待处理字段的处理结果进行展示时,包括:
采用饼状图对所述异常日志级别分布进行展示;
采用二维曲线图对所述异常日志数趋势进行展示;
采用表格对所述异常日志列表进行展示,所述异常日志列表的表头包括时间、应用名称、应用实例、异常日志级别、异常日志详情、操作;其中,所述操作包括查看异常日志上下文、异常日志所属链路的链接。
在一种可能的实施方式中,所述展示模块504,在对所述第二待处理字段的处理结果进行展示时,包括:
采用饼状图对所述异常链路数状态分布、异常链路数调用对象类型分布进行展示;
采用二维曲线图对所述异常链路数趋势进行展示;
采用条状图对所述异常链路数调用对象序列、所述异常链路数请求客户端序列进行展示;
采用表格对所述异常链路列表进行展示,所述异常链路列表的表头包括时间、请求客户端、应用名称、应用实例、链路码、链路状态、调用对象、操作;其中,所述操作包括查看异常链路详情的链接。
本申请实施例提供的业务系统的程序异常观测装置,一是能够通过链路码和跨度码实现跨服务的追踪,打通日志和链路的关系,在异常链路拓扑图(即异常链路树状图)上提供辅助信息,比如原始日志、堆栈信息等,基于辅助信息精准定位异常根源;二是从链路数据中解析出调用对象、调用对象类型、请求客户端,并在异常链路分析时从调用对象、调用对象类型、请求客户端这些维度进行聚合统计分析,从大量异常链路中分析出导致业务系统异常的具体原因。采用以上处理方式能够快速定位业务系统出现异常的原因,提高解决业务系统异常的时效性。
参见图6所示,图6为本申请实施例提供的一种电子设备的示意图,该电子设备600包括:处理器601、存储器602和总线603,所述存储器602存储有所述处理器601可执行的机器可读指令,当电子设备运行时,所述处理器601与所述存储器602之间通过总线603通信,所述处理器601执行所述机器可读指令,以执行如上述业务系统的程序异常观测方法的步骤。
具体地,上述存储器602和处理器601能够为通用的存储器和处理器,这里不做具体限定,当处理器601运行存储器602存储的计算机程序时,能够执行上述业务系统的程序异常观测方法。
对应于上述业务系统的程序异常观测方法,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述业务系统的程序异常观测方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种业务系统的程序异常观测方法,其特征在于,所述方法包括:
获取观测时间段内业务系统的日志数据和链路数据;其中,所述日志数据携带有链路码和跨度码;
分别对所述日志数据、所述链路数据进行解析,得到所述日志数据的第一待处理字段、所述链路数据的第二待处理字段;其中,所述第一待处理字段包括链路码、跨度码、日志详情、应用名称、应用实例;所述第二待处理字段包括:链路码、跨度码、调用对象、调用对象类型、请求客户端、链路状态;
采用与待处理字段的数据类型相匹配的处理规则,对所述第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情,对所述第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列;
分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示。
2.根据权利要求1所述的业务系统的程序异常观测方法,其特征在于,所述第一待处理字段还包括时间、日志级别,所述第一待处理字段的处理结果还包括异常日志数、异常日志级别分布、异常日志数趋势、异常日志列表、异常日志上下文。
3.根据权利要求1所述的业务系统的程序异常观测方法,其特征在于,所述第二待处理字段的处理结果还包括异常链路数、异常链路数状态分布、异常链路数趋势、异常链路列表、异常链路详情。
4.根据权利要求3所述的业务系统的程序异常观测方法,其特征在于,采用预设颜色对异常链路层级进行标识;设有筛选框,从不同维度对待处理字段的处理结果进行筛选。
5.根据权利要求1所述的业务系统的程序异常观测方法,其特征在于,所述分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示,包括:
在不同的展示页面分别展示所述第一待处理字段、所述第二待处理字段的处理结果;和/或,在同一展示页面的不同展示区域内分别展示待处理字段的各个处理结果。
6.根据权利要求5所述的业务系统的程序异常观测方法,其特征在于,对所述第一待处理字段的处理结果进行展示,包括:
采用饼状图对所述异常日志级别分布进行展示;
采用二维曲线图对所述异常日志数趋势进行展示;
采用表格对所述异常日志列表进行展示,所述异常日志列表的表头包括时间、应用名称、应用实例、异常日志级别、异常日志详情、操作;其中,所述操作包括查看异常日志上下文、异常日志所属链路的链接。
7.根据权利要求5所述的业务系统的程序异常观测方法,其特征在于,对所述第二待处理字段的处理结果进行展示,包括:
采用饼状图对所述异常链路数状态分布、异常链路数调用对象类型分布进行展示;
采用二维曲线图对所述异常链路数趋势进行展示;
采用条状图对所述异常链路数调用对象序列、所述异常链路数请求客户端序列进行展示;
采用表格对所述异常链路列表进行展示,所述异常链路列表的表头包括时间、请求客户端、应用名称、应用实例、链路码、链路状态、调用对象、操作;其中,所述操作包括查看异常链路详情的链接。
8.一种业务系统的程序异常观测装置,其特征在于,所述装置包括:
获取模块,用于获取观测时间段内业务系统的日志数据和链路数据;其中,所述日志数据携带有链路码和跨度码;
解析模块,用于分别对所述日志数据、所述链路数据进行解析,得到所述日志数据的第一待处理字段、所述链路数据的第二待处理字段;其中,所述第一待处理字段包括链路码、跨度码、日志详情、应用名称、应用实例;所述第二待处理字段包括:链路码、跨度码、调用对象、调用对象类型、请求客户端、链路状态;
处理模块,用于采用与待处理字段的数据类型相匹配的处理规则,对所述第一待处理字段进行处理,得到异常日志、异常日志所属链路、异常日志详情,对所述第二待处理字段进行处理,得到异常链路、异常链路数调用对象类型分布、异常链路数调用对象序列、异常链路数请求客户端序列;
展示模块,用于分别对所述第一待处理字段、所述第二待处理字段的处理结果进行展示。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述处理器执行所述机器可读指令,以执行如权利要求1至7任一项所述的业务系统的程序异常观测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一项所述的业务系统的程序异常观测方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311481879.1A CN117215964B (zh) | 2023-11-09 | 2023-11-09 | 一种业务系统的程序异常观测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311481879.1A CN117215964B (zh) | 2023-11-09 | 2023-11-09 | 一种业务系统的程序异常观测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117215964A true CN117215964A (zh) | 2023-12-12 |
CN117215964B CN117215964B (zh) | 2024-02-09 |
Family
ID=89039318
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311481879.1A Active CN117215964B (zh) | 2023-11-09 | 2023-11-09 | 一种业务系统的程序异常观测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117215964B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099740A (zh) * | 2014-05-15 | 2015-11-25 | 中国移动通信集团浙江有限公司 | 一种日志管理系统及日志采集方法 |
CN110362544A (zh) * | 2019-05-27 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 日志处理系统、日志处理方法、终端及存储介质 |
WO2020233015A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安普惠企业管理有限公司 | 一种链路跟踪方法及装置 |
US20200396231A1 (en) * | 2019-06-13 | 2020-12-17 | More Cowbell Unlimited, Inc | Methods and systems for inferring behavior and vulnerabilities from process models |
CN113746703A (zh) * | 2021-09-03 | 2021-12-03 | 上海众源网络有限公司 | 一种异常链路监控方法、系统和装置 |
CN116192621A (zh) * | 2022-12-27 | 2023-05-30 | 上海轻维软件有限公司 | 基于Opentracing链路追踪业务调用链的方法 |
-
2023
- 2023-11-09 CN CN202311481879.1A patent/CN117215964B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105099740A (zh) * | 2014-05-15 | 2015-11-25 | 中国移动通信集团浙江有限公司 | 一种日志管理系统及日志采集方法 |
WO2020233015A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安普惠企业管理有限公司 | 一种链路跟踪方法及装置 |
CN110362544A (zh) * | 2019-05-27 | 2019-10-22 | 中国平安人寿保险股份有限公司 | 日志处理系统、日志处理方法、终端及存储介质 |
US20200396231A1 (en) * | 2019-06-13 | 2020-12-17 | More Cowbell Unlimited, Inc | Methods and systems for inferring behavior and vulnerabilities from process models |
CN113746703A (zh) * | 2021-09-03 | 2021-12-03 | 上海众源网络有限公司 | 一种异常链路监控方法、系统和装置 |
CN116192621A (zh) * | 2022-12-27 | 2023-05-30 | 上海轻维软件有限公司 | 基于Opentracing链路追踪业务调用链的方法 |
Non-Patent Citations (1)
Title |
---|
ROIBIN: "可预测性—事件日志、链路追踪、聚合度量", pages 1 - 5, Retrieved from the Internet <URL:https://www.cnblogs.com/raybin-7/p/16388981.html> * |
Also Published As
Publication number | Publication date |
---|---|
CN117215964B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190108112A1 (en) | System and method for generating a log analysis report from a set of data sources | |
JP6706321B2 (ja) | サービス呼び出し情報処理の方法及びデバイス | |
US11010223B2 (en) | Method and system of automatic event and error correlation from log data | |
US20220277042A1 (en) | Related content identification for different types of machine-generated data | |
US11693761B1 (en) | Rendering a service graph to illustrate page provider dependencies | |
US9547547B2 (en) | Systems and/or methods for handling erroneous events in complex event processing (CEP) applications | |
US11388211B1 (en) | Filter generation for real-time data stream | |
US20040122942A1 (en) | Method, system, and data structure for monitoring transaction performance in a managed computer network environment | |
CN112801666A (zh) | 基于企业服务总线的监控管理方法、系统、介质和设备 | |
US20080281808A1 (en) | Recommendation of related electronic assets based on user search behavior | |
US20180046956A1 (en) | Warning About Steps That Lead to an Unsuccessful Execution of a Business Process | |
CN114844797A (zh) | 调用链日志与监控日志关联方法及微服务异常检测方法 | |
US10733038B2 (en) | Abnormal module detection using aggregated time interval analysis | |
US20230156093A1 (en) | Url normalization for rendering a service graph | |
EP3864516A1 (en) | Veto-based model for measuring product health | |
WO2021126688A1 (en) | Automated chromatogram analysis for blood test evaluation | |
CN108665237B (zh) | 一种基于业务系统建立自动巡检模型和定位异常的方法 | |
US20060161387A1 (en) | Framework for collecting, storing, and analyzing system metrics | |
Capitán-Agudo et al. | Analyzing how process mining reports answer time performance questions | |
CN117215964B (zh) | 一种业务系统的程序异常观测方法和装置 | |
CN117194142A (zh) | 一种基于链路追踪的集成应用性能诊断系统及方法 | |
WO2022086610A1 (en) | End-to-end visibility of a user session | |
US11860760B1 (en) | Aggregating metrics for workflows associated with a real user session | |
US11693850B1 (en) | Rendering a service graph to illustrate page provider dependencies at an aggregate level | |
CN113572628B (zh) | 数据关联方法、装置、计算设备及计算机存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |