CN111176941A - 一种数据处理的方法、装置和存储介质 - Google Patents
一种数据处理的方法、装置和存储介质 Download PDFInfo
- Publication number
- CN111176941A CN111176941A CN201911355159.4A CN201911355159A CN111176941A CN 111176941 A CN111176941 A CN 111176941A CN 201911355159 A CN201911355159 A CN 201911355159A CN 111176941 A CN111176941 A CN 111176941A
- Authority
- CN
- China
- Prior art keywords
- link
- service
- identifier
- sampling
- calling
- 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
- 238000003672 processing method Methods 0.000 title abstract description 13
- 238000005070 sampling Methods 0.000 claims abstract description 114
- 230000002159 abnormal effect Effects 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000012544 monitoring process Methods 0.000 claims abstract description 23
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 11
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000012546 transfer Methods 0.000 claims description 5
- 238000011144 upstream manufacturing Methods 0.000 abstract description 24
- 238000010586 diagram Methods 0.000 description 12
- 238000004590 computer program Methods 0.000 description 5
- 238000007405 data analysis Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3006—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种数据处理的方法、装置和存储介质,具体为将接收到的用户请求中携带的采样标识赋值为无效值,无效值不同于用于触发服务采集运行数据并返回采样标识的有效值,在用户请求沿调用链路的顺序调用服务的期间内,监听在调用链路中的各链路节点被调用的服务的运行状态,当监听到在任意链路节点被调用的服务的运行状态为异常时,将采样标识修改为有效值,以利用被修改为有效值的采样标识在调用链路中的传递,触发调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。本申请实施例通过添加采样标识在调用的服务出现异常时强制采集运行数据,并将必须采集的采样标识反馈给上游或下游服务,以完成对异常链路的运行数据的采集。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理的方法、装置和存储介质。
背景技术
随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要一些可以帮助理解系统行为、用于分析性能问题的工具,以便发生故障的时候,能够快速定位和解决问题。因此,分布式全链路监控应用而生。具体的,分布式全链路监控的方式就是记录用户的所有请求、每一条请求经过的所有服务、以及路径中的参数等其它信息。为了方便寻找出问题的链路,目前大多数公司都采用全采样的模式采集数据,但若在流量很大时,全部记录会造成公司巨大的存储压力与存储成本。另外,若在各个节点采用随机采样的方式,可能会造成用户请求链路的残缺,遗漏一些异常链路。
发明内容
本申请实施例提供了一种数据处理的方法,克服了分布式链路中在各个节点进行随机采样,形成的用户链路不完整且可能遗漏异常链路的问题。
该方法包括:
将接收到的用户请求中携带的采样标识赋值为无效值,其中,所述无效值不同于用于触发所述服务采集运行数据并返回所述采样标识的有效值;
在所述用户请求沿调用链路的顺序调用所述服务的期间内,监听在所述调用链路中的各链路节点被调用的所述服务的运行状态;
当监听到在任意所述链路节点被调用的所述服务的所述运行状态为异常时,将所述采样标识修改为所述有效值,以利用被修改为所述有效值的所述采样标识在所述调用链路中的传递,触发所述调用链路中以所述运行状态为异常的所述服务为起始的运行数据的采集上报。
可选地,根据采样配置率,确定接收到的所述用户请求意图调用的所述服务的采样空闲水平;
当确定的采样空闲水平不低于预设阈值时,产生用于为采样标识赋值的随机数,其中,所述随机数包括所述无效值和所述有效值。
可选地,由所述用户请求携带所述唯一请求标识,沿调用链路顺序在各个所述链路节点间传递,并在上报的所述运行数据中携带所述唯一请求标识。
可选地,修改调用所述服务的至少一个调用组件的字节码,并在所述调用组件中添加用于监控所述运行数据的监控信息。
可选地,将接收到的所述运行数据按照所述唯一请求标识组成所述调用链路,并将所述调用链路进行展示。
在本发明的另一个实施例中,提供了一种数据处理的装置,该装置包括:
赋值模块,用于将接收到的用户请求中携带的采样标识赋值为无效值,其中,所述无效值不同于用于触发所述服务采集运行数据并返回所述采样标识的有效值;
监听模块,用于在所述用户请求沿调用链路的顺序调用所述服务的期间内,监听在所述调用链路中的各链路节点被调用的所述服务的运行状态;
修改模块,用于当监听到在任意所述链路节点被调用的所述服务的所述运行状态为异常时,将所述采样标识修改为所述有效值,以利用被修改为所述有效值的所述采样标识在所述调用链路中的传递,触发所述调用链路中以所述运行状态为异常的所述服务为起始的运行数据的采集上报。
可选地,所述装置进一步包括:
确定模块,用于根据采样配置率,确定接收到的所述用户请求意图调用的所述服务的采样空闲水平;
生成模块,用于当确定的采样空闲水平不低于预设阈值时,产生用于为采样标识赋值的随机数,其中,所述随机数包括所述无效值和所述有效值。
可选地,所述装置进一步包括:
传递模块,用于由所述用户请求携带所述唯一请求标识,沿调用链路顺序在各个所述链路节点间传递,并在上报的所述运行数据中携带所述唯一请求标识。
可选地,所述修改模块还用于:
修改调用所述服务的至少一个调用组件的字节码,并在所述调用组件中添加用于监控所述运行数据的监控信息。
可选地,所述装置进一步包括:
展示模块,用于将接收到的所述运行数据按照所述唯一请求标识组成所述调用链路,并将所述调用链路进行展示。
在本发明的另一个实施例中,提供了一种非瞬时计算机可读存储介质,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行上述一种数据处理的方法中的各个步骤。
在本发明的另一个实施例中,提供了一种终端设备,包括处理器,所述处理器用于执行上述一种数据处理的方法中的各个步骤。
基于上述实施例,首先将接收到的用户请求中携带的采样标识赋值为无效值,其中,无效值不同于用于触发服务采集运行数据并返回采样标识的有效值,其次,在用户请求沿调用链路的顺序调用服务的期间内,监听在调用链路中的各链路节点被调用的服务的运行状态,最后,当监听到在任意链路节点被调用的服务的运行状态为异常时,将采样标识修改为有效值,以利用被修改为有效值的采样标识在调用链路中的传递,触发调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。本申请实施例通过添加采样标识在调用的服务出现异常时强制采集运行数据,并将必须采集的采样标识反馈给上游或下游服务,以完成对异常链路的运行数据的采集。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例100所提供的一种数据处理的方法的流程示意图;
图2示出了本申请实施例200提供的一种数据处理的方法的具体流程的示意图;
图3示出了本申请实施例300提供的分布式链路追踪系统的示意图;
图4示出了本申请实施例400提供的在调用链路中采集运行数据的示意图;
图5示出了本申请实施例500还提供一种数据处理的装置的示意图;
图6示出了本申请实施例600所提供的一种终端设备的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。
基于现有技术中的问题,本申请实施例提供了一种数据处理的方法,主要适用于互联网技术领域。通过在用户请求需要调用的各个服务间传递采样标识,并在服务异常时修改采样标识的赋值,使得在此赋值下必须采集所调用的服务的运行数据。基于采样标识的赋值采集异常服务的运行数据。下面以具体实施例对本发明的技术方案进行详细说明,以实现一种数据处理的方法。以下的几个具体实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。如图1所示,为本申请实施例100提供的一种数据处理的方法的流程示意图。其中,详细步骤如下:
S11,将接收到的用户请求中携带的采样标识赋值为无效值,其中,无效值不同于用于触发服务采集运行数据并返回采样标识的有效值。
本步骤中,一般在分布式微服务系统中,用户终端的请求操作可能需要经过系统中多个服务模块、多个中间件、多台机器的相互协作和调用才能执行完成。本申请实施例通过为用户请求添加采样标识,并由用户请求携带该采样标识在各个调用的服务之间进行传递。因此,在接收到用户请求时,为用户请求添加采样标识,并随机生成采样标识的赋值。进一步地,当接收到的用户请求携带的采样标识的赋值不是必须采样的有效值时,此时的任意的随机数均为无效值。其中,与无效值相对的,有效值用于触发服务采集运行数据并返回采样标识。有效值为设定值。
S12,在用户请求沿调用链路的顺序调用服务的期间内,监听在调用链路中的各链路节点被调用的服务的运行状态。
本步骤中,调用链路的顺序为用户请求需要调用的服务的前后顺序,如某个用户请求需要调用A、B、C和D四个服务,调用的前后顺序为A至B,B至C,B至D,则该顺序同时也是调用链路的顺序。进一步地,在用户请求沿调用链路的顺序调用各个服务的期间内,用户请求每至即将调用的服务所在的各个链路节点时,监听该链路节点被调用的服务的运行状态。其中,运行状态为各个链路节点的服务当前的服务状态,包括异常状态和正常状态。
S13,当监听到在任意链路节点被调用的服务的运行状态为异常时,将采样标识修改为有效值,以利用被修改为有效值的采样标识在调用链路中的传递,触发调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。
本步骤中,用户请求携带的采样标识沿调用链路在各个链路节点上的服务之间传递。当在监听到调用链路上任意节点的服务的运行状态为异常时,将用户请求携带的采样标识修改为有效值。可选地,当传递到该运行状态位异常的服务所在的链路节点的采样标识的赋值为有效值时,强制采集该链路节点的服务的运行数据。进一步地,该链路节点将采集的运行数据和采样标识传递给上游的链路节点,并强制采集上游节点的运行数据,以实现在调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。
如上所述,基于上述实施例,首先将接收到的用户请求中携带的采样标识赋值为无效值,其中,无效值不同于用于触发服务采集运行数据并返回采样标识的有效值,其次,在用户请求沿调用链路的顺序调用服务的期间内,监听在调用链路中的各链路节点被调用的服务的运行状态,最后,当监听到在任意链路节点被调用的服务的运行状态为异常时,将采样标识修改为有效值,以利用被修改为有效值的采样标识在调用链路中的传递,触发调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。本申请实施例通过添加采样标识在调用的服务出现异常时强制采集运行数据,并将必须采集的采样标识反馈给上游或下游服务,以完成对异常链路的运行数据的采集。
如图2所示,为本申请实施例200提供的一种数据处理的方法的具体流程的示意图。其中,该具体流程的详细过程如下:
S201,确定采样配置率。
这里,采样配置率用于确定需要采集运行数据的用户请求。可选地,采样率配置值可以动态配置,可以根据业务资源的情况酌情提高与降低用户请求的调用链路的采样率。如可以根据业务需要在10个用户请求对应的调用链路中确定需要采集其中5条调用链路的运行数据。
S202,基于采样配置率为用户请求的采样标识赋值。
这里,根据采样配置率,确定接收到的用户请求意图调用的服务的采样空闲水平;当确定的采样空闲水平不低于预设阈值时,产生用于为采样标识赋值的随机数,其中,随机数包括无效值和有效值。可选地,将与用户请求的链路追踪相关的身份标识(IdentityDocument,ID)、方法名、采样标识、上游服务信息等存储打包,并部署在服务器上,在用户项目启动时,与业务包一起请求调用服务。其中,采样标识的赋值由当前接收到的用户意图调用的服务的采样空闲水平和采样配置率决定,若必须采样则为有效值,若无需采样则为无效值。采样空闲水平的预设阈值基于业务需要设置。
S203,在接收到用户请求时生成唯一请求标识,并在链路节点之间传递该唯一请求标识。
这里,每个用户请求对应有唯一请求标识,在接收到用户请求时即为该用户请求生成唯一请求标识。进一步地,由用户请求携带唯一请求标识,沿调用链路顺序在各个链路节点间传递,并在上报的运行数据中携带唯一请求标识。
S204,将接收到的用户请求中携带的采样标识赋值为无效值。
这里,根据采样配置率,将接收到的用户请求中携带的采样标识赋值为无效值。因已携带有赋值为有效值的采样标识的用户请求一定会采集调用的服务的运行数据,此时只考虑将接收到的用户请求中携带的采样标识的赋值为无效值的情况。其中,无效值不同于用于触发服务采集运行数据并返回采样标识的有效值。
S205,在用户请求沿调用链路的顺序调用服务的期间内,监听在调用链路中的各链路节点被调用的服务的运行状态。
这里,各个用户请求在沿着对应的调用链路的顺序调用服务的期间内,在准备调用链路节点的服务时,监听该链路节点的服务的运行状态为正常还是异常状态。
S206,当监听到在任意链路节点被调用的服务的运行状态为异常时,将采样标识修改为有效值。
这里,当监听到任意链路节点中被调用的服务的运行状态为异常时,一般可以确定该条调用链路为异常链路,需要强制采集运行数据。此时,将用户请求携带的采样标识的赋值修改为有效值。
S207,利用被修改为有效值的采样标识在调用链路中的传递,触发调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。
本步骤中,当用户请求携带的采样标识的赋值为有效值时,则需要在当前链路节点上采集服务的运行数据。进一步地,将当前采集的运行数据和采样标识一齐回传至当前链路节点的上游的链路节点。此时,上游的链路节点在接收到回传的赋值为有效值的采样标识后,在本链路节点采集运行数据。若在本链路节点还存在下游的链路节点时,将当前赋值为有效值的采样标识传递给下游的链路节点,以在下游的链路节点采集服务的运行数据,并将采样标识一齐回传至上游的链路节点。以此类推,触发调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。其中,在每个链路节点上的服务中采集完成运行数据后,各个服务将采集的运行数据分别上报。
另外,在调用链路中的各个服务之间进行调用时,为了监控所有的服务间的调用关系,分别对所有的http调用组件(如HttpClient,OKHttp等)与远程过程调用(RemoteProcedure Call,RPC)调用组件(如GRPC,Dubbo等)进行字节码增强。可选地,修改调用服务的至少一个调用组件的字节码,并在调用组件中添加用于监控运行数据的监控信息。例如对Dubbo调用组件的增强是使用MonitorFilter作为切入点进行处理的,在修改MonitorFilter字节码时,在该类的invoke方法的前面与后面分别进行一些调用链路的业务处理,类似于静态代理技术,通常有统计方法的执行时间、方法名、传递采样参数、入出参数等。使用字节码增强方法可以将对业务方代码的侵入性降到最低,即实现在业务方在无感知的情况下进行调用链路的追踪。
S208,将接收到的运行数据按照唯一请求标识组成调用链路,并将调用链路进行展示。
这里,在调用链路中的所有服务的运行数据均被上报后,基于用户请求的唯一请求标识,将唯一请求标识相同的运行数据收集起来。通过唯一请求标识可以组成一条完整的调用链路,并在最终的数据展示模块展示调用链路,以进行线上问题的排查分析。
S209,当监听到在任意链路节点被调用的服务的运行状态为正常时,保持采样标识,并不采集调用链路上的各个服务的运行数据。
本申请基于上述步骤实现上述一种数据处理的方法。基于开放分布式追踪(OpenTracing)协议的链路追踪系统。其中,在该系统中使用Span来表示一次服务的调用,而将用户请求在一个服务上调用的所有span组成一个组,称之为segment。运行数据的发送是以segment维度来发送的。如图3所示,为本申请实施例300提供的分布式链路追踪系统的示意图。基于采样配置率,在A或B、C、D服务之间组成的调用链路中采集运行数据,发送一次数据就是包含多个span的segment。在运行数据采集模块将采集到的运行数据通过kafka或其它消息中间件上报给链路数据分析端进行数据汇总,以执行特征提取、异常报警、数据存储和数据分析等。在一个用户请求中经过的所有span中都包含唯一请求标识,通过唯一请求标识可以组成一条完整的调用链路,最终在调用链路展示模块进行调用链路的搜索和展示,供软件工程师进行线上问题的排查分析。
本申请实施例中所示出的分布式链路追踪系统的监控是基于各个用户请求的,用户的每一次用户请求都会生成一条调用链路。若面对一个用户量较大的业务系统,每天产生的调用链路的数量是惊人的,大量的调用链路的数据不仅会给业务方的服务器造成很大的计算与网络压力,同时也会给数据收集端造成很大的存储与网络压力。对于稳定的线上服务来说,每天的异常数据的数量是有限的,全部收集用户的每条调用链路的信息并不实用,较为重要的是收集少量的正确的调用链路以及所有的异常链路信息。因此需要对调用链路的信息进行采样收集,通过采样配置率确定需要收集的调用链路。为了降低对全链路的存储压力,该方案使用采样的方式对全链路进行存储。考虑到开发人员关心的都是异常链路,因此必须对异常链路进行全部收集。为了保证用户请求链路的完整性,需要在不同服务进行RPC的时候需要传递是否采集的采样标识,同时需要上下游进行反馈,例如常用的RPC或者http,基于采样配置率,在入口服务处使用随机函数针对该用户请求进行采样,如果捕捉到该用户请求的采样标识的赋值为必须采集的有效值时,则通过RPC请求上游的服务的时候将采样标识通过包头传递,上游的服务的运行数据也会采集。如果上游的某个服务出现问题,这需要通过通知下游的服务的运行数据必须收集,即上游反馈下游。这样可以保证在随机采样的情况下,对有异常的服务的链路数据均进行采集。
如图4所示,为本申请实施例示出的在调用链路中采集运行数据的示意图。其中,该后台微服务主要有四个服务(A、B、C、D)组成,A为入口服务,所有用户请求都会经过A服务。A服务中产生了一次http调用,调用的是上游的B服务;B服务中产生了两次远程调用,一次为通过http调用上游的C服务,一次为通过RPC调用上游的D服务。其中C服务是故障服务,即返回的采样标识不符合预期,假设C抛出异常后仍然不影响对D的调用。在一次用户请求到来时,A服务收到请求后,使用根据配置中心中的采样率配置值来初始化采样标识S的赋值为false,来判断该条调用链路是否采集,其中false表示不采集,true表示采集。A通过请求头将采样标识S传递给B,B服务正常运行,在调用C服务时将采样标识传递给C。但是由于C服务出现异常,C服务强制采集该服务上的调用链路的数据,同时将S值修改为true,并通过返回值通知B。B收到上游的服务的返回结果后发现S值被修改为true了,则将B中的缓存的运行数据进行收集。B在调用D服务的时候直接根据请求头将S值传递过去,D服务的运行数据也会收集。最后B服务执行完成,将执行结果返回给A,同时携带S=true。服务A收到B的返回结果后发现S=true,则A将自己服务上的运行数据进行收集并上报。因此一条完整的调用链路就产生了。当所有的运行数据都上报到链路数据分析端后,即可根据调用链路的唯一请求标识来查询并展示该调用链路的详细信息。
假设一个请求到来A时,A收到请求后生成的采样参数为false,并且整个链路经过的所有服务都没有发生异常,则该调用链路将不会被采集,以降低该调用链路的数据消耗的网络、存储与计算资源。
本方案是基于OpenTracing协议来实现链路追踪的,为了降低对用户代码的侵入性,因此使用了字节码增强的方案,在用户毫无感知的情况下来收集链路信息。由于服务间相互调用都是使用http或者RPC的方式,因此主要针对这些调用组件进行字节码修改处理即可。为了要保证调用链路的完整性,在采样时要保证采样标识可以在上下游传递,即在下游的链路节点进行采样时要将采样参数传递给上游的链路节点,上游收到赋值为有效值的的采样参数后,对该调用链路进行收集,这个可以保证链路的完整性。当下游在往上游传递采样标识时,若上游的某个服务出现了问题,则在该服务异常的链路节点将该采样标识的赋值设置为的有效值。在将采样标识传递给上游的同时,也要将采样标识通过返回值包头或者信息体传递给下游,下游解析到为必采样,这将该服务上的运行数据收集。最终各个服务收集的数据通过消息中间件(例如:kafka)发送给链路数据分析端,链路数据分析端对数据处理后供用户查询展示。
基于同一发明构思,本申请实施例500还提供一种数据处理的装置,其中,如图5所示,该装置包括:
赋值模块51,用于将接收到的用户请求中携带的采样标识赋值为无效值,其中,无效值不同于用于触发服务采集运行数据并返回采样标识的有效值;
监听模块52,用于在用户请求沿调用链路的顺序调用服务的期间内,监听在调用链路中的各链路节点被调用的服务的运行状态;
修改模块53,用于当监听到在任意链路节点被调用的服务的运行状态为异常时,将采样标识修改为有效值,以利用被修改为有效值的采样标识在调用链路中的传递,触发调用链路中以运行状态为异常的服务为起始的运行数据的采集上报。
本实施例中,赋值模块51、监听模块52和修改模块53的具体功能和交互方式,可参见图1对应的实施例的记载,在此不再赘述。
可选地,该装置进一步包括:
确定模块54,用于根据采样配置率,确定接收到的用户请求意图调用的服务的采样空闲水平;
生成模块55,用于当确定的采样空闲水平不低于预设阈值时,产生用于为采样标识赋值的随机数,其中,随机数包括无效值和所述有效值。
可选地,该装置进一步包括:
传递模块56,用于由所述用户请求携带所述唯一请求标识,沿调用链路顺序在各个所述链路节点间传递,并在上报的所述运行数据中携带所述唯一请求标识。
可选地,修改模块53还用于:
修改调用服务的至少一个调用组件的字节码,并在调用组件中添加用于监控运行数据的监控信息。
可选地,该装置进一步包括:
展示模块57,用于将接收到的运行数据按照唯一请求标识组成调用链路,并将调用链路进行展示。
如图6所示,本申请的又一实施例600还提供一种终端设备,包括处理器601,其中,处理器601用于执行上述一种数据处理的方法的步骤。从图6中还可以看出,上述实施例提供的终端设备还包括非瞬时计算机可读存储介质602,该非瞬时计算机可读存储介质602上存储有计算机程序,该计算机程序被处理器601运行时执行上述一种数据处理的方法的步骤。实际应用中,该终端设备可以是一台或多台计算机,只要包括上述计算机可读介质和处理器即可。
具体地,该存储介质能够为通用的存储介质,如移动磁盘、硬盘和FLASH等,该存储介质上的计算机程序被运行时,能够执行上述的一种数据处理的方法中的各个步骤。实际应用中,所述的计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的,也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或多个程序被执行时,能够执行上述的一种数据处理的方法中的各个步骤。
根据本申请公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件,或者上述的任意合适的组合,但不用于限制本申请保护的范围。在本申请公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本申请附图中的流程图和框图,示出了按照本申请公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或者代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应该注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同附图中所标注的顺序发生。例如,两个连接地表示的方框实际上可以基本并行地执行,它们有时也可以按照相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或者流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本申请中。特别地,在不脱离本申请精神和教导的情况下,本申请的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,所有这些组合和/或结合均落入本申请公开的范围。
最后应说明的是:以上所述实施例,仅为本申请的具体实施方式,用以说明本申请的技术方案,而非对其限制,本申请的保护范围并不局限于此,尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行变更或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些变更、变化或者替换,并不使相应技术方案的本质脱离本申请实施例技术方案的精神和范围,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种数据处理的方法,其特征在于,包括:
将接收到的用户请求中携带的采样标识赋值为无效值,其中,所述无效值不同于用于触发所述服务采集运行数据并返回所述采样标识的有效值;
在所述用户请求沿调用链路的顺序调用所述服务的期间内,监听在所述调用链路中的各链路节点被调用的所述服务的运行状态;
当监听到在任意所述链路节点被调用的所述服务的所述运行状态为异常时,将所述采样标识修改为所述有效值,以利用被修改为所述有效值的所述采样标识在所述调用链路中的传递,触发所述调用链路中以所述运行状态为异常的所述服务为起始的运行数据的采集上报。
2.根据权利要求1所述的方法,其特征在于,在所述将接收到的用户请求中携带的采样标识赋值为无效值的步骤之前,所述方法进一步包括:
根据采样配置率,确定接收到的所述用户请求意图调用的所述服务的采样空闲水平;
当确定的采样空闲水平不低于预设阈值时,产生用于为采样标识赋值的随机数,其中,所述随机数包括所述无效值和所述有效值。
3.根据权利要求1所述的方法,其特征在于,所述在接收到所述用户请求时,所述用户请求生成唯一请求标识,所述唯一请求标识用于:
由所述用户请求携带所述唯一请求标识,沿调用链路顺序在各个所述链路节点间传递,并在上报的所述运行数据中携带所述唯一请求标识。
4.根据权利要求1所述的方法,其特征在于,所述触发所述调用链路中以所述运行状态为异常的所述服务为起始的运行数据的采集上报的步骤包括:
修改调用所述服务的至少一个调用组件的字节码,并在所述调用组件中添加用于监控所述运行数据的监控信息。
5.根据权利要求3所述的方法,其特征在于,在所述触发所述调用链路中以所述运行状态为异常的所述服务为起始的运行数据的采集上报的步骤之后,所述方法进一步包括:
将接收到的所述运行数据按照所述唯一请求标识组成所述调用链路,并将所述调用链路进行展示。
6.一种数据处理的装置,其特征在于,所述装置包括:
赋值模块,用于将接收到的用户请求中携带的采样标识赋值为无效值,其中,所述无效值不同于用于触发所述服务采集运行数据并返回所述采样标识的有效值;
监听模块,用于在所述用户请求沿调用链路的顺序调用所述服务的期间内,监听在所述调用链路中的各链路节点被调用的所述服务的运行状态;
修改模块,用于当监听到在任意所述链路节点被调用的所述服务的所述运行状态为异常时,将所述采样标识修改为所述有效值,以利用被修改为所述有效值的所述采样标识在所述调用链路中的传递,触发所述调用链路中以所述运行状态为异常的所述服务为起始的运行数据的采集上报。
7.根据权利要求6所述的装置,其特征在于,所述装置进一步包括:
确定模块,用于根据采样配置率,确定接收到的所述用户请求意图调用的所述服务的采样空闲水平;
生成模块,用于当确定的采样空闲水平不低于预设阈值时,产生用于为采样标识赋值的随机数,其中,所述随机数包括所述无效值和所述有效值。
8.根据权利要求6所述的装置,其特征在于,所述装置进一步包括:
传递模块,用于由所述用户请求携带所述唯一请求标识,沿调用链路顺序在各个所述链路节点间传递,并在上报的所述运行数据中携带所述唯一请求标识。
9.一种非瞬时计算机可读存储介质,其特征在于,所述非瞬时计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如权利要求1至5任一项所述的一种数据处理的方法中的各个步骤。
10.一种终端设备,其特征在于,包括处理器,所述处理器用于执行如权利要求1至5中任一项所述的一种数据处理的方法中的各个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911355159.4A CN111176941B (zh) | 2019-12-25 | 2019-12-25 | 一种数据处理的方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911355159.4A CN111176941B (zh) | 2019-12-25 | 2019-12-25 | 一种数据处理的方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111176941A true CN111176941A (zh) | 2020-05-19 |
CN111176941B CN111176941B (zh) | 2023-11-14 |
Family
ID=70657940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911355159.4A Active CN111176941B (zh) | 2019-12-25 | 2019-12-25 | 一种数据处理的方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111176941B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666342A (zh) * | 2020-06-04 | 2020-09-15 | 重庆英楼维兴信息科技有限公司 | 一种基于微服务架构的数据采样方法及相关装置 |
CN112437155A (zh) * | 2020-11-20 | 2021-03-02 | 北京健康之家科技有限公司 | 服务数据的处理方法、装置以及服务端设备 |
CN113064790A (zh) * | 2021-03-15 | 2021-07-02 | 上海浦东发展银行股份有限公司 | 基于配置中心的调用链数据采集系统、方法及存储介质 |
CN113760636A (zh) * | 2020-09-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种检测微服务架构中故障的方法、装置和存储介质 |
CN114928530A (zh) * | 2022-04-24 | 2022-08-19 | 中国工商银行股份有限公司 | 链路信息采集方法及相关装置 |
WO2023125053A1 (zh) * | 2021-12-30 | 2023-07-06 | 中兴通讯股份有限公司 | 数据采集方法、装置、电子设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174972A (zh) * | 2006-11-03 | 2008-05-07 | 盛趣信息技术(上海)有限公司 | 一种采集和统计分析数据的系统和方法 |
WO2017181783A1 (zh) * | 2016-04-20 | 2017-10-26 | 中兴通讯股份有限公司 | 虚拟化服务监控方法和装置 |
CN107682451A (zh) * | 2017-10-31 | 2018-02-09 | 中冶华天工程技术有限公司 | 一种远程信息传输方法 |
CN108205486A (zh) * | 2017-12-26 | 2018-06-26 | 上海中畅数据技术有限公司 | 一种基于机器学习的智能分布式调用链跟踪方法 |
CN108984404A (zh) * | 2018-07-11 | 2018-12-11 | 江苏满运软件科技有限公司 | 一种异常信息处理方法及系统,一种计算机产品 |
CN109542639A (zh) * | 2018-11-06 | 2019-03-29 | 用友网络科技股份有限公司 | 一种保障微服务调用数据一致性的处理方法、处理装置 |
-
2019
- 2019-12-25 CN CN201911355159.4A patent/CN111176941B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101174972A (zh) * | 2006-11-03 | 2008-05-07 | 盛趣信息技术(上海)有限公司 | 一种采集和统计分析数据的系统和方法 |
WO2017181783A1 (zh) * | 2016-04-20 | 2017-10-26 | 中兴通讯股份有限公司 | 虚拟化服务监控方法和装置 |
CN107682451A (zh) * | 2017-10-31 | 2018-02-09 | 中冶华天工程技术有限公司 | 一种远程信息传输方法 |
CN108205486A (zh) * | 2017-12-26 | 2018-06-26 | 上海中畅数据技术有限公司 | 一种基于机器学习的智能分布式调用链跟踪方法 |
CN108984404A (zh) * | 2018-07-11 | 2018-12-11 | 江苏满运软件科技有限公司 | 一种异常信息处理方法及系统,一种计算机产品 |
CN109542639A (zh) * | 2018-11-06 | 2019-03-29 | 用友网络科技股份有限公司 | 一种保障微服务调用数据一致性的处理方法、处理装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666342A (zh) * | 2020-06-04 | 2020-09-15 | 重庆英楼维兴信息科技有限公司 | 一种基于微服务架构的数据采样方法及相关装置 |
CN111666342B (zh) * | 2020-06-04 | 2023-08-18 | 重庆英楼维兴信息科技有限公司 | 一种基于微服务架构的数据采样方法及相关装置 |
CN113760636A (zh) * | 2020-09-24 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种检测微服务架构中故障的方法、装置和存储介质 |
CN112437155A (zh) * | 2020-11-20 | 2021-03-02 | 北京健康之家科技有限公司 | 服务数据的处理方法、装置以及服务端设备 |
CN112437155B (zh) * | 2020-11-20 | 2024-02-20 | 北京水滴科技集团有限公司 | 服务数据的处理方法、装置以及服务端设备 |
CN113064790A (zh) * | 2021-03-15 | 2021-07-02 | 上海浦东发展银行股份有限公司 | 基于配置中心的调用链数据采集系统、方法及存储介质 |
CN113064790B (zh) * | 2021-03-15 | 2023-08-11 | 上海浦东发展银行股份有限公司 | 基于配置中心的调用链数据采集系统、方法及存储介质 |
WO2023125053A1 (zh) * | 2021-12-30 | 2023-07-06 | 中兴通讯股份有限公司 | 数据采集方法、装置、电子设备及存储介质 |
CN114928530A (zh) * | 2022-04-24 | 2022-08-19 | 中国工商银行股份有限公司 | 链路信息采集方法及相关装置 |
CN114928530B (zh) * | 2022-04-24 | 2024-04-09 | 中国工商银行股份有限公司 | 链路信息采集方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111176941B (zh) | 2023-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111176941B (zh) | 一种数据处理的方法、装置和存储介质 | |
US11500757B2 (en) | Method and system for automatic real-time causality analysis of end user impacting system anomalies using causality rules and topological understanding of the system to effectively filter relevant monitoring data | |
CN110995468B (zh) | 待分析系统的系统故障处理方法、装置、设备和存储介质 | |
CN112035317B (zh) | 一种微服务链路监控方法、装置、设备及介质 | |
CN110309029B (zh) | 异常数据的采集方法、装置、计算机设备和存储介质 | |
CN107704360B (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN108462598B (zh) | 一种日志生成方法、日志分析方法及装置 | |
CN111008105A (zh) | 一种分布式系统调用关系可视化方法及装置 | |
CN114745295A (zh) | 数据采集方法、装置、设备和可读存储介质 | |
CN111177094A (zh) | 日志数据处理方法、装置、电子设备及存储介质 | |
CN109802842B (zh) | 应用拓扑的生成方法及相关设备 | |
CN114422386B (zh) | 一种微服务网关的监测方法及装置 | |
CN109951326B (zh) | 数据处理方法、装置、存储介质及处理器 | |
CN112235128B (zh) | 一种交易路径分析方法、装置、服务器及存储介质 | |
CN112527619A (zh) | 一种基于有向无环图结构的分析链路调用方法及系统 | |
CN114610689B (zh) | 一种分布式环境中请求日志的记录和分析方法 | |
CN114598622B (zh) | 数据监控方法及装置、存储介质、计算机设备 | |
CN114385457A (zh) | 应用程序数据采集方法、装置、设备及存储介质 | |
CN112596974A (zh) | 一种全链路监控方法、装置、设备和存储介质 | |
CN113132143B (zh) | 服务调用追踪方法及相关产品 | |
CN113114612B (zh) | 分布式系统调用链的确定方法和装置 | |
CN113778800B (zh) | 一种报错信息处理方法、装置、系统、设备及存储介质 | |
CN113434399B (zh) | 业务节点日志的处理方法和装置、存储介质及电子装置 | |
CN115391127A (zh) | 一种拨测方法、装置、存储介质及芯片 | |
CN116932353A (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 |