CN113067717A - 网络请求日志链式跟踪方法、全链路调用监控系统和介质 - Google Patents

网络请求日志链式跟踪方法、全链路调用监控系统和介质 Download PDF

Info

Publication number
CN113067717A
CN113067717A CN202011520840.2A CN202011520840A CN113067717A CN 113067717 A CN113067717 A CN 113067717A CN 202011520840 A CN202011520840 A CN 202011520840A CN 113067717 A CN113067717 A CN 113067717A
Authority
CN
China
Prior art keywords
data
track
chain
calling
call
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202011520840.2A
Other languages
English (en)
Inventor
柳昆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kaixin Jinfu Nanjing Information Service Co ltd
Original Assignee
Kaixin Jinfu Nanjing Information Service Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kaixin Jinfu Nanjing Information Service Co ltd filed Critical Kaixin Jinfu Nanjing Information Service Co ltd
Priority to CN202011520840.2A priority Critical patent/CN113067717A/zh
Publication of CN113067717A publication Critical patent/CN113067717A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明涉及计算机软件技术领域,具体涉及一种网络请求日志链式跟踪方法、全链路调用监控系统和介质,所述方法包括对调用链单元进行打点标注形成树节点;通过调用链单元采集的数据信息,将调用链单元调用轨迹上的上下级调用关系的树节点构建成跟踪树;当跟踪树中的某个节点出现问题时则提供对应调用链单元的信息;本发明能够提升数据采集和转储的性能,打点机制能够避免因数据采集打点带来过大的工作量;同时将数据采集分为两部分,在外部系统发生故障时,不可影响宿主应用的稳定性;在应用时数据可完整、高效地转储,单节点发生故障不影响整体功能完整性;进一步通过存储服务监控功能,在数据转储端发生异常时,可及时被感知、处理。

Description

网络请求日志链式跟踪方法、全链路调用监控系统和介质
技术领域
本发明涉及计算机软件技术领域,具体涉及一种网络请求日志链式跟踪方法、全链路调用监控系统和介质。
背景技术
伴随着各个行业业务发展的需求,行业科技系统也向着更庞大更复杂的方向演进,尤其是近年来SOA架构(面向服务的架构(Service-OrientedArchitecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来,SOA是一种被广泛使用的分布式系统架构)和微服务架构的全面推进和普及,系统内包含的应用成倍增长,而对应整体系统的监控运维工作的复杂程度则成指数级增长。
为了定位产线系统的应用运行问题和管控运行情况,需要对系统中的各个应用产生的行为日志和告警日志进行监控,传统的运维在出现问题之后去定位错误日志,如果涉及到其他应用的RPC((Remote Procedure Call)远程过程调用,为一个应用节点请求另一个节点提供的服务)调用乃至多级链式的RPC调用,则需要利用业务主键、进程号等方式关联各个应用的日志,人工追溯调用链条,无法及时有效的响应产线问题,更无法对系统运行情况进行及时的预计和快速的错误通知。
面对这种层级多、分散程度高、服务间相互调用复杂的系统,系统建设者和运维方期望能做到从前端请求到中台聚合到后台响应,端到端的全链路监控,做到快速定位问题、预警系统不健康状态,此为本发明想要解决的实际问题。
当前针对SOA或微服务架构的集群系统,行业内很多公司或团队还停留在传统的日志分析和监控阶段,集群系统内部存在大量的独立部署的应用和组件,它们以各自的业务进程、各自的方式生成行为日志或错误日志。
在对外部发起的单个或一组请求的异常反馈做分析时,系统运维人员往往需要登录到特定主机/容器内,对相关应用/组件的日志进行分析,而问题往往不是发生在最外层的层级或最开始的应用,所以需要逐级往下、挨个应用的查找日志定位问题。
随着集群系统中的应用越来越多,为了方便监控告警日志和查找问题,主流方案会将各个应用宿主环境中的日志进行汇总,利用大数据技术构建一个公用的监测数据收集、预警及展现的运维产品。
无论是采用以上的哪种方案,都无可避免的出现“数据孤岛”的情况,因为缺乏将各个内部应用的日志关联起来的手段,在实际产线运维中将会出现如下问题:
1、传统的日志监控方式粒度粗大,无法内窥至方法内部,故障定位成本高昂;
2、随着服务化改造的推进,系统间交互复杂度呈指数级提升,传统监控系统聚焦单个系统而非全局,无法构建由用户操作入口至底层服务间的监控链路,在定位问题时往往难以回溯到根源应用;
3、性能优化方面,传统的监控方式和手段也无法对完整调用链进行全局、分段式性能分析,无法为系统性能优化提供基准数据支撑。
发明内容
本发明所要解决的技术问题是:提供一种构建树状结构的调用关联关系解决从前端请求到后端响应的缺乏调用链的关系维护的网络请求日志链式跟踪方法、全链路调用监控系统和介质。
为了解决上述技术问题,本发明采用的第一种技术方案为:
一种网络请求日志链式跟踪方法,包括
对调用链单元进行打点标注形成树节点;
通过调用链单元采集的数据信息,将调用链单元调用轨迹上的上下级调用关系的树节点构建成跟踪树;
当跟踪树中的某个节点出现问题时则提供对应调用链单元的信息。
优选的,所述“打点标注”采用框架层面的拦截器或埋点植入。
优选的,所述植入是通过在每一次的应用内和应用外的调用中,利用编程语言AOP机制和注解机制的代码植入。
优选的,所述调用链单元采集的数据信息包括轨迹ID和方法ID;
所述轨迹ID是轨迹全局的标识,单次请求从请求入口到响应返回,使用该字段进行标识;
所述方法ID是用于标注当前方法层级ID,基于该标识可区分方法与方法间的关系;
优选的,所述方法ID关系包括父子关系、兄弟关系,所述方法ID基于层级关系对其进行编码。
优选的,所述调用链单元包括轨迹数据、调用方法信息、父方法信息、服务耗时以及当前业务上下文信息。
为了解决上述技术问题,本发明采用的第二种技术方案为:
一种全链路调用监控系统,包括
数据采集客户端,使用上述的方法对应用组件的日志进行调用关系的标注,提供调用链数据采集服务,并将轨迹数据落地至本地文件系统;
数据传输端,通过将轨迹数据进行接收、规整化、存储至数据库和检索服务器内;以及
显示端,提供调用链检索、调用链展示及存储服务监控功能。
优选的,所述“轨迹数据落地至本地文件系统”包括:所述轨迹数据基于开源日志组件落地至本地文件系统,同时使用源日志组件异步附加目的地,将采集到的轨迹数据异步上报至处理平台中。
优选的,所述数据库包括:存储全量轨迹数据,单条调用链的所有轨迹数据均存储于一条记录中,主键为轨迹ID;
所述检索服务器包括存储业务上下文数据信息与轨迹ID数据的映射关系,基于检索服务器索引机制,提供多维度的查询功能,基于业务上下文数据信息反查轨迹ID。
为了解决上述技术问题,本发明采用的第三种技术方案为:
一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述的网络请求日志链式跟踪方法。
本发明的有益效果在于:提升数据采集和转储的性能,打点机制能够避免因数据采集打点带来过大的工作量;同时将数据采集分为两部分,在外部系统发生故障时,不可影响宿主应用的稳定性;在应用时数据可完整、高效地转储,且支持水平扩展,单节点发生故障不影响整体功能完整性;进一步通过存储服务监控功能,在数据转储端发生异常时,可及时被感知、处理;提升工作效率。
附图说明
图1为本发明具体实施方式的一种全链路调用监控系统的构架图;
图2为本发明具体实施方式的一种方法ID的示例图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本申请中各缩写名词的解释:
AOP:Aspect Oriented Programming的缩写,意为面向切面编程;通过预编译方式和运行期间动态代理实现程序功能的统一维护和透明植入的一种技术;通常用于实现框架层面的拦截器或埋点植入。
RPC:(Remote Procedure Call)远程过程调用,为一个应用节点请求另一个节点提供的服务。
SOA:面向服务的架构(Service-OrientedArchitecture)是一个组件模型,它将应用程序的不同功能单元(称为服务)进行拆分,并通过这些服务之间定义良好的接口和协议联系起来;SOA是一种被广泛使用的分布式系统架构。
Talos:基于本发明(日志链式跟踪方法)构建的全链路调用监控系统。
调用链单元:是本发明记录调用关系的日志标签单元,里面的结构主要包含spanName和spanId(当前id和父级id)。
实施例一
一种网络请求日志链式跟踪方法,包括
对调用链单元进行打点标注形成树节点;
通过调用链单元采集的数据信息,将调用链单元调用轨迹上的上下级调用关系的树节点构建成跟踪树;
当跟踪树中的某个节点出现问题时则提供对应调用链单元的信息。
所述“打点标注”采用框架层面的拦截器或埋点植入。
所述植入是通过在每一次的应用内和应用外(RPC层级,在我们利用了基于AOP机制实现的拦截器之后,我们甚至不需要改动到现有的PRC框架)的调用中,打点标注当前的调用链单元。
实施例二
参照图1和图2,一种全链路调用监控系统,包括
数据采集客户端,使用权利要求实施例一所述的方法对应用组件的日志进行调用关系的标注,提供调用链数据采集服务,并将轨迹数据落地至本地文件系统;
数据传输端,通过将轨迹数据进行接收、规整化、存储至数据库和检索服务器内;以及
显示端,提供调用链检索、调用链展示及存储服务监控功能。
其中
所述数据采集客户端(TalosAgent)基于AOP技术,宿主应用只需简单配置、注解标注即可完成数据采集打点工作,学习成本、实施成本极低;
轨迹数据最终基于Logback(开源日志组件)落地至本地文件系统(具体通过跟踪日志(Trace Log)进行日志收集),同时使用Logback(Kafka4Logback)异步Appender(附加目的地),将采集到的轨迹数据异步上报至Kafka(处理平台)中,在保证高性能的前提下,可确保在Kafka发生故障的情况下,对应用无任何影响;
提供了数据采样率机制,在系统压力极大地场景下,可通过调小采样率,降低系统压力;
支持Dubbo、Http/Https、MQ等跨系统链接中间件、组件的轨迹元数据传递;
Talos采集的数据维度如下:
轨迹ID(spanId):轨迹全局唯一标识,单次请求从请求入口到响应返回,均使用该字段进行标识。
方法ID(serviceId):用于标注当前方法层级ID,基于该标识可区分方法与方法间的关系,关系包括但不限于:父子关系、兄弟关系,参照图2,在图2中,MethodA与MethodB、MethodC为父子关系,而MethodB与MethodC为兄弟关系,MethodC与MethodD亦为父子关系,基于层级关系对其进行编码,可更为高效地标注方法的调用关系;
父方法ID(parentServiceId):用于标注当前方法父方法的层级ID;
服务短名(serviceName):短类名+方法名;
服务耗时(duration):当前服务耗时(单位:毫秒);
服务异常标志(exceptionFlag):当前服务调用是否发生异常;
错误码(exceptionCode):当前服务发生异常,错误码、异常类型等数据;
业务上下文数据(context):存储当前服务调用时的关键业务上下文键值对,为后续轨迹搜索提供索引数据。
所述数据传输端通过数据转储端将投递至Kafka的轨迹数据进行接收、规整化、存储至HBase(数据库)(采用Kafka2HBase即Hbase数据存储服务端进行服务)及ElasticSearch(搜索服务器,采用Kafka2ES即ElasticSearch数据存储服务端进行服务);所述数据传输端其功能合并在数据转储端组件中。其两者的存储目标及分工如下:
ElasticSearch存储Context,数据与轨迹ID数据的映射关系,基于ElasticSearch的高效索引机制,可提供多维度的查询功能,基于Context反查轨迹ID;
HBase存储全量轨迹数据,且基于HBase特性,单条调用链的所有轨迹数据均存储于一条记录中,主键为轨迹ID;
数据转储端做为StandAlone(脱机)应用,为及时监测其存活状态、运行效率等数据,会定时地向数据展示面板应用上报心跳、采集效率等监测数据,结合预警机制,可在转储器故障发生时,快速发现、处理。
所述显示端(Talos DashBoard)包提供如下功能:
轨迹搜索功能:可基于业务上下文数据,如订单号、用户名、产品ID、URL等查询条件查询轨迹ID(轨迹列表);
轨迹详情查看:基于轨迹搜索功能查询获得的轨迹清单,可点击查看轨迹详情;
数据转储端监控数据查看:提供数据转储端监控数据查看,监控数据包括但不限于心跳、转储总笔数、转储失败笔数、转储效率(每60秒存储数据量)等。
综上所述,本发明的有益效果在于:本发明的系统构建方案,实现了低入侵、高性能、高可靠、自监控的链式追踪方法:
1、高性能
高性能需求在全链路调用监控系统建设中,主要体现在如下两方面:
客户端数据采集高性能:客户端数据采集性能损耗应保持在宿主应用整体性能损耗5%以内;
数据转储端高性能:数据可被及时、准确处理,避免出现数据展现、分析不及时地场景出现。
2、低侵入
数据采集客户端在宿主应用内的打点机制应足够透明,避免因数据采集打点带来过大的工作量。
3、高可靠
高可靠需求在全链路调用监控系统建设中,主要体现在如下两方面:
客户端数据采集高可靠性:客户端数据采集包括数据收集、上报两部分,其中上报功能涉及到外部系统通信,在外部系统发生故障时,不可影响宿主应用的稳定性;
数据转储端高可靠:数据可完整、高效地转储,且支持水平扩展,单节点发生故障不影响整体功能完整性。
4、自监控
数据转储端存活状态、存储效率、存储成功比等应当被监控,在数据转储端发生异常时,可及时被感知、处理。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种网络请求日志链式跟踪方法,其特征在于,包括
对调用链单元进行打点标注形成树节点;
通过调用链单元采集的数据信息,将调用链单元调用轨迹上的上下级调用关系的树节点构建成跟踪树;
当跟踪树中的某个节点出现问题时则提供对应调用链单元的信息。
2.根据权利要求1所述的网络请求日志链式跟踪方法,其特征在于,所述“打点标注”采用框架层面的拦截器或埋点植入。
3.根据权利要求2所述的网络请求日志链式跟踪方法,其特征在于,所述植入是通过在每一次的应用内和应用外的调用中,利用编程语言AOP机制和注解机制的代码植入。
4.根据权利要求1所述的网络请求日志链式跟踪方法,其特征在于,所述调用链单元采集的数据信息包括轨迹ID和方法ID;
所述轨迹ID是轨迹全局的标识,单次请求从请求入口到响应返回,使用该字段进行标识;
所述方法ID是用于标注当前方法层级ID,基于该标识可区分方法与方法间的关系。
5.根据权利要求4所述的网络请求日志链式跟踪方法,其特征在于,所述方法ID关系包括父子关系、兄弟关系,所述方法ID基于层级关系对其进行编码。
6.根据权利要求1-5任意一项所述的网络请求日志链式跟踪方法,其特征在于,所述调用链单元包括轨迹数据、调用方法信息、父方法信息、服务耗时以及当前业务上下文信息。
7.一种全链路调用监控系统,其特征在于,包括
数据采集客户端,使用权利要求1-6任意一项所述的方法对应用组件的日志进行调用关系的标注,提供调用链数据采集服务,并将轨迹数据落地至本地文件系统;
数据传输端,通过将轨迹数据进行接收、规整化、存储至数据库和检索服务器内;以及
显示端,提供调用链检索、调用链展示及存储服务监控功能。
8.根据权利要求7所述的全链路调用监控系统,其特征在于,所述“轨迹数据落地至本地文件系统”包括:所述轨迹数据基于开源日志组件落地至本地文件系统,同时使用源日志组件异步附加目的地,将采集到的轨迹数据异步上报至处理平台中。
9.根据权利要求7所述的全链路调用监控系统,其特征在于,所述数据库包括:存储全量轨迹数据,单条调用链的所有轨迹数据均存储于一条记录中,主键为轨迹ID;
所述检索服务器包括存储业务上下文数据信息与轨迹ID数据的映射关系,基于检索服务器索引机制,提供多维度的查询功能,基于业务上下文数据信息反查轨迹ID。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-6任一项所述的网络请求日志链式跟踪方法。
CN202011520840.2A 2020-12-21 2020-12-21 网络请求日志链式跟踪方法、全链路调用监控系统和介质 Pending CN113067717A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011520840.2A CN113067717A (zh) 2020-12-21 2020-12-21 网络请求日志链式跟踪方法、全链路调用监控系统和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011520840.2A CN113067717A (zh) 2020-12-21 2020-12-21 网络请求日志链式跟踪方法、全链路调用监控系统和介质

Publications (1)

Publication Number Publication Date
CN113067717A true CN113067717A (zh) 2021-07-02

Family

ID=76558602

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011520840.2A Pending CN113067717A (zh) 2020-12-21 2020-12-21 网络请求日志链式跟踪方法、全链路调用监控系统和介质

Country Status (1)

Country Link
CN (1) CN113067717A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116396A (zh) * 2021-11-29 2022-03-01 重庆富民银行股份有限公司 一种全链路追踪方法、系统、存储介质及设备
CN115294203A (zh) * 2022-10-09 2022-11-04 智道网联科技(北京)有限公司 电子地图的日志处理方法、设备和计算机可读存储介质
CN116346590A (zh) * 2023-05-30 2023-06-27 国网汇通金财(北京)信息科技有限公司 一种全链路故障的定位系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487596A (zh) * 2016-10-26 2017-03-08 宜人恒业科技发展(北京)有限公司 分布式服务跟踪实现方法
US20190361766A1 (en) * 2017-02-08 2019-11-28 Huawei Technologies Co., Ltd. System and Method for Failure Management Using Distributed Execution Traces
CN111078504A (zh) * 2019-12-25 2020-04-28 深圳前海环融联易信息科技服务有限公司 一种分布式调用链跟踪方法、装置、计算机设备及存储介质

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106487596A (zh) * 2016-10-26 2017-03-08 宜人恒业科技发展(北京)有限公司 分布式服务跟踪实现方法
US20190361766A1 (en) * 2017-02-08 2019-11-28 Huawei Technologies Co., Ltd. System and Method for Failure Management Using Distributed Execution Traces
CN111078504A (zh) * 2019-12-25 2020-04-28 深圳前海环融联易信息科技服务有限公司 一种分布式调用链跟踪方法、装置、计算机设备及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114116396A (zh) * 2021-11-29 2022-03-01 重庆富民银行股份有限公司 一种全链路追踪方法、系统、存储介质及设备
CN115294203A (zh) * 2022-10-09 2022-11-04 智道网联科技(北京)有限公司 电子地图的日志处理方法、设备和计算机可读存储介质
CN116346590A (zh) * 2023-05-30 2023-06-27 国网汇通金财(北京)信息科技有限公司 一种全链路故障的定位系统
CN116346590B (zh) * 2023-05-30 2023-07-25 国网汇通金财(北京)信息科技有限公司 一种全链路故障的定位系统

Similar Documents

Publication Publication Date Title
CN112653586B (zh) 基于全链路监控的时空大数据平台应用性能管理方法
US10810074B2 (en) Unified error monitoring, alerting, and debugging of distributed systems
CN113067717A (zh) 网络请求日志链式跟踪方法、全链路调用监控系统和介质
US20210049191A1 (en) Transforming a Data Stream into Structured Data
CN110457190B (zh) 一种基于区块链的全链路监控方法、装置及系统
CA2835446C (en) Data analysis system
CN108197261A (zh) 一种智慧交通操作系统
CN111339175B (zh) 数据处理方法、装置、电子设备及可读存储介质
US11960443B2 (en) Block data storage system in an event historian
US20070282470A1 (en) Method and system for capturing and reusing intellectual capital in IT management
US9842134B2 (en) Data query interface system in an event historian
CN105095052B (zh) Soa环境下的故障检测方法及装置
US20110314138A1 (en) Method and apparatus for cause analysis configuration change
CN103069749B (zh) 虚拟环境中的问题的隔离的方法和系统
US11323463B2 (en) Generating data structures representing relationships among entities of a high-scale network infrastructure
CN111245672A (zh) 一种通用可扩展的追踪业务全链路的监控方法及系统
CN103488793A (zh) 一种基于信息检索的用户行为监控方法
CN109460307B (zh) 基于日志埋点的微服务调用跟踪方法及其系统
US11605010B1 (en) Computer incident scoring
CN108959445A (zh) 分布式日志处理方法及装置
CN114780335A (zh) 监测数据的关联方法、装置、计算机设备和存储介质
CN105637488A (zh) 追踪源代码用于末端用户监控
CN107330017A (zh) 一种基于主题实例的电力海量数据存储和查询统计分析方法及其系统
CN114201540A (zh) 工业多源数据采集及存储系统
US20020026433A1 (en) Knowledge system and methods of business alerting and business analysis

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20210702