CN117201292B - 能准确定位微服务间请求调用异常的方法 - Google Patents
能准确定位微服务间请求调用异常的方法 Download PDFInfo
- Publication number
- CN117201292B CN117201292B CN202311419564.4A CN202311419564A CN117201292B CN 117201292 B CN117201292 B CN 117201292B CN 202311419564 A CN202311419564 A CN 202311419564A CN 117201292 B CN117201292 B CN 117201292B
- Authority
- CN
- China
- Prior art keywords
- network
- micro
- service
- request
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000012544 monitoring process Methods 0.000 claims abstract description 43
- 230000008569 process Effects 0.000 claims abstract description 17
- 239000000523 sample Substances 0.000 claims abstract description 17
- 238000005516 engineering process Methods 0.000 claims abstract description 5
- 230000002159 abnormal effect Effects 0.000 claims description 14
- 230000005540 biological transmission Effects 0.000 claims description 3
- 238000011835 investigation Methods 0.000 abstract 2
- 230000005856 abnormality Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 229910002056 binary alloy Inorganic materials 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明能准确定位微服务间请求调用异常的方法,在对微服务间相互调用的链路实时跟踪中,通过在应用程序启动的过程中添加探针以加载插件的方式,在应用程序编译成.class的过程中,插件基于字节码增强技术获取到微服务间的调用链路信息和对应本次调用的网络数据,将采集到的网络数据绑定本次调用请求的调用链路信息作为微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控,方便对整个请求访问网络运行状况进行跟踪定位,可实现对微服务架构下跨服务调用的网络信息的精准定位以及排查,解决网络波动时,现有链路跟踪调用无法精确定位网络故障,不方便调查的问题。
Description
技术领域
本发明属于微服务监控技术领域,具体涉及一种能准确定位微服务间请求调用异常的方法。
背景技术
随着医疗信息化发展,微服务架构产品的不断推出。微服务架构提倡将单一应用程序划分成一组小的微服务,微服务之间相互协调、互相配合,为用户提供最终结果。每个微服务运行在其独立的进程中,微服务与微服务之间采用轻量级的通信机制相互沟通。每个微服务都围绕着具体的业务进行构建,并且能够被独立地部署。由于采用微服务架构之后,***变得错综复杂,用户请求出现错误时难以定位,因此,相应出现了微服务监控***,将用户请求经过的每一个节点都记录下来,形成一个完整的微服务调用链路日志,在发生请求调用异常时,能快速从调用微服务调用链路日志中排查和定位出错的具体环节。
微服务架构下服务间的请求交互较多,横跨多个虚拟化服务器或者物理服务器。当前医院智能信息***通常会结合医院网络组成内部私有网络。特别是私有网络存在的不稳定性,可能出现时好时坏的情况,当出现微服务相互调用缓慢时,现有网络监控无法判定不同服务器上微服务调用缓慢是由于程序问题还是由于服务器间网络异常波动引起。如图1所示,现有网络监控技术基本上依赖客户端向服务端发送网络监控数据,或者通过监控网络交换机等方式实现网络监控。现有技术通过Skywalking(APM)仅能查看调用链路,无法查看到每一次微服务请求过程中的网络运行状况。如图2所示的现有的网络监控方式,根本无法查看虚线内部A服务向B服务发起请求时该调用请求的网络运行状况,当微服务间请求调用异常时,无法准确定位。
发明内容
本发明的目的在于提供一种能准确定位微服务间请求调用异常的方法,用于解决目前微服务监控仅形成微服务调用链路日志,无法查看每一次微服务请求过程中的网络运行状况,从而无法准确定位微服务间请求调用异常的问题。
本发明能准确定位微服务间请求调用异常的方法,包括如下步骤:
步骤1、在可获取微服务间调用链路信息的探针Skywalking-Agent中,新增获取网络信息插件networkSteamPlugin,所述获取网络信息插件networkSteamPlugin,在每一次的微服务请求过程中,获取当前应用服务的IP信息,基于该服务的IP信息,抓取具体的网络报文数据,再基于抓取到的网络报文数据,筛选出N次握手数据,通过组装每一次的N次握手数据结合重置的网络情况,判定当前网络是否出现异常情况;
步骤2、在对微服务间相互调用的实时链路跟踪过程中,在应用程序运行前添加探针,以加载插件的方式,在应用程序编译成.class 的过程中,通过获取调用链路插件,基于字节码增强技术,采集应用程序的调用链路信息,以及通过获取网络信息插件networkSteamPlugin,对网络报文数据进行实时抓取,将采集到的网络报文数据从二进制转换成十进制数据,在探针Skywalking-Agent中绑定本次调用请求的调用链路信息作为微服务监控记录传递给Skywalking-OAP 服务,此时Skywalking-OAP服务将每一次发起调用请求的微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控,运行在Skywalking-OAP服务上,用于对整个请求访问网络运行状况进行跟踪定位,排查出微服务间请求调用异常的情况。
所述步骤2中,若当前网络正常运行,探针Skywalking-Agent仅将采集到本次调用请求的调用链路信息作为微服务监控记录传递给Skywalking-OAP 服务;只有在当前网络出现异常情况时,通过获取网络信息插件networkSteamPlugin才将步骤1中获取的异常的网络报文数据从二进制转换成十进制数据,在探针Skywalking-Agent中与本次请求的调用链路信息进行绑定作为微服务监控记录,再通过Skywalking-Agent发送至Skywalking-OAP服务,此时Skywalking-OAP服务将每一次发起调用请求的微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控。
基于所述抓取到的网络报文数据得到:
(1)TCP/IP网络信息,包括网络握手ACK、SYN、SEQ、包大小、执行时长等相关信息;
(2)用于评估***对于网络的转发能力的PPS信息,即以网络包为单位的传输速率;
(3)丢包率dropped,即用于表示所丢失数据包数量占所发送数据组的比率;
(4)重传率,即用于表示重传网络包的比例;
(5)错误率。
一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行上述任意一种能准确定位微服务间请求调用异常的方法的处理步骤。
一种计算机可读存储介质,用于存储计算机可读取的指令,所述指令被执行时执行上述任意一种能准确定位微服务间请求调用异常的方法的处理步骤。
本发明将微服务间相互调用的链路信息绑定每一次请求过程中的网络运行状况形成监控记录,该持续的监控记录保存在数据库中,形成微服务间互相调用的网络拓扑监控,作为准确定位微服务间请求调用异常的依据。
本发明在对微服务间相互调用的链路实时跟踪中,通过在应用程序启动的过程中添加探针(Skywalking-Agent)以加载插件的方式,在应用程序编译成.class的过程中,插件基于字节码增强技术获取到微服务间的调用链路信息和对应本次调用的网络数据,将采集到的网络数据绑定本次调用请求的调用链路信息作为微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控,运行在Skywalking-OAP服务上进行查看,方便对整个请求访问网络运行状况进行跟踪定位,从而能准确定位微服务间请求调用异常,可实现对微服务架构下跨服务调用的网络信息的精准定位以及排查,解决网络波动时,由于网络不稳定,引起的现有链路跟踪调用无法精确定位网络故障,无法记录,不方便调查的问题。
附图说明
图1为现有的基于微服务的网络监控架构图;
图2为现有网络监控中微服务之间的调用无法查看网络运行状况的示意图;
图3为本发明加载多种插件的skywalking-Agent实施监控的流程图;
图4为本发明skywalking-Agent中新增获取网络信息插件networkSteamPlugin的框架示意图;
图5为本发明的流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明的部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
实施例一
如图 3 至5所示,本实施例一涉及一种能准确定位微服务间请求调用异常的方法,包括如下步骤:
步骤1、在可获取微服务间调用链路信息的探针Skywalking-Agent中,新增获取网络信息插件networkSteamPlugin,所述获取网络信息插件networkSteamPlugin,在每一次的微服务请求过程中,获取当前应用服务的IP信息,基于该服务的IP信息,抓取具体的网络报文数据,获取报文的长度、模式、超时时间等,再基于上述抓取到的网络报文数据,筛选出三次握手数据,通过组装每一次的三次握手数据结合重置的网络情况,判定当前网络是否出现异常情况。
基于所述抓取到的网络报文数据得到:
(1)TCP/IP网络信息,包括网络握手ACK、SYN、SEQ、包大小、执行时长等相关信息;
(2)用于评估***对于网络的转发能力的PPS信息Packet Per Second(包/秒),即以网络包为单位的传输速率;
(3)丢包率(dropped),即用于表示所丢失数据包数量占所发送数据组的比率;
(4)重传率,即用于表示重传网络包的比例;
(5)错误率(errors);
步骤2、在对微服务间相互调用的实时链路跟踪过程中,在应用程序运行前添加探针,以加载插件的方式,在应用程序编译成.class 的过程中,通过获取调用链路插件,基于字节码增强技术,采集应用程序的调用链路信息,以及通过获取网络信息插件networkSteamPlugin,对网络握手、错误率,丢包率等网络报文数据进行实时抓取,将采集到的网络报文数据从二进制转换成十进制数据,在探针Skywalking-Agent中与本次调用请求的调用链路信息绑定后作为微服务监控记录传递给Skywalking-OAP 服务,此时Skywalking-OAP服务将每一次发起调用请求的微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控,运行在Skywalking-OAP服务上进行查看,方便对整个请求访问网络运行状况进行跟踪定位,从而能准确定位微服务间请求调用异常。
若考虑到监控记录的存储量,上述步骤2也可以这样做:若当前网络正常运行,探针Skywalking-Agent仅将采集到本次调用请求的调用链路信息作为微服务监控记录传递给Skywalking-OAP 服务;只有在当前网络出现异常情况时,获取网络信息插件networkSteamPlugin才将步骤1中获取的异常的网络报文数据从二进制转换成十进制数据,在Skywalking-agent中与本次请求的调用链路信息的spanId或者traceId进行结合,再通过Skywalking-agent发送至Skywalking-OAP服务,此时Skywalking-OAP服务将每一次发起调用请求的微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控,运行在Skywalking-OAP服务上进行查看,方便对整个请求访问网络运行状况进行跟踪定位,从而能准确定位微服务间请求调用异常。
实施例二
本发明实施例二提供一种电子设备,该电子设备可以为前述的终端设备或者服务器,也可以为与前述终端设备或者服务器连接的实现本发明实施例一方法的终端设备或服务器。
该电子设备可以包括:处理器(例如CPU)、存储器、数据采集装置;处理器连接并控制数据采集装置。存储器中可以存储各种指令,以用于完成各种处理功能以及实现前述实施例一方法描述的处理步骤。
实施例三
本发明实施例三还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例一方法所描述的处理步骤。
专业人员应该还可以进一步意识到,结合本发明中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (5)
1.能准确定位微服务间请求调用异常的方法,其特征在于包括如下步骤:
步骤1、在可获取微服务间调用链路信息的探针Skywalking-Agent中,新增获取网络信息插件,所述获取网络信息插件,在每一次的微服务请求过程中,获取当前应用服务的IP信息,基于该服务的IP信息,抓取具体的网络报文数据,再基于抓取到的网络报文数据,筛选出N次握手数据,通过组装每一次的N次握手数据结合重置的网络情况,判定当前网络是否出现异常情况;
步骤2、在对微服务间相互调用的实时链路跟踪过程中,在应用程序运行前添加探针,以加载插件的方式,在应用程序编译成.class 的过程中,通过获取调用链路插件,基于字节码增强技术,采集应用程序的调用链路信息,以及通过获取网络信息插件,对网络报文数据进行实时抓取,将采集到的网络报文数据从二进制转换成十进制数据,在探针Skywalking-Agent中绑定本次调用请求的调用链路信息作为微服务监控记录传递给Skywalking-OAP 服务,此时Skywalking-OAP服务将每一次发起调用请求的微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控,运行在Skywalking-OAP服务上,用于对整个请求访问网络运行状况进行跟踪定位,排查出微服务间请求调用异常的情况。
2.根据权利要求1所述的能准确定位微服务间请求调用异常的方法,其特征在于,所述步骤2中,若当前网络正常运行,探针Skywalking-Agent仅将采集到本次调用请求的调用链路信息作为微服务监控记录传递给Skywalking-OAP 服务;只有在当前网络出现异常情况时,通过获取网络信息插件才将步骤1中获取的异常的网络报文数据从二进制转换成十进制数据,在探针Skywalking-Agent中与本次请求的调用链路信息进行绑定作为微服务监控记录,再通过Skywalking-Agent发送至Skywalking-OAP服务,此时Skywalking-OAP服务将每一次发起调用请求的微服务监控记录持续保存在数据库中,形成微服务间互相调用的网络拓扑监控。
3.根据权利要求1所述的能准确定位微服务间请求调用异常的方法,其特征在于基于所述抓取到的网络报文数据得到:
(1)TCP/IP网络信息,包括网络握手ACK、SYN、SEQ、包大小、执行时长;
(2)用于评估***对于网络的转发能力的PPS信息,即以网络包为单位的传输速率;
(3)丢包率dropped,即用于表示所丢失数据包数量占所发送数据组的比率;
(4)重传率,即用于表示重传网络包的比例;
(5)错误率。
4.一种电子设备,其特征在于,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至3任一项所述的一种能准确定位微服务间请求调用异常的方法。
5.一种计算机可读存储介质,用于存储计算机可读取的指令,其特征在于,所述指令被执行时执行权利要求1至3任一项所述的一种能准确定位微服务间请求调用异常的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311419564.4A CN117201292B (zh) | 2023-10-30 | 2023-10-30 | 能准确定位微服务间请求调用异常的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311419564.4A CN117201292B (zh) | 2023-10-30 | 2023-10-30 | 能准确定位微服务间请求调用异常的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117201292A CN117201292A (zh) | 2023-12-08 |
CN117201292B true CN117201292B (zh) | 2024-02-23 |
Family
ID=88994587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311419564.4A Active CN117201292B (zh) | 2023-10-30 | 2023-10-30 | 能准确定位微服务间请求调用异常的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117201292B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118383A (zh) * | 2013-02-01 | 2013-05-22 | 中国科学技术大学 | 一种无线存取点状态综合监管***及方法 |
CN111158995A (zh) * | 2019-11-29 | 2020-05-15 | 武汉物易云通网络科技有限公司 | 基于skywalking、ELK平台实现跨***日志跟踪查询的方法及*** |
CN113965497A (zh) * | 2021-10-20 | 2022-01-21 | 平安医疗健康管理股份有限公司 | 服务器异常识别方法、装置、计算机设备及可读存储介质 |
CN114039900A (zh) * | 2021-11-03 | 2022-02-11 | 北京德塔精要信息技术有限公司 | 一种高效网络数据包协议分析方法和*** |
CN114697232A (zh) * | 2020-12-25 | 2022-07-01 | ***通信集团福建有限公司 | Skywalking探针的指标数据采集***、方法及电子设备 |
CN115174542A (zh) * | 2022-07-01 | 2022-10-11 | 中国邮政储蓄银行股份有限公司 | 业务***的全链路采集方法、采集装置和采集*** |
CN115220995A (zh) * | 2022-06-06 | 2022-10-21 | 浙江华云信息科技有限公司 | 一种基于agent探针的微服务全链路分析方法 |
CN115237713A (zh) * | 2022-07-22 | 2022-10-25 | 北京博睿宏远数据科技股份有限公司 | 一种应用数据采集方法、装置、计算机设备及存储介质 |
CN115865734A (zh) * | 2022-12-02 | 2023-03-28 | 上海浦东发展银行股份有限公司 | 一种故障检测方法、数据生成方法、装置、设备及介质 |
CN115878207A (zh) * | 2021-09-27 | 2023-03-31 | 华为云计算技术有限公司 | 一种微服务治理方法、装置及*** |
CN116166505A (zh) * | 2023-02-22 | 2023-05-26 | 优维科技(深圳)有限公司 | 金融行业双态it架构的监控平台、方法、存储介质及设备 |
CN116232963A (zh) * | 2023-02-20 | 2023-06-06 | 中银消费金融有限公司 | 一种链路跟踪方法及*** |
-
2023
- 2023-10-30 CN CN202311419564.4A patent/CN117201292B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103118383A (zh) * | 2013-02-01 | 2013-05-22 | 中国科学技术大学 | 一种无线存取点状态综合监管***及方法 |
CN111158995A (zh) * | 2019-11-29 | 2020-05-15 | 武汉物易云通网络科技有限公司 | 基于skywalking、ELK平台实现跨***日志跟踪查询的方法及*** |
CN114697232A (zh) * | 2020-12-25 | 2022-07-01 | ***通信集团福建有限公司 | Skywalking探针的指标数据采集***、方法及电子设备 |
CN115878207A (zh) * | 2021-09-27 | 2023-03-31 | 华为云计算技术有限公司 | 一种微服务治理方法、装置及*** |
CN113965497A (zh) * | 2021-10-20 | 2022-01-21 | 平安医疗健康管理股份有限公司 | 服务器异常识别方法、装置、计算机设备及可读存储介质 |
CN114039900A (zh) * | 2021-11-03 | 2022-02-11 | 北京德塔精要信息技术有限公司 | 一种高效网络数据包协议分析方法和*** |
CN115220995A (zh) * | 2022-06-06 | 2022-10-21 | 浙江华云信息科技有限公司 | 一种基于agent探针的微服务全链路分析方法 |
CN115174542A (zh) * | 2022-07-01 | 2022-10-11 | 中国邮政储蓄银行股份有限公司 | 业务***的全链路采集方法、采集装置和采集*** |
CN115237713A (zh) * | 2022-07-22 | 2022-10-25 | 北京博睿宏远数据科技股份有限公司 | 一种应用数据采集方法、装置、计算机设备及存储介质 |
CN115865734A (zh) * | 2022-12-02 | 2023-03-28 | 上海浦东发展银行股份有限公司 | 一种故障检测方法、数据生成方法、装置、设备及介质 |
CN116232963A (zh) * | 2023-02-20 | 2023-06-06 | 中银消费金融有限公司 | 一种链路跟踪方法及*** |
CN116166505A (zh) * | 2023-02-22 | 2023-05-26 | 优维科技(深圳)有限公司 | 金融行业双态it架构的监控平台、方法、存储介质及设备 |
Non-Patent Citations (2)
Title |
---|
微服务故障诊断相关技术研究探讨;赵建涛;黄立松;;网络新媒体技术;20200115(第01期);全文 * |
微服务架构中服务监控***的设计与实现;王洪润;《中国优秀硕士学位论文全文数据库·信息科技辑》;20210515;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117201292A (zh) | 2023-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Cinque et al. | Microservices monitoring with event logs and black box execution tracing | |
US20170134247A1 (en) | System and method for measuring performance and availability of applications utilizing monitoring of distributed systems processes combined with analysis of the network communication between the processes | |
US8732516B2 (en) | Method and system for providing customer controlled notifications in a managed network services system | |
US7523198B2 (en) | Integrated testing approach for publish/subscribe network systems | |
US11520683B2 (en) | Delta state tracking for event stream analysis | |
US7907599B2 (en) | Determination of SIP transport to reduce call setup delays | |
CN112202635B (zh) | 链路的监控方法、装置、存储介质以及电子装置 | |
US20070116184A1 (en) | Method for testing the integrity of a communication cable | |
US20060246889A1 (en) | Wireless Data Device Performance Monitor | |
CN108683569A (zh) | 一种面向云服务基础设施的业务监测方法及*** | |
WO2016118942A1 (en) | Integrated customer contact center testing, monitoring and diagnostic systems | |
CN104348661B (zh) | 网络失效数据上传、接收方法和设备及记录方法和*** | |
US8572245B1 (en) | Using the TCP window size for identifying packets and debugging | |
CN117201292B (zh) | 能准确定位微服务间请求调用异常的方法 | |
CN117061384A (zh) | 一种模糊测试方法、装置、设备及介质 | |
Cinque et al. | An exploratory study on zeroconf monitoring of microservices systems | |
CN114172796B (zh) | 通信网络的故障定位方法及相关装置 | |
CN114598622A (zh) | 数据监控方法及装置、存储介质、计算机设备 | |
CN112671822B (zh) | 服务请求处理方法、装置、存储介质、服务器和*** | |
CN117255005B (zh) | 一种基于cdn的业务告警处理方法、装置、设备及介质 | |
US11477069B2 (en) | Inserting replay events in network production flows | |
CN114363846B (zh) | 物联网5g-sa计费拨测验证方法、***、装置及介质 | |
CN115102854B (zh) | 微服务的远程过程调用路由管理控制方法、***及设备 | |
CN113726865B (zh) | 基于边缘计算的数据传输与协同*** | |
CN112491637A (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 |