CN114978940A - 链路监控及告警方法、装置、计算机设备和存储介质 - Google Patents

链路监控及告警方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN114978940A
CN114978940A CN202210309639.2A CN202210309639A CN114978940A CN 114978940 A CN114978940 A CN 114978940A CN 202210309639 A CN202210309639 A CN 202210309639A CN 114978940 A CN114978940 A CN 114978940A
Authority
CN
China
Prior art keywords
link
log
file
class
service
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
Application number
CN202210309639.2A
Other languages
English (en)
Other versions
CN114978940B (zh
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.)
Guangzhou Xinjing Information Technology Service Co ltd
Original Assignee
Tiangong Xinchuang Guangzhou Information Technology 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 Tiangong Xinchuang Guangzhou Information Technology Co ltd filed Critical Tiangong Xinchuang Guangzhou Information Technology Co ltd
Priority to CN202210309639.2A priority Critical patent/CN114978940B/zh
Publication of CN114978940A publication Critical patent/CN114978940A/zh
Application granted granted Critical
Publication of CN114978940B publication Critical patent/CN114978940B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • 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
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/14Arrangements for monitoring or testing data switching networks using software, i.e. software packages
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/30Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information
    • H04L63/308Network architectures or network communication protocols for network security for supporting lawful interception, monitoring or retaining of communications or communication related information retaining data, e.g. retaining successful, unsuccessful communication attempts, internet access, or e-mail, internet telephony, intercept related information or call content

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提出一种链路监控及告警方法、装置、计算机设备和存储介质,该方法包括:将探针程序植入到应用程序中,运行植入后的应用程序;利用所述探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,根据所述服务监控数据生成每个业务请求对应的日志文件;将所述日志文件上传至日志中心。本申请通过在原代码中植入用于跟踪的探针代码,不需要涉及源代码的修改,实现了对源代码无感式插入,且实现了定制化定义拦截方法,具有较强的可扩展性。截获在网络交互过程中产生调用日志,部署便捷,效率高效,且做到了对产生的日志文件统一存储管理。

Description

链路监控及告警方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种链路监控及告警方法、装置、计算机设备和存储介质。
背景技术
在当前微服务分布式系统背景下,结合目前业务快速发展性以及复杂性,各业务系统对全链路追踪的要求性越来越高。
目前市面上有几种较多使用的APM组件,例如:Zinkin、skywalking、cat,这些组件虽然能够实现链路追求,但他们各自也存在相对的缺陷。
Zinkin组件属于轻量级,springcloud集成,但功能简单,只有链路监控,功能单一;Skywalking组件采集数据丰富,扩展性高,使用者多,支持中间件以及框架多,但在UI上查询起来相对不直观,需要二次改造,涉及较高的改造成本;CAT组件采集数据非常丰富,UI友好但存在代码入侵。
发明内容
为了解决现有技术中各种链路追踪组件功能不全面或存在不同缺陷的技术问题。本申请提供了一种链路监控方法、装置、设备和存储介质,其主要目的在于优化链路追踪。
为实现上述目的,本申请提供了一种链路监控方法,该链路监控方法包括:
将探针程序植入到应用程序中,运行植入后的应用程序;
利用探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,根据服务监控数据生成每个业务请求对应的日志文件;
将日志文件上传至日志中心。
为实现上述目的,本申请提供了一种链路告警方法,该链路告警方法包括:
从日志中心获取根据前面任一项的链路监控方法得到的日志文件;
对日志文件进行分析处理,得到分析结果;
显示分析结果;
其中,对日志文件进行分析处理,得到分析结果,包括:
从日志文件中提取出链路追踪ID,根据所链路追踪ID第一次的出现时刻和最后一次的出现时刻计算得到响应对应业务请求的第一耗时,
若第一耗时超过第一阈值,则判定响应业务请求的响应接口为慢响应接口,
从日志文件中提取出链路中每个节点的节点追踪ID,根据每个节点追踪ID第一次的出现时刻与对应的下一个节点第一次的出现时刻或响应结束时刻得到对应节点的第二耗时,
若第二耗时超过第二阈值,则判定对应节点为慢响应节点,
根据从日志文件中提取的错误日志,分析出出错节点及错误维度。
此外,为实现上述目的,本申请还提供了一种链路监控装置,该链路监控装置包括:
植入模块,用于将探针程序植入到应用程序中,运行植入后的应用程序;
监控模块,用于利用探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,根据服务监控数据生成每个业务请求对应的日志文件;
第一上传模块,用于将日志文件上传至日志中心。
此外,为实现上述目的,本申请还提供了一种链路告警装置,该链路告警装置包括:
日志拉取模块,用于从日志中心获取根据前面任一项的链路监控方法得到的日志文件;
分析模块,用于对日志文件进行分析处理,得到分析结果;
显示模块,用于显示分析结果;
其中,分析模块具体包括:
第一计算模块,用于从日志文件中提取出链路追踪ID,根据所链路追踪ID第一次的出现时刻和最后一次的出现时刻计算得到响应对应业务请求的第一耗时,
第一判定模块,用于若第一耗时超过第一阈值,则判定响应业务请求的响应接口为慢响应接口,
第二计算模块,用于从日志文件中提取出链路中每个节点的节点追踪ID,根据每个节点追踪ID第一次的出现时刻与对应的下一个节点第一次的出现时刻或响应结束时刻得到对应节点的第二耗时,
第二判定模块,用于若第二耗时超过第二阈值,则判定对应节点为慢响应节点,
错误分析模块,用于根据从日志文件中提取的错误日志,分析出出错节点及错误维度。
为实现上述目的,本申请还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,处理器执行计算机可读指令时执行如前面任一项的链路监控方法的步骤,或执行前面任一项的链路告警方法的步骤。
为实现上述目的,本申请还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行如前面任一项的链路监控方法的步骤,或执行前面任一项的链路告警方法的步骤。
本申请提出的链路监控及告警方法、装置、计算机设备和存储介质,针对每次请求处理过程中的全部服务调用详细记录,包括每次服务调用响应时间和错误信息,从而实现迅速定位业务场景中的每次请求响应失败的原因的效果,对业务代码的侵入性小,部署实现简单,数据采集和展示效率高。
采用字节码技术,可不需要涉及源代码的修改,对源代码无感式插入。通过在网络请求发送之前开启,进而截获在网络交互过程中产生调用日志,部署便捷,多种部署方式,效率高效,实时通知,实时修复,方便检查与恢复。通过字节码增强技术实现链路监控的可扩展、部署及零侵入。
字节码技术丰富的API对接入监控应用进行方法切入,根据插件的思想,使用插件实现对不同服务的方法增强,实现对各种服务的监控以及发送监控数据。本申请主要解决服务繁多无法全面监控、侵入式监控成本较高等相关问题,实现了无侵入式监控。
附图说明
图1为本申请一实施例中链路监控方法的流程示意图;
图2为本申请一实施例中链路监控装置的结构框图;
图3为本申请一实施例中计算机设备的内部结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为本申请一实施例中链路监控方法的流程示意图。参考图1,该链路监控方法包括以下步骤S100-S300。
S100:将探针程序植入到应用程序中,运行植入后的应用程序。
具体地,探针程序即代理插件。被测应用系统对应的应用程序启动后,在应用程序的代码加载过程中将探针程序植入应用程序中。
探针程序以jar包的形式安插在业务应用系统的应用程序中,在启动脚本中添加相应的参数实现探针程序与应用程序一起运行。
更具体地,可以使用JVM提供的Java虚拟机工具接口(JVMTI,Java VirtualMachine Tool Interface)技术结合字节码编制技术,将代理动态植入应用程序内部。
S200:利用探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,根据服务监控数据生成每个业务请求对应的日志文件。
具体地,利用该探针程序可以实现对业务层的监控分析并且将生成日志。业务系统每接收到一个业务请求都会调用对应的服务来响应业务请求并返回响应结果。本实施例通过探针程序可以跟踪并记录响应过程中各项耗时以及计算机资源使用情况,得到每个业务请求对应的服务监控数据。其中,服务监控数据包括计算机资源使用情况以及响应业务请求过程中的耗时、错误报告等不局限于此。
通过探针程序可以监控业务系统的数据库、缓存、网络层等各种不同目标对象的运行数据。
S300:将日志文件上传至日志中心。
具体地,业务系统每响应一个业务请求会生成对应的日志文件,并将日志文件上传至日志中心。存放路径例如可以为/data/logs/sniffer。日志中心可以为业务系统中的一部分,也可以为区别于业务系统的另外一个系统,用于存储大量的日志文件。
本实施例通过在原代码中植入用于跟踪的探针代码,不需要涉及源代码的修改,实现了对源代码无感式插入,且实现了定制化定义拦截方法,具有较强的可扩展性。截获在网络交互过程中产生调用日志,部署便捷,效率高效,且做到了对产生的日志文件统一存储管理。
在一个实施例中,步骤S100中将探针程序植入到应用程序中,包括:
初始化探针程序配置;
探寻探针程序所包含的插件;
加载所有插件及插件对应的配置信息;
定义转换器;
若监听到类加载事件,则触发对应的转换器,利用转换器的匹配规则和增强逻辑将对应插件中定义的拦截方法植入到类加载事件对应的类文件中,以生成增强的类文件。
具体地,在类加载时干预应用程序代码中该类对应的类文件(一种程序代码),植入必要的探针代码,来改变和重新定义类的行为,实现跟踪分业务请求以及性能信息。
探针主程序运行在Java应用程序main函数(服务入口)之前,探针主程序被应用程序加载启动后通过加载初始化配置来对探针程序进行初始化。通过插件探寻器探寻探针程序所包含的插件,加载所有插件以及所有插件的配置信息。其中,插件(Plugin)使用类全路径名称的方式,定义其增强方式,结合插件要实现的功能,灵活配置需要增强的类中的方法(类文件)。AgentBuilder用来生成java agent的类,定义transformer(转换器),每有一个类加载时,触发transformer的逻辑,对原来的类进行匹配和修改(增强)。Interceptor(拦截器)拦截到插件中定义的类或者方法后,在应用程序中指定的方法或类的前、后位置个性化增加拦截器中定义的拦截方法,目前所有的拦截主要用于全链路的一个组合及耗时追踪。Transformer(转换器)用于根据匹配规则和增强逻辑,实现将我们的扩展的增强API动态植入业务方法(类文件)前后。
本申请使用Agent技术构建一个独立于应用程序的代理程序(即Agent),用来协助监测、运行甚至替换其他JVM上的程序。使用它可以实现虚拟机级别的AOP功能。Agent分为两种,一种是在主程序之前运行的Agent,一种是在主程序之后运行的Agent。
在一个实施例中,利用转换器的匹配规则和增强逻辑将对应插件中定义的拦截方法植入到类加载事件对应的类文件中,以生成增强的类文件,包括:
将类加载事件对应的类文件编译为第一字节码文件,将对应插件的拦截器中定义的拦截方法编译为第二字节码文件;
利用转换器的匹配规则和增强逻辑将第二字节码文件植入到第一字节码文件中,以增强类文件。
具体地,第一字节码文件为应用程序原有的类文件的字节码代码。第二字节码文件加入第一字节码文件中后动态生成增强的类文件。
字节码(Byte-code)技术能够在Java程序运行时创建与修改 class 文件。它基于ASM框架实现,具有生成的代码更精简、速度更快的优点,实现了动态生成JAVA CLASS和JAVA AGENT代理等功能。通过ByteBuddy库简单、高效等特点,合理使用它的丰富的API,并进行二次开发,使其可以完美胜任服务端应用监控的需求。
在一个实施例中,步骤S100中将探针程序植入到应用程序中,还包括:
根据用户配置指定探针程序中第一参数的参数取值,其中,第一参数用于表征探针程序的日志跟踪明细程度,第一参数的参数取值为more或debug。
具体地,在应用系统中,指定集成探针主程序之后,随应用系统运行。同时还可以指定部分启动参数,例如指定启动参数中的第一参数的参数取值,以用来指定探针程序的日志跟踪明细程度。第一参数的参数取值为more时,则指定探针程序收集并生成详细的日志;第一参数的参数取值为debug时,则指定探针程序收集并生成的日志可以简略一些。
在一个实施例中,利用探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,包括:
通过探针程序中插件对应的监听器监听各个服务所调用的类;
若监听到对目标类的调用,则启动目标类所植入的拦截方法对目标类进行拦截跟踪以收集服务监控数据。
具体地,被监测的业务系统的运行依赖于对应的处理类,处理类包含了业务系统提供服务的程序逻辑,被植入探针程序后的处理类被调用过程中,基于程序逻辑记录各种服务过程,例如路径解析、操作日志记录、方法调用的处理、异常记录、返回值处理、日志记录等。
本申请实现了全链路监控,可以添加不同的插件实现对服务器的运行性能进行监控追踪,例如包括网络的吞吐量、用户服务的响应时间、实时日志监控和分析等。
本申请还提供了一种链路告警方法,应用于监控中心,该链路告警方法包括:
从日志中心获取根据前面任一项的链路监控方法得到的日志文件;
对日志文件进行分析处理,得到分析结果;
显示分析结果;
其中,对日志文件进行分析处理,得到分析结果,包括:
从日志文件中提取出链路追踪ID,根据所链路追踪ID第一次的出现时刻和最后一次的出现时刻计算得到响应对应业务请求的第一耗时,
若第一耗时超过第一阈值,则判定响应业务请求的响应接口为慢响应接口,
从日志文件中提取出链路中每个节点的节点追踪ID,根据每个节点追踪ID第一次的出现时刻与对应的下一个节点第一次的出现时刻或响应结束时刻得到对应节点的第二耗时,
若第二耗时超过第二阈值,则判定对应节点为慢响应节点,
根据从日志文件中提取的错误日志,分析出出错节点及错误维度。
具体地,监控中心可以通过拉取日志流的方式实时地从日志中心拉取日志文件进行分析,也可以间隔一段时间从日志中心拉取日志文件进行分析。
响应每个业务请求都会生成一个日志文件。日志文件记录了对一个业务请求的整个响应过程中的服务监控数据。在整个响应过程中可能会经历多个不同的响应节点,响应节点用于协助响应结果的输出。
对日志文件进行解析,可以从日志文件中提取出本次操作对应的整个链路的链路追踪ID,链路追踪ID为全局追踪ID,即traceID。
traceID第一次出现的时刻和最后一次出现的时刻之间的时间差即为本次操作或本条链路的全部耗时即第一耗时。如果第一耗时超过指定时间第一阈值,该链路会被打上slow标志,即响应该业务请求的响应接口为慢响应接口。
同时还会计算出整个链路上每个节点的耗时以及具体出错的节点,将上面的分析结果存入监控中心的数据库。
在一个实施例中,该链路告警方法还包括:
根据统计周期内每个业务请求所调用服务的调用次数统计对应调用接口的TPS;
计算统计周期内每种错误维度的错误的出错次数、计算机内存与CPU的使用率、慢响应接口及数量;
根据调用接口的TPS、每种错误维度的错误的出错次数、计算机内存与CPU的使用率、慢响应接口及数量确定告警频率并生成告警信号;
以告警频率将告警信号通过预设方式发送至目标用户。
具体地,本实施例可以由监控中心的告警中心来执行。告警中心从监控中心的数据库中获取统计周期内的分析结果,并根据这些分析结果统计出统计周期内每个调用接口的TPS(一秒钟的调用次数)、每种错误的出错次数、慢响应接口的数量、计算机内存与CPU的使用率,并根据统计周期内每个调用接口的TPS(一秒种调用次数)、每种错误的出错次数、慢响应接口(带有slow标志)的数量、计算机内存与CPU的使用率确定告警等级。不同的告警等级对应不同的告警频率。告警等级高则告警频率高,则会频繁发出告警提示。如果告警等级低则告警频率低,则会每间隔预设时长才发出告警提示。
例如,根据预设的告警规则,如果30分钟内错误出现次数不超过10次,则不执行告警;再例如如果检查项A异常次数不超过第三阈值,且检查项B异常次数不超过第四阈值,则不执行告警;再例如,如果检查项A和检查项B同时出现异常,则执行告警;再例如,慢接口的数量超过第五阈值,则执行告警,等等不局限于此。其中,监控中心的数据库中存储了各种业务请求对应的日志文件的分析结果。
本实施例实现了根据异常的等级采用相应的告警方式进行告警。告警信号可以通过邮件、短信、作为消息发送至指定的应用端的方式发送给目标用户,并且告警信号的发送频率根据告警频率指定。
本申请结合业务发展以及业务系统架构和字节码增强的思想,采用JAVA Agent +b字节码 +日志的思想来实现APM组件。实现了无侵入在业务系统中引入代码;提供全链路追踪id,应对问题查询;TPS、TTL、服务器资源使用情况数据等可视化;慢接口、错误调用的告警;PingCode任务风险提醒;在现有的前端技术栈中,可以快速定制化各业务线自身的一些需求;可以实现将告警信息以预设方式发送给目标用户,使得告警更为迅速有效;可以自行采集跟踪日志,进行各项定制化的分析及告警处理。这样一来,可以在较大程度提高研发、测试的一些效率。
本申请可以按需增加对应的插件来实现不同的监控任务,避免引入不必要逻辑增加业务系统负担,减轻资源消耗,实现代码零入侵。同时,可以大大减轻对开源组件的二次开发成本,对接开放的API,提供高效的通知机制,提高协作效率。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
图2为本申请一实施例中链路监控装置的结构框图。参考图2,该链路监控装置包括:
植入模块100,用于将探针程序植入到应用程序中,运行植入后的应用程序;
监控模块200,用于利用探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,根据服务监控数据生成每个业务请求对应的日志文件;
第一上传模块300,用于将日志文件上传至日志中心。
在一个实施例中,植入模块100包括:
初始化模块,用于初始化探针程序配置;
探寻模块,用于探寻探针程序所包含的插件;
加载模块,用于加载所有插件及插件对应的配置信息;
定义模块,用于定义转换器;
植入增强模块,用于若监听到类加载事件,则触发对应的转换器,利用转换器的匹配规则和增强逻辑将对应插件中定义的拦截方法植入到类加载事件对应的类文件中,以生成增强的类文件。
在一个实施例中,植入增强模块具体包括:
编译单元,用于将类加载事件对应的类文件编译为第一字节码文件,将对应插件的拦截器中定义的拦截方法编译为第二字节码文件;
植入增强单元,用于利用转换器的匹配规则和增强逻辑将第二字节码文件植入到第一字节码文件中,以增强类文件。
在一个实施例中,植入模块100还包括:
参数配置模块,用于根据用户配置指定探针程序中第一参数的参数取值,其中,第一参数用于表征探针程序的日志跟踪明细程度,第一参数的参数取值为more或debug。
在一个实施例中,监控模块200包括:
监听模块,用于通过探针程序中插件对应的监听器监听各个服务所调用的类;
拦截跟踪模块,用于若监听到对目标类的调用,则启动目标类所植入的拦截方法对目标类进行拦截跟踪以收集服务监控数据。
本申请还提供了一种链路告警装置,该链路告警装置包括:
日志拉取模块,用于从日志中心获取根据前面任一项的链路监控方法得到的日志文件;
分析模块,用于对日志文件进行分析处理,得到分析结果;
显示模块,用于显示分析结果;
其中,分析模块具体包括:
第一计算模块,用于从日志文件中提取出链路追踪ID,根据所链路追踪ID第一次的出现时刻和最后一次的出现时刻计算得到响应对应业务请求的第一耗时,
第一判定模块,用于若第一耗时超过第一阈值,则判定响应业务请求的响应接口为慢响应接口,
第二计算模块,用于从日志文件中提取出链路中每个节点的节点追踪ID,根据每个节点追踪ID第一次的出现时刻与对应的下一个节点第一次的出现时刻或响应结束时刻得到对应节点的第二耗时,
第二判定模块,用于若第二耗时超过第二阈值,则判定对应节点为慢响应节点,
错误分析模块,用于根据从日志文件中提取的错误日志,分析出出错节点及错误维度。
在一个实施例中,该链路告警装置还包括:
第一统计模块,用于根据统计周期内每个业务请求所调用服务的调用次数统计对应调用接口的TPS;
第二统计模块,用于计算统计周期内每种错误维度的错误的出错次数、计算机内存与CPU的使用率、慢响应接口及数量;
告警信号生成模块,用于根据调用接口的TPS、每种错误维度的错误的出错次数、计算机内存与CPU的使用率、慢响应接口及数量确定告警频率并生成告警信号;
告警发送模块,用于以告警频率将告警信号通过预设方式发送至目标用户。
其中上述模块/单元中的“第一”和“第二”的意义仅在于将不同的模块/单元加以区分,并不用于限定哪个模块/单元的优先级更高或者其它的限定意义。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本申请中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式。
关于链路监控装置的具体限定可以参见上文中对于链路监控方法的限定,在此不再赘述。关于链路告警装置的具体限定可以参见上文中对于链路告警方法的限定,在此不再赘述。上述链路监控装置或链路告警装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
图3为本申请一实施例中计算机设备的内部结构框图。如图3所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,该计算机设备的处理器用于提供计算和控制能力。存储器包括存储介质和内存储器。存储介质可以是非易失性存储介质,也可以是易失性存储介质。存储介质存储有操作系统,还可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器实现链路监控方法或链路告警方法。该内存储器为存储介质中的操作系统和计算机可读指令的运行提供环境。该内存储器中也可储存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行链路监控方法或链路告警方法。该计算机设备的网络接口用于与外部服务器通过网络连接通信。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令(例如计算机程序),处理器执行计算机可读指令时实现上述实施例中链路监控方法或链路告警方法方法的步骤,例如图1所示的链路监控方法中的步骤S100至步骤S300及该方法的其它扩展和相关步骤的延伸。或者,处理器执行计算机可读指令时实现上述实施例中链路监控装置的各模块/单元的功能,例如图2所示模块100至模块300的功能。为避免重复,这里不再赘述。
处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器 (Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是计算机装置的控制中心,利用各种接口和线路连接整个计算机装置的各个部分。
存储器可用于存储计算机可读指令和/或模块,处理器通过运行或执行存储在存储器内的计算机可读指令和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、视频数据等)等。
存储器可以集成在处理器中,也可以与处理器分开设置。
本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述实施例中链路监控方法的步骤,例如图1所示的步骤S100至步骤S300及该方法的其它扩展和相关步骤的延伸。或者,计算机可读指令被处理器执行时实现上述实施例中链路监控装置的各模块/单元的功能,例如图2所示模块100至模块300的功能。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机可读指令,计算机可读指令被处理器执行时实现上述实施例中链路告警方法的步骤,及该方法的其它扩展和相关步骤的延伸。或者,计算机可读指令被处理器执行时实现上述实施例中链路告警装置的各模块/单元的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机可读指令来指示相关的硬件来完成,所述的计算机可读指令可存储于一计算机可读取存储介质中,该计算机可读指令在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍速率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种链路监控方法,其特征在于,所述方法包括:
将探针程序植入到应用程序中,运行植入后的应用程序;
利用所述探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,根据所述服务监控数据生成每个业务请求对应的日志文件;
将所述日志文件上传至日志中心。
2.根据权利要求1所述的方法,其特征在于,所述将探针程序植入到应用程序中,包括:
初始化探针程序配置;
探寻探针程序所包含的插件;
加载所有所述插件及插件对应的配置信息;
定义转换器;
若监听到类加载事件,则触发对应的转换器,利用所述转换器的匹配规则和增强逻辑将对应插件中定义的拦截方法植入到所述类加载事件对应的类文件中,以生成增强的类文件。
3.根据权利要求2所述的方法,其特征在于,利用所述转换器的匹配规则和增强逻辑将对应插件中定义的拦截方法植入到所述类加载事件对应的类文件中,以生成增强的类文件,包括:
将所述类加载事件对应的类文件编译为第一字节码文件,将对应插件的拦截器中定义的拦截方法编译为第二字节码文件;
利用所述转换器的匹配规则和增强逻辑将所述第二字节码文件植入到所述第一字节码文件中,以增强所述类文件。
4.根据权利要求2所述的方法,其特征在于,所述将探针程序植入到应用程序中,还包括:
根据用户配置指定所述探针程序中第一参数的参数取值,其中,所述第一参数用于表征探针程序的日志跟踪明细程度,所述第一参数的参数取值为more或debug。
5.根据权利要求3所述的方法,其特征在于,所述利用所述探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,包括:
通过所述探针程序中插件对应的监听器监听各个服务所调用的类;
若监听到对目标类的调用,则启动所述目标类所植入的拦截方法对所述目标类进行拦截跟踪以收集服务监控数据。
6.一种链路告警方法,应用于监控中心,其特征在于,所述方法包括:
从所述日志中心获取根据权利要求1-5任一项所述的链路监控方法得到的日志文件;
对所述日志文件进行分析处理,得到分析结果;
显示所述分析结果;
其中,所述对所述日志文件进行分析处理,得到分析结果,包括:
从所述日志文件中提取出链路追踪ID,根据所链路追踪ID第一次的出现时刻和最后一次的出现时刻计算得到响应对应业务请求的第一耗时,
若所述第一耗时超过第一阈值,则判定响应所述业务请求的响应接口为慢响应接口,
从所述日志文件中提取出所述链路中每个节点的节点追踪ID,根据每个节点追踪ID第一次的出现时刻与对应的下一个节点第一次的出现时刻或响应结束时刻得到对应节点的第二耗时,
若所述第二耗时超过第二阈值,则判定对应节点为慢响应节点,
根据从所述日志文件中提取的错误日志,分析出出错节点及错误维度。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
根据统计周期内每个业务请求所调用服务的调用次数统计对应调用接口的TPS;
计算所述统计周期内每种错误维度的错误的出错次数、计算机内存与CPU的使用率、慢响应接口及数量;
根据所述调用接口的TPS、每种错误维度的错误的出错次数、计算机内存与CPU的使用率、慢响应接口及数量确定告警频率并生成告警信号;
以所述告警频率将所述告警信号通过预设方式发送至目标用户。
8.一种链路监控装置,其特征在于,所述装置包括:
植入模块,用于将探针程序植入到应用程序中,运行植入后的应用程序;
监控模块,用于利用所述探针程序通过数据拦截的方式收集每个业务请求对应的服务监控数据,根据所述服务监控数据生成每个业务请求对应的日志文件;
第一上传模块,用于将所述日志文件上传至日志中心。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时执行如权利要求1-5任一项所述的链路监控方法的步骤,或执行如权利要求6-7任一项所述的链路告警方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时,使得所述处理器执行如权利要求1-5任一项所述的链路监控方法的步骤,或执行如权利要求6-7任一项所述的链路告警方法的步骤。
CN202210309639.2A 2022-03-28 2022-03-28 链路监控及告警方法、装置、计算机设备和存储介质 Active CN114978940B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210309639.2A CN114978940B (zh) 2022-03-28 2022-03-28 链路监控及告警方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210309639.2A CN114978940B (zh) 2022-03-28 2022-03-28 链路监控及告警方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN114978940A true CN114978940A (zh) 2022-08-30
CN114978940B CN114978940B (zh) 2024-03-29

Family

ID=82976324

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210309639.2A Active CN114978940B (zh) 2022-03-28 2022-03-28 链路监控及告警方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN114978940B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115390913A (zh) * 2022-10-28 2022-11-25 平安银行股份有限公司 零代码侵入的日志监控方法、装置、电子设备及存储介质
CN115757043A (zh) * 2022-11-29 2023-03-07 广发银行股份有限公司 一种日志数据记录方法及系统
CN116506324A (zh) * 2023-06-28 2023-07-28 江苏未来网络集团有限公司 全域数据链路性能监测方法、装置、存储介质及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035317A (zh) * 2020-08-28 2020-12-04 北京浪潮数据技术有限公司 一种微服务链路监控方法、装置、设备及介质
CN112068902A (zh) * 2020-09-10 2020-12-11 北京五八信息技术有限公司 一种插件调用方法、装置、电子设备及存储介质
CN112558947A (zh) * 2020-12-18 2021-03-26 京东数字科技控股股份有限公司 程序调用追踪方法、装置以及存储介质
CN113312241A (zh) * 2021-06-29 2021-08-27 中国农业银行股份有限公司 异常告警的方法、生成访问日志的方法以及运维系统
CN113946499A (zh) * 2021-10-22 2022-01-18 神州数码系统集成服务有限公司 一种微服务链路跟踪及性能分析方法、系统、设备及应用

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035317A (zh) * 2020-08-28 2020-12-04 北京浪潮数据技术有限公司 一种微服务链路监控方法、装置、设备及介质
CN112068902A (zh) * 2020-09-10 2020-12-11 北京五八信息技术有限公司 一种插件调用方法、装置、电子设备及存储介质
CN112558947A (zh) * 2020-12-18 2021-03-26 京东数字科技控股股份有限公司 程序调用追踪方法、装置以及存储介质
CN113312241A (zh) * 2021-06-29 2021-08-27 中国农业银行股份有限公司 异常告警的方法、生成访问日志的方法以及运维系统
CN113946499A (zh) * 2021-10-22 2022-01-18 神州数码系统集成服务有限公司 一种微服务链路跟踪及性能分析方法、系统、设备及应用

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115390913A (zh) * 2022-10-28 2022-11-25 平安银行股份有限公司 零代码侵入的日志监控方法、装置、电子设备及存储介质
CN115757043A (zh) * 2022-11-29 2023-03-07 广发银行股份有限公司 一种日志数据记录方法及系统
CN116506324A (zh) * 2023-06-28 2023-07-28 江苏未来网络集团有限公司 全域数据链路性能监测方法、装置、存储介质及系统

Also Published As

Publication number Publication date
CN114978940B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
CN114978940B (zh) 链路监控及告警方法、装置、计算机设备和存储介质
CN111124906B (zh) 基于动态埋点的跟踪方法、编译方法、装置和电子设备
US10705811B2 (en) Method and system for automated, static instrumentation for applications designed for execution in environments with restricted resources, like mobile devices or TV set top boxes
CN110795734B (zh) 一种恶意移动应用检测方法
CN107870933B (zh) 统计安卓应用页面浏览行为的方法、装置及系统
US20160378989A1 (en) Apparatus and method for monitoring android platform-based application
US11176267B2 (en) Fine-grained user control over usages of sensitive system resources having private data with applications in privacy enforcement
US20190042233A1 (en) Application architecture generation
WO2020207232A1 (zh) 子应用开发方法、装置、计算机设备及存储介质
CN111930472B (zh) 一种代码调试方法、装置、电子设备及存储介质
CN113076253A (zh) 一种测试方法和测试装置
CN113094238A (zh) 一种业务系统异常监控方法及装置
CN110045952B (zh) 代码调用方法与装置
CN116627850B (zh) 函数调试方法、装置、存储介质以及电子设备
CN110781081B (zh) 一种移动应用回调强制触发方法、系统及存储介质
CN111159033B (zh) 一种软件测试方法及装置
CN110008086B (zh) 一种日志生成方法、装置以及一种客户端
CN112667490A (zh) 基于钩子函数的性能测试方法与装置
CN112115041A (zh) 应用程序的动态埋点方法、装置、存储介质及计算机设备
CN116431443A (zh) 日志记录方法、装置、计算机设备及计算机可读存储介质
CN116501596A (zh) 应用程序的测试方法及装置
CN114528213A (zh) 自动化挡板测试方法、装置、设备及存储介质
CN111309541A (zh) 异常处理检测方法、装置、设备及计算机存储介质
CN114706662B (zh) 基于jvm沙箱实现动态模拟业务操作和数据的方法及系统
CN115964193B (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20230413

Address after: Room 1501, No. 108, Dingxin Road, Haizhu District, Guangzhou City, Guangdong Province, 510000

Applicant after: Guangzhou Xinjing Information Technology Service Co.,Ltd.

Address before: 510000 room B338, No. 364, middle Industrial Avenue, Haizhu District, Guangzhou, Guangdong Province

Applicant before: Tiangong Xinchuang (Guangzhou) Information Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant