CN115904872A - 一种交易链路监控方法、***及存储介质 - Google Patents
一种交易链路监控方法、***及存储介质 Download PDFInfo
- Publication number
- CN115904872A CN115904872A CN202211530506.4A CN202211530506A CN115904872A CN 115904872 A CN115904872 A CN 115904872A CN 202211530506 A CN202211530506 A CN 202211530506A CN 115904872 A CN115904872 A CN 115904872A
- Authority
- CN
- China
- Prior art keywords
- transaction
- link
- data
- sub
- transaction link
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 82
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 62
- 238000010586 diagram Methods 0.000 claims abstract description 57
- 230000004044 response Effects 0.000 claims description 19
- 230000009191 jumping Effects 0.000 claims description 9
- 238000013500 data storage Methods 0.000 claims description 8
- 230000002159 abnormal effect Effects 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 22
- 230000005856 abnormality Effects 0.000 description 11
- 230000008859 change Effects 0.000 description 9
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009933 burial Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000008092 positive effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种交易链路监控方法、***及存储介质,包括:预设特定文本内容作为埋点输出到日志文件中,形成埋点专用日志文件;在各业务***节点运行实例上,读取埋点专用日志文件,并对其内容进行逐行判断,判断当前行内容是否含有日志埋点标记;若否,返回上一步;若是,提取日志埋点标记后续的内容,作为采集数据传输至数据库,并对其进行处理后将处理结果保存至采集数据明细表;根据表中的数据自动生成交易链路图,结合附属信息实现交易链路呈图、业务量统计、监控明细查询、规则警报等处理,用于业务的交易链路监控。本发明能够提高日志读取效率及准确率,仅依据流水号自动生成交易链路图,提高异常定位、故障处置效率。
Description
技术领域
本发明涉及计算机信息技术处理领域,具体为一种交易链路监控方法、***及存储介质。
背景技术
一笔业务从进入始端***开始处理,到最后一个***结束处理,流转的***及节点通常较多,且各***节点之间的调用关系错综复杂。为了及时了解和查看各***(运行实例)处理每笔业务交易情况,比如处理耗时、是否存在异常等等,通常会建立全局的监控***并采集各***(运行实例)数据作为监测数据源,常见的采集传输监测数据源方式有:
接口报文传输方式。在被监测***内开发与监控***之间专用通信接口,以报文为载体传输检测数据;
日志埋点方式。无需开发专用通信接口,被监测***仅需要按约定内容格式输出到日志中即可,通过其他软件从日志中搜索并采集相关内容并保存至监控***中。
由于日志埋点方式具有对各***(运行实例)侵入性小,不需要被监测***进行过多开发改造工作,也不会对被监测***运行造成干扰等优势,所以更为常用。
监控***对采集到的监测数据源进行解析、存储、整合等加工处理,并最终以图表界面等多种方式呈现给用户(如运维人员)。
但目前仍存在以下技术问题:
(1)埋点预设特定文本内容与被监测***(运行实例)业务处理过程产生的正常日志内容保存在统一的日志文件中。而业务处理产生的日志内容可能非常多,如一笔业务在某个运行实例节点处理过程中产生的日志内容可能会上千行,需要从中采集埋点预设的内容时,命中率较低,且耗费时较长,同时会消耗服务器较多CPU和IO资源;
(2)监控***在生成交易链路图时,除流水号外通常还需另行记录调用前后依赖关系等信息才能生成交易链路图。无法通过合理的流水号设计,实现仅依据流水号自动生成交易链路图(图中体现纵横层级和调用次数)。也难以仅凭交易链路图中的流水号快速直观地判断异常发生的所在***,导致监控过程中异常定位、故障处置的效率较低。
因此,我们需要开发出一种交易链路监控方法与***,能够提高日志读取效率及准确率,能够仅依据流水号自动生成交易链路图,通过交易链路图中的流水号快速直观地判断异常发生的所在***,提高监控过程中异常定位、故障处置的效率。
发明内容
本发明的目的在于提供一种交易链路监控方法、***及存储介质,以解决上述背景技术中提到的现有的日志读取效率及准确率低、无法仅依据流水号自动生成交易链路图,无法通过交易链路图中的流水号快速直观地判断异常发生的所在***,监控过程中异常定位、故障处置的效率较低等问题。
为实现上述目的,本发明采用以下技术方案:
根据本发明的一个方面,提供一种交易链路监控方法,所述方法包括:
预设特定文本内容作为埋点输出到日志文件中,形成埋点专用日志文件;
在各业务***节点运行实例上,读取所述埋点专用日志文件;
对所述埋点专用日志文件内容进行逐行判断,判断当前行内容是否含有日志埋点标记;
若否,则返回上一步,判断下一行所述埋点专用日志文件内容;
若是,则提取所述日志埋点标记后续的内容作为采集数据;
将所述采集数据传输至数据库,并对所述采集数据进行处理后将处理结果保存至采集数据明细表;
根据所述采集数据明细表中的数据进行包括但不限于交易链路呈图、业务量统计、监控明细查询、规则警报的处理,用于业务的交易链路监控。
根据本发明的另一个方面,提供一种交易链路监控***,包括:
日志埋点模块:用于预设特定文本内容作为埋点输出到日志文件中,形成埋点专用日志文件;
日志数据采集模块:用于在各业务***节点运行实例上,读取所述埋点专用日志文件;对所述埋点专用日志文件内容进行逐行判断,判断当前行内容是否含有日志埋点标记;提取所述日志埋点标记后续的内容作为采集数据;
数据处理模块:用于对所述采集数据进行处理后将处理结果保存至采集数据明细表;
数据存储模块:用于存储所述采集数据、采集数据明细表及其他相关数据;
链路监控模块:用于根据所述采集数据明细表中的数据进行包括但不限于交易链路呈图、业务量统计、监控明细查询、规则警报的处理,完成交易的链路监控。
优选地,还包括界面展示模块:用于实时展示包括但不限于采集数据明细表、交易链路图、业务量统计结果、监控明细、规则警报的结果,并提供界面供工作人员访问。
基于前述方案,上述预设特定文本内容包括但不限于***标识、运行实例号、日期、时间、业务功能码、全局业务号、子交易号、业务处理耗时、响应码、响应信息及其他信息。
通过预设特定文本内并输出埋点专用日志,能够有效地提升采集数据的命中率,提高提取数据的效率,且避免了服务器CPU和IO资源无谓消耗。
基于前述方案,上述并对所述采集数据进行处理后将处理结果保存至采集数据明细表包括:
对所述采集数据内容进行解析、按字段分割;
提取出所述预设特定文本的各项内容,填充入所述采集数据明细表。
基于前述方案,上述全局业务号在交易链路各***节点上具有唯一性,包括时间戳、始端***标识、始端***运行实例编号以及序列号。
基于前述方案,上述子交易号包括调用方***标识、调用方***运行实例编号及交易链路纵横点编号。
基于前述方案,上述监控交易链路呈图的方法,包括:
S701:从所述采集数据明细表中读取明细数据,根据全局业务号将所述明细数据划分成不同的链路明细数据组;
S702:从所述链路明细数据组中查找子交易号,找出交易链路纵横点编号最小的子交易号,将其对应的明细数据作为第一笔明细数据,其对应的***节点作为始端节点;
S703:以始端节点作为CurrentNode当前节点;
S704:以CurrentNode当前节点为基准,从所述链路明细数据组中剩余的所述子交易号,找出与CurrentNode当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的子交易号,呈现在交易链路图中的线条上;
S705:若未找到所述子交易号,则跳转至S710;
S706:若找到所述子交易号,则跳转至S707;
S707:将所述线条上的子交易号中的交易链路纵横点编号“非0值”位的个数记为n,从剩余链路明细数据组中,找出交易链路纵横点编号“非0值”位的个数为n+1,且其从左至右前n位的值与所述线条上的交易链路纵横点编号中末位的“非0值”的值相等的子交易号,该子交易号对应的业务***节点作为新节点;
S708:若找到所述子交易号,则将所述子交易号绘制于交易链路图中,并将所述新节点作为CurrentNode当前节点;
S709:循环S704-S709,直至无法找到新节点,停止循环,跳转至S710;
S710:若未找到所述子交易号,则CurrentNode当前节点后退,以退回的节点作为CurrentNode当前节点;
S711:循环S704-S711;
S712:若CurrentNode当前节点后退失败,即CurrentNode当前节点已经为始端节点,一笔业务的交易链路图生成结束。
优选地,先生成链路明细数据表,根据链路明细数据表自动生成交易链路图,交易链路图记录了调用链路关系,通过交易链路图可直观、高效地获取某项业务的发生时间、所属***、所属运行实例节点及发生调用的层级、次数等有效信息,从而提高链路监控、异常排查的效率和准确率。
基于前述方案,上述交易链路监控方法,还包括:实时展示包括但不限于采集数据明细表、交易链路图、业务量统计结果、监控明细、规则警报的结果,并提供界面供工作人员访问。
本发明实施例还提供了一种计算机存储介质,所述计算机存储介质存储有计算机可执行代码;所述计算机可执行代码被执行后,能够实现前述一个或多个技术方案提供的交易链路监控方法。
由上述技术方案可知,本发明与现有技术相比至少具备以下优点和积极效果:
(1)本发明通过埋点预设特定文本内容,并将预设特定文本内容以埋点专用日志的形式单独输出,大大提高了从日志中提取有效信息的效率及命中率,同时还能减少消耗服务器较多CPU和IO资源。
(2)本发明先根据埋点专用日志生成采集数据明细表,再根据全局业务号将采集数据明细表划分成多个链路明细数据组,每个数据组为一笔业务,结合子交易号生成及变动规则,制定子交易号查找规则,即可自动生成一笔业务的交易链路图,且生成的交易链路图仅通过流水号即可直观地获取某项业务在各***或节点的发生时间、所属***、所属运行实例节点及发生调用的层级、次数等信息,有利于帮助高效地判断异常发生的所在***,从而提高监控过程中异常定位、故障处置的效率。
(3)本发明提供了完整的监控***数据采集、日志埋点和格式规范、监控***交易链路呈图生成方案。应用价值广泛,可直接落地。对于全新***可以直接采用本方案;对于存量的既有***,本方案侵入性低,改造工作量少,能够快速投产使用。
本发明应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1为本发明交易链路监控方法流程框图;
图2为本发明全局业务号构成示意图;
图3为本发明子交易号构成示意图;
图4为改进后的日志埋点方式示意图;
图5为本发明交易链路呈图的方法流程框图;
图6(a)-(k)为本发明生成一笔业务的交易链路图过程示意图;
图7为本发明交易链路监控***示意图;
图8为本发明数据流传输的示意图。
具体实施方式
为了更加清楚的阐述本发明的目的、技术方案和优点,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
下面结合具体实施例对本发明进行详细的说明:
实施例1
如图1所示,本实施例提供了一种交易链路监控方法,该方法的具体步骤如下:
S1:预设特定文本内容作为埋点输出到日志文件中,形成埋点专用日志文件;
在本实施例中,优选地,所述预设特定文本内容包括但不限于***标识、运行实例号、日期、时间、业务功能码、全局业务号、子交易号、业务处理耗时、响应码、响应信息及其他信息。
进一步地,作为埋点的预设特定文本内容,参考如下:
TRACINGTAGS:SystemCode=***标识,InstanceID=运行实例号,Date=YYYYMMDD,Time=HH24:MI:SS.sss,ExchCode=业务功能码,GlobalBusinessNo=全局业务号,SubTxNo=子交易号,ElapsedMiSec=本笔业务处理耗时毫秒,RspCode=响应码,RspCodeDesc=响应信息,OtherInfo=其他信息。
需要说明的是,以上预设特定文本内容只是示例性的展示,在实际应用中,用户可根据实际需求进行调整。
优选地,TRACINGTAGS代表日志埋点标记,在后续读取埋点专用日志进行数据采集时,以该标记作为搜索关键字,从已产生的日志文件中搜索查找埋点。
SystemCode代表***标识,为每个***提前分配定义***标识。
InstanceID代表运行实例编号,表示***内部的服务或微服务实例编号。运行实例指运行时部署的实例,每个实例具体到运行时的最小部署单元(如一个Java进程/JVM、容器、C进程组/进程等)。运行实例编号在一个***内部自行编排并保证其唯一性。
Date代表日期,发生该笔业务的***日期,优选地,可取机器时间中的八位日期数字。
Time代表时间,发生该笔业务的***时间,可取机器时间,精确到毫秒,包括时分秒毫秒。
GlobalBusinessNo代表全局业务号,一笔业务在跨***、跨运行实例调用过程中流经多个节点,在交易链路上的各个节点均保持不变。
优选地,全局业务号采用4段32位编码方式,包括14位时间戳、5位始端***标识、7位始端***运行实例编号以及6位序列号,如图2所示,示例性的呈现了一个全局业务号的构成。
具体地,时间戳为业务发起的时间,时间戳通常排在全局业务号的第一段,可以对始端***发起的业务按时间进行初步的排序,在本实施例中,长度为14位,精确到秒,格式为YYYYMMDDHHMMSS。
进一步地,始端***标识表示业务发起的始端***,为提前为每个***分配定义的***编号,在本实施例中,长度为5位;
进一步地,始端***运行实例编号为始端***内部的服务或微服务实例编号,运行实例指运行时部署的实例,每个实例具体到运行时的最小部署单元(如一个Java进程/JVM、容器、C进程组/进程等)。在本实施例中,长度为7位,在一个***内部自行编排并保证其唯一性。优选地,始端***运行实例编号包括1位IDC数据中心或机房编号,如1代表北京IDC数据中心、2代表深圳IDC数据中心、3代表贵州IDC数据中心等;2位服务或微服务代号,如01代表客户管理服务、02代表订单服务、03代表资金账务服务等;4位每个服务或微服务的实例序号,对同个服务或微服务部署时通常存在多个运行实例,每个运行实例按顺序编排。如始端***运行实例编号“1030001”表示位于北京IDC数据中心的资金账务服务的1号运行实例,运行实例编号“2010004”表示位于深圳IDC数据中心的客户管理服务的4号运行实例。需要说明的是,上述7位始端***运行实例编号编排规则仅仅是示例性展示的一种方案,实际应用中,在确保一个***范围内的始端***运行实例编号具有唯一性前提下,可以结合***具体情况调整规则。
进一步地,序列号为每个运行实例自身的序列号生成器生成的序号,其单向递增、达最大值后归零,长度为6位。优选地,可从0开始递增,每取出一个序列号后即向上加1,到达999999之后,从0重复开始循环。序列号与时间不相关,因为机器的***时间会被手动调整或自动同步而可能出现相同的时间,因此禁止到达某一时间点即对序列号清零,应保证服务重启、***重启、断电后重启等情况下序列号单仍然保持向前递增,禁止出现如下情形:当前序列号为120000,重启后,序列号从0开始。
SubTxNo代表子交易号,一笔业务在跨***、跨运行实例调用过程中流经多个节点,在不同节点的子交易号不同。
具体地,子交易号SubTxNo采用3段48位编码方式,包括5位调用方***标识、7位调用方***运行实例编号及36交易链路纵横点编号,如图3所示,示例性的呈现了一个子交易号的构成。
进一步地,调用方***标识为提前为每个调用方***分配定义***编号,具体编码方式与始端***标识相同,在此不再赘述;
进一步地,调用方***运行实例编号为调用方***内部的服务或微服务实例编号,在一个***内部具有唯一性,包括IDC数据中心或机房编号、服务或微服务代号及每个服务或微服务的实例序号,具体涉及的内容及定义与始端***运行实例编号相同,此处不再赘述;
进一步地,交易链路纵横点编号为横向、纵向两个维度的调用链路标记,长度为36位,业务未发起前,交易链路纵横点编号为空值。横向维度用于记录交易链路上调用层级增加,最多支持记录36层级的服务调用;纵向用于记录同层调用内的对外调用的次数(自身也算一次)。
交易链路纵横点编号兼备横向计数、纵向计数,以占位符的方式表述,并沿着交易链路向后传递,保证交易链路上各节点的子交易号具有唯一性。
在某笔业务的流经的交易链路中,全局业务号流经在交易链路各***节点保持不变,子交易号随业务流转而变化。
需要说明的是,以上示例性的展示不作为全局业务号、子交易号中编码的段数、各段编码的位数、各段编码的先后组合方式的限制。
更近一步地,子交易号随业务流转而变化,可使用所述子交易号生成及变动规则函数更新子交易号SubTxNo。
横向维度调用使用横向维度函数getSubTxNoX(),其定义为:
如果,传入参数原子交易号original_SubTxNo为空值,则生成交易链路纵横点编号初始值:首位为1,其余位为0;
否则,从原子交易号original_SubTxNo取出交易链路纵横点编号,从交易链路纵横点编号中从左至右找出第一个“0值”位,对该位值赋值为1;
将调用方***标识、调用方***运行实例编号、新得到的交易链路纵横点编号拼装得到新子交易号;
将所述新子交易号作为结果返回。
纵向维度调用使用纵向维度函数getSubTxNoY(),其定义为:
如果,传入参数原子交易号original_SubTxNo为空值,则生成交易链路纵横点编号初始值:首位为1,其余位为0;
否则,从原子交易号original_SubTxNo取出交易链路纵横点编号,从交易链路纵横点编号中从左至右找出最后一个“非0值”位,取出该位的值并依次选用“1-9-A-Z-a-z”赋值该位;
将调用方***标识、调用方***运行实例编号、新得到的交易链路纵横点编号拼装得到新子交易号;
将所述新子交易号作为结果返回。
优选地,在本实施例中纵向维度单节点最多支持记录61次***调用。
通过合理的设计子交易号的生成及变动规则,在生成交易链路图时,无需依赖其他相关信息,仅根据子交易号的变化规律即可自动生成的交易链路图,且生成的交易链路图中,通过流水号中可直观地获取业务发生的时间、流经的***及其对应的***标识、在某一***发生调用的维度、次数等有效信息,有利于帮助高效地判断异常发生的所在***,从而提高监控过程中异常定位、故障处置的效率。
ElapsedMiSec代表处理耗时,某笔业务处理耗时毫秒。
RspCode代表响应码,业务处理结果,一般通过以不同响应码代表不同的结果。比如响应码“S000000”表示处理成功;“F000001”表示处理失败且原因是已存在重复的交易;“F000002”表示处理失败且原因是请求报文格式不合法等等。
RspCodeDesc代表响应信息,对响应码的描述信息,说明响应码的含义以及产生的具体原因。
OtherInfo代表其他信息,作为预留字段以备后续扩展。
如图4所示,示例性的呈现了改进后的日志埋点方式,将业务处理过程产生的正常日志内容输出至一个日志文件形成日常日志文件,将预设特定文本内容单独输出至另一个日志文件形成埋点专用日志文件,并将埋点专用日志文件的文件名命名为TracingTags_YYYYMMDD.log(其中YYYYMMDD为八位年月日),实现与正常的业务处理的日常日志文件的剥离。
S2:在各业务***节点运行实例上,读取所述埋点专用日志文件;
在本实施例中,直接从埋点专用日志文件获取预设特定文本内容,能够有效地提升采集数据的命中率,提高提取数据的效率。
例如,若未设置成日常日志文件及埋点专用日志文件,某运行实例节点处理一笔业务过程中输出的日志文件内容为999行,另有埋点内容1行。一个日志文件中包括了5000笔业务处理日志,则该日志文件内容总行数为(999+1)×5000=5000000。其中埋点内容仅为5000行。即需要从5000000中的日志文件中搜索得到5000笔,搜索命中率仅为0.1%;而单独输出埋点专用日志文件后,由于该文件里全部为埋点内容,所以搜索命中率为100%,大大提高了搜索效率,且避免了服务器CPU和IO资源无谓消耗。
S3:对所述埋点专用日志文件内容进行逐行判断,判断当前行内容是否含有日志埋点标记;
S4:若否,则返回S4,判断下一行所述埋点专用日志文件内容;
S5:若是,则提取所述日志埋点标记后续的内容作为采集数据;
优选地,在进行日志读取时,由于TRACINGTAGS作为日志埋点标记,故以TRACINGTAGS作为关键字在埋点专用日志文件中进行逐行搜索并判断当前行是否含有TRACINGTAGS。若在当前行未搜到,则说明当前行不存在埋点,结束对当前行的搜索,开始对当前行的下一行搜索,逐行依次进行,直至搜索完毕;若在当前行搜索到TRACINGTAGS,即确定埋点位置,日志埋点标记后的信息为预设特定文本内容,为一次采集数据的对象。
S6:将所述采集数据传输至数据库,并对所述采集数据进行处理后将处理结果保存至采集数据明细表;
进一步地,采集数据传输至监控***中的数据库进行保存,优选地,传输的协议可以选择Socket或HTTP或其他协议;更近一步地,为了向用户更加清晰的展示采集数据,需要将数据处理成表格的形成,具体如下:
对所述采集数据内容进行解析、按字段分割;
采集数据为预设特定文本内容,每一项以预设英文词组开始,英文词组后紧跟该词组对应的相关信息,该项信息记录完整后,紧着下一项预设的英文词组。如Date:20220506,Time:103324653,因此,可按照此规律,对采集数据按字段分割,分割成代表预设特定文本的英文词组,及该词组对应的相关信息。
提取出所述预设特定文本的各项内容,填充入所述采集数据明细表。
优选地,提取出具有代表意义的英文词组,将英文词组翻译成中文填充入表格的首行,将该词组对应的相关信息填充入英文词组对应列的下一行,直至所有的预设特定文本的各项内容均提取完成。如表1所示,本实施例示例性的展示了一种采集数据明细表结构,如下:
表1
需要说明的是,上述的采集数据明细表结构只是一种示例性的展示,在实际应用中,英文词组可不进行翻译,直接用于填充表格,填充表格时,英文词组还可填充入表格的首列,词组对应的相关信息填充入英文词组对应行的下一列。如表2所示,本实施例示例性的展示了另一种采集数据明细表结构,如下:
表2
更进一步地,还可以将表1的中文换成英文词组,表2的英文词组换成中文。在本发明的基础上进行变更及组合后的结构形式均在本发明的保护范围内。
S7:根据所述采集数据明细表中的数据进行包括但不限于交易链路呈图、业务量统计、监控明细查询、规则警报的处理,用于业务的交易链路监控。
具体地,交易链路呈图是根据采集数据明细表中的全局业务号、子交易号绘制交易链路图;
业务量统计的具体内容包括,将采集数据明细表中的数据按指定维度口径进行统计并将结果以图表形式展示。具体地,维度口径可以为按日期、按***标识、按运行实例号、按业务功能码、按响应码等,更近一步地,用于结果展示的图表包括二维表格、柱状图、饼图、折线图等多种形式;
操作人员通过监控明细查询单元输入查询条件可进行监控明细查询,实现对采集的监控数据进行多条件组合查询和结果展示。优选地,输入查询条件可以包括时间区间、***标识、运行实例号、业务功能码、全局业务号、处理耗时区间、响应码等;
监控***自动根据预设警报规则、阈值及警报接收人等,对采集数据明细表中的数据进行监控及分析,若触发阈值则通过界面提示窗、发短信、发电子邮件等多种形式通知到指定人员,以保证能够及时处理故障等。
在本实施例中,优选地,还包括展示采集数据明细表、交易链路图、业务量统计结果、监控明细、规则警报的结果等过程,并提供界面供工作人员访问。
实施例2
如图5所示,示例性的呈现了交易链路呈图的方法,包括:
S701:从所述采集数据明细表中读取明细数据,根据全局业务号将所述明细数据划分成不同的链路明细数据组;
在业务层面,全局业务号作为业务流水的标识,其一笔业务生命周期内不变,一直持续到业务处理链路结束。即同一业务在各***或各平台或各组件或各事务流转处理时继承同一全局业务号;若一个业务触发多个子业务,子业务也继承同一全局业务号。因此将采集数据明细表中具有相同全局业务号的明细数据归为一个数据组,每个数据组表示一笔业务,最终可形成多个不同的链路明细数据组。
某一笔业务的链路明细数据组示例数据如表3所示,仅展示了全局业务号与子交易号两字段。
表3
S702:从所述链路明细数据组中查找子交易号,找出交易链路纵横点编号最小的子交易号,将其对应的明细数据作为第一笔明细数据,其对应的***节点作为始端节点;
结合实施例1可知,子交易号中含有调用方***标识、调用方***运行实例编号及交易链路纵横点编号,其中调用方***标识、调用方***运行实例编号与调用方***相关,在业务流转过程中,随着调用方***的变化而改变,而交易链路纵横点编号则是按照子交易号生成及变动规则函数中的交易链路纵横点编号赋值规则进行更新,从横向、纵向两个维度记录***调用情况,确保链路上每一个子交易号均不相同。根据子交易号生成及变动规则函数中的交易链路纵横点编号赋值规则可知,从36位交易链路纵横点编号的最高位开始赋值,故从数学的角度而言,交易链路纵横点编号最小的子交易号对应的节点应为业务流经过的第一个节点,即始端节点,结合表3可知,交易链路纵横点编号最小的为100000000000000000000000000000000000,其对应的子交易号为903331010008100000000000000000000000000000000000,则该子交易号对号的业务***节点A为当前节点,具体如图6(a)所示,图中五角星表示CurrentNode当前节点所在的位置,大写字母代表当前节点的代号。
S703:以始端节点作为CurrentNode当前节点;
S704:以CurrentNode当前节点为基准,从所述链路明细数据组中剩余的所述子交易号,找出与CurrentNode当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的子交易号,呈现在交易链路图中的线条上;
在本实施例中,优选地,线条上的子交易号用于记录当前节点的对外调用次数。上述的查找过程依据纵向维度函数getSubTxNoY()对交易链路纵横点编号的赋值过程制定:从原子交易号original_SubTxNo取出交易链路纵横点编号,从交易链路纵横点编号中从左至右找出最后一个“非0值”位,取出该位的值并依次选用“1-9-A-Z-a-z”赋值该位。故交易链路纵横点编号“非0值”位的个数相同,表示在同一节点发生的对外调用,该位“非0值”的数值的大小,记录了该节点发生纵向维度上调用的先后顺序及次数。
结合S703可知,当前节点A的子交易号的链路纵横点编号为100000000000000000000000000000000000,其“非0值”位的个数为1。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的为200000000000000000000000000000000000,对应的子交易号为903331010008200000000000000000000000000000000000,该子交易号应呈现在交易链路图中的线条上。
S705:若未找到所述子交易号,则跳转至S710;
S706:若找到所述子交易号,则跳转至S707;
S707:将所述线条上的子交易号中的交易链路纵横点编号“非0值”位的个数记为n,从剩余链路明细数据组中,找出交易链路纵横点编号“非0值”位的个数为n+1,且其从左至右前n位的值与所述线条上的交易链路纵横点编号中末位的“非0值”的值相等的子交易号,该子交易号对应的业务***节点作为新节点;
优选地,新节点的查找过程依据横向维度函数getSubTxNoX()对交易链路纵横点编号的赋值过程制定:从原子交易号original_SubTxNo取出交易链路纵横点编号,从交易链路纵横点编号中从左至右找出第一个“0值”位,对该位值赋值为1。故交易链路纵横点编号在原子交易号的基础上每增加一位“非0值”,则说明***在横向维度的调用增加了一次,出现新的业务***节点。
在本实施例中,结合S704可知,线条上的子交易号中的交易链路纵横点编号为200000000000000000000000000000000000,“非0值”位的个数为1。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,符合交易链路纵横点编号“非0值”位的个数为2,且其从左至右前1位的值与线条上的交易链路纵横点编号中未位的“非0值”的值相等的交易链路纵横点编号为210000000000000000000000000000000000,对应的子交易号为922021220005210000000000000000000000000000000000,该子交易号对应的业务***节点B作为新节点,交易链路图中出现新的节点。
S708:若找到所述子交易号,则将所述子交易号绘制于交易链路图中,并将所述新节点作为CurrentNode当前节点;
在本实施例中,优选地,将通过S704、S707找到的子交易号呈现于交易链路图中,具体的形式如图6(b)所示,当前节点由业务***节点A变为业务***节点B。
S709:循环S704-S709,直至无法找到新节点,停止循环,跳转至S710;
具体地,开始循环,当前节点B对应的交易链路纵横点编号为210000000000000000000000000000000000,其“非0值”位的个数为2。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的为220000000000000000000000000000000000,对应的子交易号为922021220005220000000000000000000000000000000000;
该子交易号的交易链路纵横点编号中“非0值”位的个数为2,结合表3可知,链路明细数据组中剩余的子交易号中,符合交易链路纵横点编号“非0值”位的个数为3,且其从左至右前2位的值与该交易链路纵横点编号中未位的“非0值”的值相等的交易链路纵横点编号为221000000000000000000000000000000000,对应的子交易号为333031130033221000000000000000000000000000000000,该子交易号对应的业务***节点C作为新节点,交易链路图中出现新的节点;
将新找到2个子交易号在呈现于交易链路图中,具体的形式如图6(c)所示,当前节点由业务***节点B变为业务***节点C。
更近一步地,继续循环,当前节点C对应的交易链路纵横点编号为221000000000000000000000000000000000,其“非0值”位的个数为3,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的可以为222000000000000000000000000000000000、223000000000000000000000000000000000等,结合表3可知,链路明细数据组中剩余的子交易号中不存在此类子交易号,则直接跳转至S710。
S710:若未找到所述子交易号,则CurrentNode当前节点后退,以退回的节点作为CurrentNode当前节点;
具体地,无法找到符合要求的子交易号,说明当前节点已查找完成,应后退,并以退回的节点为CurrentNode当前节点,如图6(d)所示,当前节点由业务***节点C后退至业务***节点B。
S711:循环S704-S711;
具体地,开始循环,当前节点B对应的交易链路纵横点编号为220000000000000000000000000000000000,其“非0值”位的个数为2。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的为230000000000000000000000000000000000,对应的子交易号为922021220005230000000000000000000000000000000000;
该子交易号的交易链路纵横点编号中“非0值”位的个数为2,结合表3可知,链路明细数据组中剩余的子交易号中,符合交易链路纵横点编号“非0值”位的个数为3,且其从左至右前2位的值与该交易链路纵横点编号中未位的“非0值”的值相等的交易链路纵横点编号为231000000000000000000000000000000000,对应的子交易号为550033040017231000000000000000000000000000000000,该子交易号对应的业务***节点D作为新节点,交易链路图中出现新的节点;
将新找到2个子交易号在呈现于交易链路图中,具体的形式如图6(e)所示,当前节点由业务***节点B变为业务***节点D;
更近一步地,执行S704-S709循环,当前节点D对应的交易链路纵横点编号为231000000000000000000000000000000000,其“非0值”位的个数为3,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的可以为232000000000000000000000000000000000、233000000000000000000000000000000000等,结合表3可知,链路明细数据组中剩余的子交易号中不存在此类子交易号;
无法找到符合要求的子交易号,说明当前节点已查找完成,应后退,并以退回的节点为CurrentNode当前节点,如图6(f)所示,当前节点由业务***节点D后退至业务***节点B。
继续执行S704-S711循环,当前节点B对应的交易链路纵横点编号为230000000000000000000000000000000000,其“非0值”位的个数为2,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的可以为240000000000000000000000000000000000、250000000000000000000000000000000000等,结合表3可知,链路明细数据组中剩余的子交易号中不存在此类子交易号;
无法找到符合要求的子交易号,说明当前节点已查找完成,应后退,并以退回的节点为CurrentNode当前节点,如图6(g)所示,当前节点由业务***节点B后退至业务***节点A。
执行S704-S711循环,当前节点A的子交易号的链路纵横点编号为200000000000000000000000000000000000,其“非0值”位的个数为1。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的为300000000000000000000000000000000000,对应的子交易号为903331010008300000000000000000000000000000000000;
该子交易号中的交易链路纵横点编号的“非0值”位的个数为1。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,符合交易链路纵横点编号“非0值”位的个数为2,且其从左至右前1位的值与线条上的交易链路纵横点编号中未位的“非0值”的值相等的交易链路纵横点编号为310000000000000000000000000000000000,对应的子交易号为755062090066310000000000000000000000000000000000;
将新找到2个子交易号在呈现于交易链路图中,具体的形式如图6(h)所示,当前节点由业务***节点A变为业务***节点E。
更近一步地,执行S704-S709循环,当前节点E的子交易号的链路纵横点编号为3100000000000000000000000000000000000,其“非0值”位的个数为2,进一步地,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小可以为320000000000000000000000000000000000、330000000000000000000000000000000000,结合表3可知,链路明细数据组中剩余的子交易号中不存在此类子交易号;
无法找到符合要求的子交易号,说明当前节点已查找完成,应后退,并以退回的节点为CurrentNode当前节点,如图6(i)所示,当前节点由业务***节点E后退至业务***节点A。
执行S704-S711循环,当前节点A的子交易号的链路纵横点编号为300000000000000000000000000000000000,其“非0值”位的个数为1。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的为400000000000000000000000000000000000,对应的子交易号为903331010008400000000000000000000000000000000000;
该子交易号中的交易链路纵横点编号的“非0值”位的个数为1。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,符合交易链路纵横点编号“非0值”位的个数为2,且其从左至右前1位的值与线条上的交易链路纵横点编号中未位的“非0值”的值相等的交易链路纵横点编号为410000000000000000000000000000000000,对应的子交易号为200061180038410000000000000000000000000000000000;
将新找到2个子交易号在呈现于交易链路图中,具体的形式如图6(j)所示,当前节点由业务***节点A变为业务***节点F。
更近一步地,执行S704-S709循环,当前节点F对应的交易链路纵横点编号为410000000000000000000000000000000000,其“非0值”位的个数为2。进一步地,结合表3可知,链路明细数据组中剩余的子交易号中,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的为420000000000000000000000000000000000,对应的子交易号为200061180038420000000000000000000000000000000000;
该子交易号的交易链路纵横点编号中“非0值”位的个数为2,结合表3可知,链路明细数据组中剩余的子交易号中,符合交易链路纵横点编号“非0值”位的个数为3,且其从左至右前2位的值与该交易链路纵横点编号中未位的“非0值”的值相等的交易链路纵横点编号为421000000000000000000000000000000000,对应的子交易号为880021080009421000000000000000000000000000000000,该子交易号对应的业务***节点G作为新节点,交易链路图中出现新的节点;
将新找到2个子交易号在呈现于交易链路图中,具体的形式如图6(k)所示,当前节点由业务***节点F变为业务***节点G。
按照以上过程,继续执行查找操作,当前节点G对应交易链路纵横点编号为421000000000000000000000000000000000,其“非0值”位的个数为3,进一步地,与当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小可以为422000000000000000000000000000000000、423000000000000000000000000000000000,结合表3可知,链路明细数据组中剩余的子交易号中不存在此类子交易号;
无法找到符合要求的子交易号,说明当前节点已查找完成,应后退,并以退回的节点为CurrentNode当前节点,当前节点由业务***节点G后退至业务***节点F。
以当前节点F对应交易链路纵横点编号420000000000000000000000000000000000为基准查找,结合S704中的查找规则及表3可知,链路明细数据组中剩余的子交易号中不存在此类子交易号;当前节点由业务***节点F后退至业务***节点A;以当前节点A对应交易链路纵横点编号400000000000000000000000000000000000为基准查找,结合S704中的查找规则及表3可知,链路明细数据组中剩余的子交易号中不存在此类子交易号。
S712:若CurrentNode当前节点后退失败,即CurrentNode当前节点已经为始端节点,一笔业务的交易链路图生成结束。
当节点后退至业务***A,依然无法查找到符合规则的子交易号,已无后退节点,则说明该笔业务的各交易链路数据内已查找完成,交易链路图生成过程结束。
根据采集数据明细表的内容,可以高效地生成链路明细数据组,根据链路明细数据组可以自动生成交易链路图,且生成的交易链路图涵盖的全局业务号及子交易号即可直观获取某项业务的发生时间、所属链路、所属***、所属运行实例节点及发生调用的层级、次数等有效信息,获取有效信息的效率提高,进而提高链路监控、异常排查的效率和准确率。
需要说明的是,交易链路图中除了展示流水号信息和交易链路关系外,还可以在每个链路节点上显示附属其他信息,例如日期、时间、该调用处理耗时、响应码等附属信息。使得监控人员在界面上通过交易链路图即可一目了然的知晓调用过程和细节信息。通常在实际监控***界面显示的交易链路图中,鼠标移动到交易链路图上的线条或节点,即可显示该线条或节点的附属信息。
实施例3
如图7所示,本实施例示例性的呈现了一种交易链路监控***,其包括日志埋点模块、日志数据采集模块、数据处理模块、数据存储模块、链路监控模块及界面展示模块,具体如下:
日志埋点模块:用于预设特定文本内容作为埋点输出到日志文件中,形成埋点专用日志文件;
在本实施例中,优选地,日志埋点模块包括日志埋点单元及埋点专用日志输出单元。
日志埋点单元用于预设特定文本内容,构建日志埋点标记,自由选取需要作为预设特定文本内容的英文词组;埋点专用日志输出单元根据日志埋点单元预设特定文本内容,将预设特定文本内容与日常日志文件信息剥离,使预设特定文本内容单独输出,形成指定格式的埋点专用日志文件。
日志数据采集模块:用于在各业务***节点运行实例上,读取所述埋点专用日志文件;对所述埋点专用日志文件内容进行逐行判断,判断当前行内容是否含有日志埋点标记;提取所述日志埋点标记后续的内容作为采集数据;
在本实施例中,优选地,日志数据采集模块包括日志读取单元、埋点标记判断单元及数据采集单元。
日志读取单元用于对埋点专用日志文件内容进行逐行的读取;埋点标记判断单元根据日志读取单元读取的内容,判断当前读取的行中,是否含有埋点标记TRACINGTAGS;数据采集单元根据埋点标记判断单元输出结果进行数据采集,具体地,若含有埋点标记,则埋点标记后的一段内容为预设特定文本内容,作为一次数据采集的内容。
预设特定文本内容,能够有效地提升采集数据的命中率,提高提取数据的效率。
数据处理模块:用于对所述采集数据进行处理后将处理结果保存至采集数据明细表;
在本实施例中,优选地,数据处理模块包括数据处理单元及采集数据明细表形成单元。
数据处理单元用于对日志数据采集模块采集到的预设特定文本内容进行分析,按照预设特定文本内容的格式,对每一项预设特定文本内容进行分割,具体的分割方法同实施例1,在此不再赘述;采集数据明细表形成单元将分割后的内容按照一一对应的关系填充于表格中形成采集数据明细表,具体的填充方法同实施例1,在此不再赘述。
数据存储模块:用于存储所述采集数据、采集数据明细表及其他相关数据;
在本实施例中,优选地,数据存储模块用于存储所述采集数据、采集数据明细表及其他处理后的用于链路监控的图、表数据等,可以为数据库、硬盘或内存设备等。
如图8所示,示例性的呈现了本发明数据流传输的示意图。具体地,通过日志埋点提取出每个运行实例中的预设特定文本内容形成埋点专用日志文件,埋点专用日志文件传输至数据库及后续模块,在数据库中对原始数据进行存储,在后续模块中进行数据采集和数据处理,处理后的数据同样地保存在数据库,同时,处理后的数据传输至链路监控模块用于交易链路呈图、业务量统计、监控明细查询、规则警报等处理。
链路监控模块:用于根据所述采集数据明细表中的数据进行包括但不限于交易链路呈图、业务量统计、监控明细查询、规则警报的处理,完成对业务的交易链路监控。
在本实施例中,优选地,链路监控模块包括交易链路呈图单元、业务量统计单元、监控明细查询单元、规则警报单元。
交易链路呈图单元包括链路明细数据组形成子单元、子交易号查找子单元及交易链路图形成子单元。链路明细数据组形成子单元读取采集数据明细表中的明细数据,并将表中具有相同全局业务号的明细数据归为一个数据组,每个数据组表示一笔业务,最终可形成多个不同的链路明细数据组;子交易号查找子单元按照预设的查找规则从链路明细数据组中依次查找子交易号,交易链路图形成子单元根据查找到的子交易号自动形成交易链路图;
业务量统计单元采集数据明细表中的数据按指定维度口径进行统计并将结果以图表形式展示。具体地,维度口径可以为按日期、按***标识、按运行实例号、按业务功能码、按响应码等,更近一步地,用于结果展示的图表包括二维表格、柱状图、饼图、折线图等多种形式;
监控明细查询单元用于工作人员进行监控明细查询,通过输入查询条件,实现对采集的监控数据进行多条件组合查询和结果展示。优选地,输入查询条件可以包括时间区间、***标识、运行实例号、业务功能码、全局业务号、处理耗时区间、响应码等;
规则警报单元包括警报规则预设子单元及警报信息分析处理子单元。警报规则预设子单元用于预设警报规则及阈值,维护警报接收人等。警报信息分析处理子单元用于根据预设的警报规则及阈值,对采集数据明细表中的数据进行监控及分析,若触发阈值则通过界面提示窗、发短信、发电子邮件等多种形式通知到指定人员,以保证能够及时处理故障等。
在本实施例中,优选地,还包括界面展示模块,该模块用于实时展示采集数据明细表、链路明细数据组、交易链路图、业务量统计结果、监控明细、规则警报的结果等,并提供界面供工作人员访问。
在本发明示例性实施方式中,还提供了一种能够实现上述方法的计算机存储介质。其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施例中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当上述程序产品在设备上运行时,上述程序代码用于使上述设备执行本说明书上述“示例性方法”部分中描述的根据本公开各种示例性实施方式的步骤。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由权利要求指出。应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
Claims (10)
1.一种交易链路监控方法,其特征在于,所述方法包括:
预设特定文本内容作为埋点输出到日志文件中,形成埋点专用日志文件;
在各业务***节点运行实例上,读取所述埋点专用日志文件;
对所述埋点专用日志文件内容进行逐行判断,判断当前行内容是否含有日志埋点标记;
若否,则返回上一步,判断下一行所述埋点专用日志文件内容;
若是,则提取所述日志埋点标记后续的内容作为采集数据;
将所述采集数据传输至数据库,并对所述采集数据进行处理后将处理结果保存至采集数据明细表;
根据所述采集数据明细表中的数据进行包括但不限于交易链路呈图、业务量统计、监控明细查询、规则警报的处理,用于业务的交易链路监控。
2.根据权利要求1所述的一种交易链路监控方法,其特征在于,所述预设特定文本内容包括但不限于***标识、运行实例号、日期、时间、业务功能码、全局业务号、子交易号、业务处理耗时、响应码、响应信息及其他信息。
3.根据权利要求1所述的一种交易链路监控方法,其特征在于,所述并对所述采集数据进行处理后将处理结果保存至采集数据明细表包括:
对所述采集数据内容进行解析、按字段分割;
提取出所述预设特定文本的各项内容,填充入所述采集数据明细表。
4.根据权利要求2所述的一种交易链路监控方法,其特征在于,所述全局业务号在交易链路各***节点上具有唯一性,包括时间戳、始端***标识、始端***运行实例编号以及序列号。
5.根据权利要求2所述的一种交易链路监控方法,其特征在于,所述子交易号包括调用方***标识、调用方***运行实例编号及交易链路纵横点编号。
6.根据权利要求1或2任一项所述的一种交易链路监控方法,其特征在于,所述交易链路呈图的方法,包括:
S701:从所述采集数据明细表中读取明细数据,根据全局业务号将所述明细数据划分成不同的链路明细数据组;
S702:从所述链路明细数据组中查找子交易号,找出交易链路纵横点编号最小的子交易号,将其对应的明细数据作为第一笔明细数据,其对应的***节点作为始端节点;
S703:以始端节点作为CurrentNode当前节点;
S704:以CurrentNode当前节点为基准,从所述链路明细数据组中剩余的所述子交易号,找出与CurrentNode当前节点的交易链路纵横点编号中“非0值”位的个数相同,且交易链路纵横点编号最小的子交易号,呈现在交易链路图中的线条上;
S705:若未找到所述子交易号,则跳转至S710;
S706:若找到所述子交易号,则跳转至S707;
S707:将所述线条上的子交易号中的交易链路纵横点编号“非0值”位的个数记为n,从剩余链路明细数据组中,找出交易链路纵横点编号“非0值”位的个数为n+1,且其从左至右前n位的值与所述线条上的交易链路纵横点编号中末位的“非0值”的值相等的子交易号,该子交易号对应的业务***节点作为新节点;
S708:若找到所述子交易号,则将所述子交易号绘制于交易链路图中,并将所述新节点作为CurrentNode当前节点;
S709:循环S704-S709,直至无法找到新节点,停止循环,跳转至S710;
S710:若未找到所述子交易号,则CurrentNode当前节点后退,以退回的节点作为CurrentNode当前节点;
S711:循环S704-S711;
S712:若CurrentNode当前节点后退失败,即CurrentNode当前节点已经为始端节点,一笔业务的交易链路图生成结束。
7.根据权利要求6所述的一种交易链路监控方法,其特征在于,还包括:实时展示包括但不限于采集数据明细表、交易链路图、业务量统计结果、监控明细、规则警报的结果,并提供界面供工作人员访问。
8.一种计算机存储介质,所述计算机存储介质存储有计算机可执行代码;所述计算机可执行代码被执行后,能够实现权利要求1-7任一项提供的方法。
9.一种交易链路监控***,其特征在于,包括:
日志埋点模块:用于预设特定文本内容作为埋点输出到日志文件中,形成埋点专用日志文件;
日志数据采集模块:用于在各业务***节点运行实例上,读取所述埋点专用日志文件;对所述埋点专用日志文件内容进行逐行判断,判断当前行内容是否含有日志埋点标记;提取所述日志埋点标记后续的内容作为采集数据;
数据处理模块:用于对所述采集数据进行处理后将处理结果保存至采集数据明细表;
数据存储模块:用于存储所述采集数据、采集数据明细表及其他相关数据;
链路监控模块:用于根据所述采集数据明细表中的数据进行包括但不限于交易链路呈图、业务量统计、监控明细查询、规则警报的处理,完成业务的交易链路监控。
10.根据权利要求9所述的一种交易链路监控***,其特征在于,还包括界面展示模块:用于实时展示包括但不限于采集数据明细表、交易链路图、业务量统计结果、监控明细、规则警报的结果,并提供界面供工作人员访问。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211530506.4A CN115904872B (zh) | 2022-12-01 | 2022-12-01 | 一种交易链路监控方法、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211530506.4A CN115904872B (zh) | 2022-12-01 | 2022-12-01 | 一种交易链路监控方法、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904872A true CN115904872A (zh) | 2023-04-04 |
CN115904872B CN115904872B (zh) | 2024-03-12 |
Family
ID=86495289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211530506.4A Active CN115904872B (zh) | 2022-12-01 | 2022-12-01 | 一种交易链路监控方法、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904872B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034451A (zh) * | 2006-03-08 | 2007-09-12 | 王岳剑 | 智能交易***结点 |
CN109104302A (zh) * | 2018-07-18 | 2018-12-28 | 杭州鑫合汇互联网金融服务有限公司 | 一种全链路追踪监控方法 |
CN109460307A (zh) * | 2018-10-15 | 2019-03-12 | 厦门商集网络科技有限责任公司 | 基于日志埋点的微服务调用跟踪方法及其*** |
CN109669842A (zh) * | 2018-12-27 | 2019-04-23 | ***通信集团江苏有限公司 | 日志调用方法、装置、设备及计算机存储介质 |
CN111752799A (zh) * | 2020-06-24 | 2020-10-09 | 中国建设银行股份有限公司 | 一种业务链路跟踪方法、装置、设备及储存介质 |
CN112433991A (zh) * | 2020-11-20 | 2021-03-02 | 苏宁金融科技(南京)有限公司 | 一种问题定位方法和装置 |
CN112506894A (zh) * | 2020-12-02 | 2021-03-16 | 平安医疗健康管理股份有限公司 | 基于链路追踪的服务链日志处理方法、装置和计算机设备 |
CN112711398A (zh) * | 2020-12-29 | 2021-04-27 | 平安普惠企业管理有限公司 | 埋点文件生成方法、装置、设备及存储介质 |
CN112966957A (zh) * | 2021-03-22 | 2021-06-15 | 国家电网有限公司大数据中心 | 一种数据链路异常定位方法、装置、电子设备及存储介质 |
CN114371980A (zh) * | 2022-01-13 | 2022-04-19 | 平安付科技服务有限公司 | 调用链路性能监控方法、装置、计算机设备及存储介质 |
CN114691732A (zh) * | 2022-03-09 | 2022-07-01 | 中国邮政储蓄银行股份有限公司 | 定位异常交易的方法、装置、非易失性存储介质与处理器 |
CN114706827A (zh) * | 2022-04-19 | 2022-07-05 | 中国银行股份有限公司 | 一种交易链路拓扑自动生成方法及装置 |
CN115277409A (zh) * | 2022-07-20 | 2022-11-01 | 杭州米络星科技(集团)有限公司 | 埋点数据实时采集和上报方法及装置、获取***和终端 |
-
2022
- 2022-12-01 CN CN202211530506.4A patent/CN115904872B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101034451A (zh) * | 2006-03-08 | 2007-09-12 | 王岳剑 | 智能交易***结点 |
CN109104302A (zh) * | 2018-07-18 | 2018-12-28 | 杭州鑫合汇互联网金融服务有限公司 | 一种全链路追踪监控方法 |
CN109460307A (zh) * | 2018-10-15 | 2019-03-12 | 厦门商集网络科技有限责任公司 | 基于日志埋点的微服务调用跟踪方法及其*** |
CN109669842A (zh) * | 2018-12-27 | 2019-04-23 | ***通信集团江苏有限公司 | 日志调用方法、装置、设备及计算机存储介质 |
CN111752799A (zh) * | 2020-06-24 | 2020-10-09 | 中国建设银行股份有限公司 | 一种业务链路跟踪方法、装置、设备及储存介质 |
CN112433991A (zh) * | 2020-11-20 | 2021-03-02 | 苏宁金融科技(南京)有限公司 | 一种问题定位方法和装置 |
CN112506894A (zh) * | 2020-12-02 | 2021-03-16 | 平安医疗健康管理股份有限公司 | 基于链路追踪的服务链日志处理方法、装置和计算机设备 |
CN112711398A (zh) * | 2020-12-29 | 2021-04-27 | 平安普惠企业管理有限公司 | 埋点文件生成方法、装置、设备及存储介质 |
CN112966957A (zh) * | 2021-03-22 | 2021-06-15 | 国家电网有限公司大数据中心 | 一种数据链路异常定位方法、装置、电子设备及存储介质 |
CN114371980A (zh) * | 2022-01-13 | 2022-04-19 | 平安付科技服务有限公司 | 调用链路性能监控方法、装置、计算机设备及存储介质 |
CN114691732A (zh) * | 2022-03-09 | 2022-07-01 | 中国邮政储蓄银行股份有限公司 | 定位异常交易的方法、装置、非易失性存储介质与处理器 |
CN114706827A (zh) * | 2022-04-19 | 2022-07-05 | 中国银行股份有限公司 | 一种交易链路拓扑自动生成方法及装置 |
CN115277409A (zh) * | 2022-07-20 | 2022-11-01 | 杭州米络星科技(集团)有限公司 | 埋点数据实时采集和上报方法及装置、获取***和终端 |
Also Published As
Publication number | Publication date |
---|---|
CN115904872B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112380473B (zh) | 数据采集与同步方法、装置、设备及存储介质 | |
CN113778985A (zh) | 微服务架构监控方法、装置、计算机设备和存储介质 | |
CN106777308A (zh) | 民航订单信息的同步方法及装置 | |
EP2933726B1 (en) | Apparatus, system and method for application log data processing | |
CN111355802B (zh) | 信息推送方法和装置 | |
CN111159127A (zh) | 一种基于Apriori算法的日志分析的方法及装置 | |
CN114465874A (zh) | 故障预测方法、装置、电子设备与存储介质 | |
CN114707474A (zh) | 报表生成方法、装置、电子设备及计算机可读存储介质 | |
CN110784377A (zh) | 一种多云环境下的云监控数据统一管理的方法 | |
JP4928848B2 (ja) | 計算機システム統合管理環境におけるメッセージ変換装置 | |
US7844601B2 (en) | Quality of service feedback for technology-neutral data reporting | |
CN113704216A (zh) | ***日志处理方法、装置、计算机设备和存储介质 | |
CN113157904A (zh) | 基于dfa算法的敏感词过滤方法及*** | |
CN115904872B (zh) | 一种交易链路监控方法、***及存储介质 | |
CN112612679A (zh) | ***运行状态监控方法、装置、计算机设备和存储介质 | |
CN115936608B (zh) | 基于交易链路的分布式流水号生成方法、装置及存储介质 | |
CN116302652A (zh) | ***报警信息的处理方法、装置及电子设备 | |
CN114584453A (zh) | 一种应用***的故障分析方法及装置 | |
CN115495587A (zh) | 一种基于知识图谱的告警分析方法及装置 | |
US8631391B2 (en) | Method and a system for process discovery | |
CN112612674A (zh) | 监控埋点数据的方法、装置、设备和计算机可读存储介质 | |
CN116155692B (zh) | 告警解决方案推荐方法、装置、电子设备及存储介质 | |
CN106469086B (zh) | 事件处理方法和装置 | |
WO2000023878A2 (en) | System and method for summarizing a software program | |
CN112199583B (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40092125 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |