CN115220995A - 一种基于agent探针的微服务全链路分析方法 - Google Patents
一种基于agent探针的微服务全链路分析方法 Download PDFInfo
- Publication number
- CN115220995A CN115220995A CN202210629137.8A CN202210629137A CN115220995A CN 115220995 A CN115220995 A CN 115220995A CN 202210629137 A CN202210629137 A CN 202210629137A CN 115220995 A CN115220995 A CN 115220995A
- Authority
- CN
- China
- Prior art keywords
- agent
- link
- data
- probe
- application
- 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
Links
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/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- 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
- G06F11/3072—Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例提出了一种基于agent探针的微服务全链路分析方法,包括在待处理文件的首尾添加计时器,构建agent探针;基于agent探针获取包含待处理文件的链路数据,将获取到的链路数据存储至云服务中心;在云服务中心内基于链路数据计算全链路的负载结果,同时基于添加的计时器计算链路数据对应的全链路的处理时长。通过使用探针埋点,实现代码侵入性小、可扩展性高、可数据分析,同时能够理清系统行为、用于分析系统性能问题以及系统故障时,易于分析业务应用系统的性能以及系统故障,能够快速定位和解决问题;对调用链路及链路上的每个节点的性能进行监控和跟踪,并对出现的异常进行告警,方便运维人员对系统的日常运维和优化工作。
Description
技术领域
本申请涉及全链路监控领域,尤其涉及一种基于agent探针的微服务全链路分析方法。
背景技术
在云计算、大数据等技术日趋成熟的情况下,微服务架构逐渐进入人们的视线,微服务架构的本质是把整体的业务拆分成特定明确功能的服务。分布式环境下,随着微服务架构的广泛应用,各个服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务,这些服务之间的调用可能非常复杂,当业务流出现错误或异常时,由于微服务架构的特点,运维人员需要付出较大精力和时间来查找和定位异常情况。
在业务规模不断增大、服务不断增多以及频繁变更的情况下,面对复杂的调用链路就带来一系列问题:如何快速发现问题、如何判断故障影响范围、如何梳理服务依赖以及依赖的合理性以及如何分析链路性能问题以及实时容量规划,同时关注在请求处理期间各个调用的各项性能指标,比如:吞吐量(TPS)、响应时间及错误记录等,运维人员工作压力和工作强度极大。
故如何理清系统行为并分析系统性能,同时在系统故障时,能够实现快速定位并处理是现有技术中存在的问题。
发明内容
本申请实施例提出了一种基于agent探针的微服务全链路分析方法,来解决如何理清系统行为并分析系统性能,同时在系统故障时,能够实现快速定位并处理的问题。
具体的,本申请实施例提出的一种基于agent探针的微服务全链路分析方法,所述方法包括:
S1,在待处理文件的首尾添加计时器,构建agent探针;
S2,基于agent探针获取包含待处理文件的链路数据,将获取到的链路数据存储至云服务中心;
S3,在云服务中心内基于链路数据计算全链路的负载结果,同时基于添加的计时器计算链路数据对应的全链路的处理时长。
可选的,在步骤S1与S2之间,还包括:
利用JAVA Agent机制,采用修改应用字节码的方式将探针逻辑植入到业务应用系统;
基于不同的网络环境,将搜集出来的Agent数据,通过TCP或UDP传输方式传递到云服务中心。
可选的,所述步骤S1中的Agent应用及探针端具体如下:
S11、Agent应用及探针端利用JAVA Agent机制,采用修改应用字节码的方式将探针逻辑植入到业务应用系统中;
S12、基于不同的网络环境,将搜集出来的Agent数据,通过TCP或UDP传输方式传递到收集链路数据的过程;
S13、在调用方加入应用级别的标签数据来追踪分布式事务;
S14、通过抽象出拦截器提高开发效率和可访问性,在类加载时干预应用程序代码,注入代码来跟踪分布式请求以及性能信息。
可选的,所述S3包括:
S31、将Agent应用及探针端以jar包的形式安插在业务应用系统中;
S32、通过多个Collector示例对搜集过来的Agent数据进行整理、汇总并运算各项指标;
S33、对存储到云服务中心的SG-RDB数据及Hbase数据进行计算得出瓶颈及负载的预测结果。
可选的,所述方法包括:
通过多个示例对搜集过来的Agent数据进行整理、汇总并运算各项指标。
有益效果:
使用探针埋点,探针的性能消耗低,实现代码侵入性小、可扩展性高、可数据分析,同时能够理清系统行为、用于分析系统性能问题以及系统故障时,易于分析业务应用系统的性能以及系统故障,能够快速定位和解决问题;对调用链路及链路上的每个节点的性能进行监控和跟踪,并对出现的异常进行告警,方便运维人员对系统的日常运维和优化工作。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提出的一种基于agent探针的微服务全链路分析方法的流程示意图。
具体实施方式
为使本申请的结构和优点更加清楚,下面将结合附图对本申请的结构作进一步地描述。
基于探针技术,对微服务调用全过程进行分析,解决微服务框架下问题排查难、定位难的问题。
具体的,本申请实施例提出的一种基于agent探针的微服务全链路分析方法,如图1所示,所述方法包括:
S1,在待处理文件的首尾添加计时器,构建agent探针;
S2,基于agent探针获取包含待处理文件的链路数据,将获取到的链路数据存储至云服务中心;
S3,在云服务中心内基于链路数据计算全链路的负载结果,同时基于添加的计时器计算链路数据对应的全链路的处理时长。
在实施中,本方法的执行思想为:接收Agent应用及探针端发送过来的Agent数据,并将Agent数据存入到云服务中心中;链路数据分析端利用大数据挖掘与机器学习算法对存储到云服务中心的SG-RDB数据及Hbase数据进行计算得出瓶颈及负载的预测结果。
Agent应用及探针端以jar包的形式安插在业务应用系统中,从业务应用系统中搜集数据,在启动脚本中添加相应的参数实现Agent应用及探针端与业务应用功能系统一起运行。
收集链路数据的过程采用Zookeeper集群的模式,即通过多个Collector示例对搜集过来的Agent数据进行整理、汇总并运算各项指标,实现收集链路数据的过程减压;当Agent应用及探针端传输数据量大时,收集链路数据的过程通过开启Zookeeper集群的模式进行减压。
可选的,在步骤S1与S2之间,还包括:
利用JAVA Agent机制,采用修改应用字节码的方式将探针逻辑植入到业务应用系统;
基于不同的网络环境,将搜集出来的Agent数据,通过TCP或UDP传输方式传递到云服务中心。
步骤S2用于完成链路数据的收集过程,收集链路数据的过程具体如下:
S201、收集链路数据的过程接收Agent应用及探针端发送过来的Agent数据;
S202、将Agent数据进行数据整理、数据加工、数据分析并处理;
S203、根据数据实时性的不同和用户对Agent数据的要求,存入到云服务中心中;其中,云服务中心中的数据包括实时性数据和历史数据,实时性数据存入到SG-RDB中;历史性数据存入到Hbase中。
可选的,所述步骤S1中的Agent应用及探针端具体如下:
S11、Agent应用及探针端利用JAVA Agent机制,采用修改应用字节码的方式将探针逻辑植入到业务应用系统中;
S12、基于不同的网络环境,将搜集出来的Agent数据,通过TCP或UDP传输方式传递到收集链路数据的过程;
S13、在调用方加入应用级别的标签数据来追踪分布式事务;
S14、通过抽象出拦截器提高开发效率和可访问性,在类加载时干预应用程序代码,注入代码来跟踪分布式请求以及性能信息。
可选的,所述S3包括:
S31、将Agent应用及探针端以jar包的形式安插在业务应用系统中;
S32、通过多个Collector示例对搜集过来的Agent数据进行整理、汇总并运算各项指标;
S33、对存储到云服务中心的SG-RDB数据及Hbase数据进行计算得出瓶颈及负载的预测结果。
在实施中,使用探针埋点:将Agent应用及探针端以jar包的形式安插在业务应用系统中,在启动脚本中添加相关参数,实现Agent应用及探针端与业务硬功系统一起运行;
部署Collector搜集端:Collector搜集端采用Zookeeper集群的模式,即通过多个Collector示例对搜集过来的Agent数据进行整理、汇总并运算各项指标,实现Collector搜集端减压;
部署链路数据分析端:链路数据分析端利用大数据挖掘与机器学习算法对存储到全业务数据中心的SG-RDB数据及Hbase数据进行计算得出瓶颈及负载的预测结果,实现预测结果展示及决策支持。
可选的,所述方法包括:
通过多个示例对搜集过来的Agent数据进行整理、汇总并运算各项指标。
在实施中,javaAgent是运行方法之前的拦截器。我们利用javaAgent和ASM字节码技术,在JVM加载class二进制文件的时候,利用ASM动态的修改加载的class文件,在监控的方法前后添加计时器功能,用于计算监控方法耗时,同时将方法耗时及内部调用情况放入处理器,处理器利用栈先进后出的特点对方法调用先后顺序做处理,当一个请求处理结束后,将耗时方法轨迹和入参map输出到文件中,然后根据map中相应参数或耗时方法轨迹中的关键代码区分出我们要抓取的耗时业务。最后将相应耗时轨迹文件取下来,转化为xml格式并进行解析,通过浏览器将代码分层结构展示出来,支持方法执行耗时范围抓取设置,根据耗时范围抓取系统运行时出现在设置耗时范围的代码运行轨迹。
除上述方案外,本申请提出的基于agent探针的微服务全链路分析方法,包括:
S4,获取链路数据数据首端与尾端各自的参数清单;
S5,根据首端参数清单与尾端参数清单判断是否存在链路数据劫持行为。
其中,S5包括:
如果首端参数清单、尾端参数清单中存在预设设备清单以外的设备ID,则判断获取到的链路数据存在劫持行为。
以上所述仅为本申请的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (5)
1.一种基于agent探针的微服务全链路分析方法,其特征在于,所述方法包括:
S1,在待处理文件的首尾添加计时器,构建agent探针;
S2,基于agent探针获取包含待处理文件的链路数据,将获取到的链路数据存储至云服务中心;
S3,在云服务中心内基于链路数据计算全链路的负载结果,同时基于添加的计时器计算链路数据对应的全链路的处理时长。
2.根据权利要求1所述的一种基于agent探针的微服务全链路分析方法,其特征在于,在步骤S1与S2之间,还包括:
利用JAVA Agent机制,采用修改应用字节码的方式将探针逻辑植入到业务应用系统;
基于不同的网络环境,将搜集出来的Agent数据,通过TCP或UDP传输方式传递到云服务中心。
3.根据权利要求1所述的一种基于agent探针的微服务全链路分析方法,其特征在于,所述步骤S1中的Agent应用及探针端具体如下:
S11、Agent应用及探针端利用JAVAAgent机制,采用修改应用字节码的方式将探针逻辑植入到业务应用系统中;
S12、基于不同的网络环境,将搜集出来的Agent数据,通过TCP或UDP传输方式传递到收集链路数据的过程;
S13、在调用方加入应用级别的标签数据来追踪分布式事务;
S14、通过抽象出拦截器提高开发效率和可访问性,在类加载时干预应用程序代码,注入代码来跟踪分布式请求以及性能信息。
4.根据权利要求1所述的一种基于agent探针的微服务全链路分析方法,其特征在于,所述S3包括:
S31、将Agent应用及探针端以jar包的形式安插在业务应用系统中;
S32、通过多个Collector示例对搜集过来的Agent数据进行整理、汇总并运算各项指标;
S33、对存储到云服务中心的SG-RDB数据及Hbase数据进行计算得出瓶颈及负载的预测结果。
5.根据权利要求1所述的一种基于agent探针的微服务全链路分析方法,其特征在于,所述方法包括:
通过多个示例对搜集过来的Agent数据进行整理、汇总并运算各项指标。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210629137.8A CN115220995A (zh) | 2022-06-06 | 2022-06-06 | 一种基于agent探针的微服务全链路分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210629137.8A CN115220995A (zh) | 2022-06-06 | 2022-06-06 | 一种基于agent探针的微服务全链路分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115220995A true CN115220995A (zh) | 2022-10-21 |
Family
ID=83607557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210629137.8A Pending CN115220995A (zh) | 2022-06-06 | 2022-06-06 | 一种基于agent探针的微服务全链路分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115220995A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117201292A (zh) * | 2023-10-30 | 2023-12-08 | 智业软件股份有限公司 | 能准确定位微服务间请求调用异常的方法 |
CN117240695A (zh) * | 2023-11-10 | 2023-12-15 | 杭州笨马网络技术有限公司 | 基于eBPF的持续性能剖析方法、装置、电子设备和存储介质 |
-
2022
- 2022-06-06 CN CN202210629137.8A patent/CN115220995A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117201292A (zh) * | 2023-10-30 | 2023-12-08 | 智业软件股份有限公司 | 能准确定位微服务间请求调用异常的方法 |
CN117201292B (zh) * | 2023-10-30 | 2024-02-23 | 智业软件股份有限公司 | 能准确定位微服务间请求调用异常的方法 |
CN117240695A (zh) * | 2023-11-10 | 2023-12-15 | 杭州笨马网络技术有限公司 | 基于eBPF的持续性能剖析方法、装置、电子设备和存储介质 |
CN117240695B (zh) * | 2023-11-10 | 2024-02-23 | 杭州笨马网络技术有限公司 | 基于eBPF的持续性能剖析方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035191B (zh) | 基于微服务的apm全链路监控系统及方法 | |
CN115220995A (zh) | 一种基于agent探针的微服务全链路分析方法 | |
CN111385122B (zh) | 分布式系统链路跟踪方法、装置、计算机设备及存储介质 | |
US20110314138A1 (en) | Method and apparatus for cause analysis configuration change | |
CN111259073A (zh) | 基于日志、流量和业务访问的业务系统运行状态智能研判系统 | |
CN108521339A (zh) | 一种基于集群日志的反馈式节点故障处理方法及系统 | |
CN110231998B (zh) | 分布式定时任务的检测方法、装置及存储介质 | |
CN111367760A (zh) | 日志采集方法及装置、计算机设备、存储介质 | |
CN110879771A (zh) | 一种基于关键词序列挖掘的用户异常检测的日志分析系统 | |
CN112416708A (zh) | 异步调用链路监控方法及系统 | |
CN113760634A (zh) | 一种数据处理方法和装置 | |
WO2015187001A2 (en) | System and method for managing resources failure using fast cause and effect analysis in a cloud computing system | |
CN115664939A (zh) | 一种基于自动化技术的综合运维方法、装置和存储介质 | |
Li et al. | Conan: Diagnosing batch failures for cloud systems | |
CN116204386B (zh) | 应用服务关系自动识别及监控方法、系统、介质和设备 | |
CN110609761B (zh) | 确定故障源的方法、装置、存储介质和电子设备 | |
CN117041028A (zh) | 微服务环境下的故障定位方法、设备及可读存储介质 | |
CN113778800B (zh) | 一种报错信息处理方法、装置、系统、设备及存储介质 | |
CN114116128B (zh) | 容器实例的故障诊断方法、装置、设备和存储介质 | |
CN113472881B (zh) | 在线终端设备的统计方法和装置 | |
CN116049115A (zh) | 一种软件日志处理方法 | |
CN113259878B (zh) | 话单结算方法、系统、电子设备及计算机可读存储介质 | |
CN113849378A (zh) | 资源监测装置、系统、资源监测方法、电子及介质 | |
CN112541106A (zh) | 网络数据获取方法、装置、计算机设备和存储介质 | |
CN111625416A (zh) | 一种基于云os的日志回收及故障警报系统 |
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 |