CN115002180A - 一种网络请求运行监测方法、装置和计算机可读介质 - Google Patents
一种网络请求运行监测方法、装置和计算机可读介质 Download PDFInfo
- Publication number
- CN115002180A CN115002180A CN202210588470.9A CN202210588470A CN115002180A CN 115002180 A CN115002180 A CN 115002180A CN 202210588470 A CN202210588470 A CN 202210588470A CN 115002180 A CN115002180 A CN 115002180A
- Authority
- CN
- China
- Prior art keywords
- network request
- code
- connection
- hooking
- stage
- 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
- 238000000034 method Methods 0.000 title claims abstract description 51
- 238000012544 monitoring process Methods 0.000 title claims abstract description 38
- 238000003780 insertion Methods 0.000 claims abstract description 32
- 230000037431 insertion Effects 0.000 claims abstract description 32
- 230000001427 coherent effect Effects 0.000 claims description 18
- 238000012806 monitoring device Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 5
- 238000002955 isolation Methods 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000009191 jumping Effects 0.000 claims description 2
- 230000006854 communication Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种网络请求运行监测方法、装置和计算机可读介质,所述方法包括:在网络请求的各个阶段对应的位于应用框架层的程序代码中确定勾取操作***点所在的代码模块;在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段;在所述网络请求运行时,通过***所述各个阶段的勾取操作的代码段的执行,获取所述网络请求的各个阶段对应的运行特征参数;基于所述运行特征参数对所述网络请求的各个阶段的运行情况进行分析与监测。本发明能够实现网络请求运行情况的高效和便捷监测。
Description
技术领域
本发明主要涉及信息技术领域,尤其涉及一种网络请求运行监测方法、装置和计算机可读介质。
背景技术
网络作为计算机通信的重要方式,几乎已经覆盖到每一个应用程序中。不管是聊天通讯,线上购物,还是在线支付,都离不开网络的支持。网络连接的重要性不言而喻,因此保证网络的健康运转亦极为重要。尤其是当发生网络故障的时候,由于网络请求环节多,使得定位问题变得尤为困难,因此需要有一种技术方案,实现对网络请求的运行情况的高效便捷的监测,使开发者在出现网络故障时能够更加快速准确地定位到网络故障对应的问题,为网络请求的正常运行提供保障。
发明内容
本发明要解决的技术问题是提供一种网络请求运行监测方法、装置和计算机可读介质,实现网络请求运行情况的高效和便捷监测。
为解决上述技术问题,本发明提供了一种网络请求运行监测方法,包括:在网络请求的各个阶段对应的位于应用框架层的程序代码中确定勾取操作***点所在的代码模块;在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段;在所述网络请求运行时,通过***所述各个阶段的勾取操作的代码段的执行,获取所述网络请求的各个阶段对应的运行特征参数;基于所述运行特征参数对所述网络请求的各个阶段的运行情况进行分析与监测。
在本发明的一实施例中,在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段包括:将所述网络请求的各个阶段对应的位于应用框架层的程序代码通过即时编译工具编译生成对应的Native层代码以及机器执行代码;在所述Native层代码中寻获所述应用框架层的程序代码的运行入口地址的参数值;根据所述运行入口地址的参数值,确定所述机器执行代码的起始执行位点的机器操作指令;
将所述起始执行位点的机器操作指令替换为与所述勾取操作的代码段对应的机器执行代码,实现指令跳转以进行勾取操作。
在本发明的一实施例中,所述网络请求的各个阶段包括DNS解析、建立Socket连接、SSL握手连接、数据发送、数据接收和Socket关闭阶段中的一个或多个阶段。
在本发明的一实施例中,所述运行特征参数包括起始时间、结束时间和运行结果。
在本发明的一实施例中,所述网络请求包括:Okhttp类型网络请求,Volley类型网络请求,HttpClient类型网络请求或HttpConnection类型网络请求。
在本发明的一实施例中,当所述网络请求运行于Android***时,所述勾取操作***点位于相应的代码模块。
在本发明的一实施例中,所述位于应用框架层的程序代码包括Java程序代码。
在本发明的一实施例中,所述Native层代码包括C/C++代码,所述应用框架层的程序代码编译后在Native层形成Method对象,所述运行入口地址的参数包括Method对象中的entry_point_from_quick_compiled_code参数。
在本发明的一实施例中,当所述网络请求包括分属于不同线程的多个网络请求且访问同一IP地址时,对所述不同线程进行线程间数据隔离,以使所述多个网络请求中的每一个网络请求的运行特征参数归属于相应的上下文。
在本发明的一实施例中,当所述网络请求运行于Android***时,通过ThreadLocal机制对所述不同线程进行线程间数据隔离。
在本发明的一实施例中,当一次网络请求运行且与一个IP地址连接建立完成后,将与当前IP地址连接对应的连接参数缓存于一个连接池;当所述一次网络请求之后的网络请求通过勾取操作,获取的运行特征参数无法找到相应的上下文时,从所述连接池中获取相应的连接参数,以匹配得到相应的上下文;所述缓存于连接池中的连接参数达到参数释放的阈值条件时,将相应的连接参数从连接池中移除。
在本发明的一实施例中,所述连接参数包括DNS解析、建立Socket连接和SSL握手连接阶段对应的连接参数。
在本发明的一实施例中,所述参数释放的阈值条件包括:连接参数对应的IP地址连接已断开或设置的连接参数缓存时长。
本发明还提供一种网络请求运行监测装置,包括:存储器,用于存储可由处理器执行的指令;以及处理器,用于执行所述指令以实现如前任一项所述的方法。
本发明还提供一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如前任一项所述的方法。
与现有技术相比,本发明具有以下优点:本申请的网络请求运行监测方法,能够监测网络请求中各个环节的运行情况,并且不依赖于特定的网络请求库,亦不受第三方网络库的版本升级切换或类型变化的影响,兼容性强,实现网络请求运行情况的高效和便捷监测。
附图说明
附图是为提供对本申请进一步的理解,它们被收录并构成本申请的一部分,附图示出了本申请的实施例,并与本说明书一起起到解释本申请原理的作用。附图中:
图1是本申请一实施例的网络请求运行监测方法流程图。
图2是本申请一实施例的网络请求运行监测方法中***用于勾取操作的代码段的流程图。
图3是本申请一实施例的网络请求运行监测方法中***用于勾取操作的代码段的过程示意图。
图4是本申请一实施例的网络请求运行监测装置的组成示意图。
具体实施方式
为了更清楚地说明本申请的实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
如本申请和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其他的步骤或元素。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本申请的范围。在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本申请中使用了流程图用来说明根据本申请的实施例的***所执行的操作。应当理解的是,前面或下面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各种步骤。同时,或将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本申请的实施例描述一种网络请求运行监测方法、装置和计算机可读介质。
图1是本申请一实施例的网络请求运行监测方法流程图。
如图1所示,网络请求运行监测方法包括,步骤101,在网络请求的各个阶段对应的位于应用框架层的程序代码中确定勾取操作***点所在的代码模块。步骤102,在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段。步骤103,在所述网络请求运行时,通过***所述各个阶段的勾取操作的代码段的执行,获取所述网络请求的各个阶段对应的运行特征参数.步骤104,基于所述运行特征参数对所述网络请求的各个阶段的运行情况进行分析与监测。
具体地,在步骤101,在网络请求的各个阶段对应的位于应用框架层的程序代码中确定勾取操作***点所在的代码模块。换言之,在网络请求的各个阶段对应的程序代码中确定勾取操作***点所在的代码模块,所述程序代码位于应用框架层(或称为Framework层),或称为运行于应用框架层或在应用框架层被执行。
在一些实施例中,所述网络请求的各个阶段包括DNS解析、建立Socket连接、SSL握手连接、数据发送、数据接收和Socket关闭阶段中的一个或多个阶段。
DNS(Domain Name System,域名***)是互联网访问的一项服务,它作为将域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网。Socket表示套接字。网络请求的两端(客户端和服务端,或Client端和Server端)的程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个Socket。SSL(Secure Sockets Layer,安全套接字协议)是为网络通信提供安全及数据完整性的一种安全协议。
在步骤102,在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段。
图2是本申请一实施例的网络请求运行监测方法中***用于勾取操作的代码段的流程图。勾取操作也可称为Hook操作。勾取操作***点也可称为Hook点。
在一些实施例中,参考图2,在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段包括:步骤201,将所述网络请求的各个阶段对应的位于应用框架层的程序代码通过即时编译工具编译生成对应的Native层代码以及机器执行代码;步骤202,在所述Native层代码中寻获所述应用框架层的程序代码的运行入口地址的参数值;步骤203,根据所述运行入口地址的参数值,确定所述机器执行代码的起始执行位点的机器操作指令;步骤204,将所述起始执行位点的机器操作指令替换为与所述勾取操作的代码段对应的机器执行代码。
在一些实施例中,位于应用框架层的程序代码包括Java程序代码。
图3是本申请一实施例的网络请求运行监测方法中***用于勾取操作的代码段的过程示意图。
参考图2和图3,具体地,在步骤201,将所述网络请求的各个阶段对应的位于应用框架层的程序代码通过即时编译工具编译生成对应的Native层代码以及机器执行代码。
在一些实施例中,当所述程序代码为Java程序代码时,所述即时编译工具包括JIT(Just In Time)编译器。
在一些实施例中,所述网络请求运行于Android(安卓)***。Native层是位于Andriod***分层中的应用程序层(APP层)、应用框架层(Framework层)以下的一层,Native层以下为内核(kernel)层。
在步骤202,在所述Native层代码中寻获所述应用框架层的程序代码的运行入口地址的参数值。
在一些实施例中,所述Native层代码包括C/C++代码,所述应用框架层的程序代码编译后在Native层形成Method对象,所述运行入口地址的参数包括Method对象中的entry_point_from_quick_compiled_code参数。
Native层代码例如图3中所示的方框302框示的代码。应用框架层的程序代码例如图3中所示的方框301框示的代码。方框301框示的代码更具体地可为,应用框架层的程序代码中勾取操作***点所在的代码模块。
在所述Native层代码中寻获所述应用框架层的程序代码的运行入口地址的参数值例如图3中所示的entry_point参数(或称为变量)对应的参数值。
在步骤203,根据所述运行入口地址的参数值,确定所述机器执行代码的起始执行位点的机器操作指令。
例如,图3中运行入口地址的参数值为参数entry_point对应的数值‘0x7f231234’,根据该运行入口地址的参数值,确定所述机器执行代码(方框312框示的代码)的起始执行位点的机器操作指令。图3中,所述机器执行代码的起始执行位点的机器操作指令为“push{r5,r6,r7,lr};sub sp,sp,#32”。
接下来,在步骤204,将所述起始执行位点的机器操作指令替换为与所述勾取操作的代码段对应的机器执行代码,实现指令跳转以进行勾取操作。
在图3中,例如将前述的机器执行代码的起始执行位点的机器操作指令为“push{r5,r6,r7,lr};sub sp,sp,#32”替换为与所述勾取操作的代码段对应的机器执行代码,具体例如方框322所框示的代码,实现指令跳转以进行勾取操作。勾取操作对应的机器执行代码运行完后,可跳转回前述的机器执行代码(方框312框示的代码)继续执行。
在一些实施例中,所述网络请求包括:Okhttp类型网络请求,Volley类型网络请求,HttpClient类型网络请求或HttpConnection类型网络请求。前述的Okhttp类型网络请求,Volley类型网络请求,HttpClient类型网络请求或HttpConnection类型网络请求皆为实现Https类型网络请求的具体实现方式。Https(Hyper Text Transfer Protocol overSecureSocket Layer)指超文本传输安全协议。
接下来,在步骤103,在所述网络请求运行时,通过***所述各个阶段的勾取操作的代码段的执行,获取所述网络请求的各个阶段对应的运行特征参数。
在一些实施例中,所述运行特征参数包括起始时间、结束时间和运行结果。
在步骤104,基于所述运行特征参数对所述网络请求的各个阶段的运行情况进行分析与监测。基于勾取操作获取所述网络请求的各个阶段对应的运行特征参数,对网络运行的情况进行监测,当网络出现故障时,能够快速定位网络请求运行过程中出现异常的环节,从而更快地确定引起网络故障的具体问题。
在一些实施例中,当所述网络请求运行于Android***时,所述勾取操作***点所在的代码模块包括:在所述DNS解析阶段,所述勾取操作***点所在的代码模块为java.net.Inet6AddressImpl.lookupHostByName模块;在所述建立Socket连接阶段,所述勾取操作***点所在的代码模块为java.net.PlainSocketImpl.socketConnect模块;在所述SSL握手连接阶段,所述勾取操作***点所在的代码模块为com.android.org.conscrypt.NativeCrypto.SSL_do_handshake或com.android.org.conscrypt.ConscryptEngineSocket.doHandshake模块;在所述数据发送阶段,所述勾取操作***点所在的代码模块为com.android.org.conscrypt.NativeCrypto.SSL_write或com.android.org.conscrypt.ConscryptEngineSocket$SSLOutputStream.write模块;在所述数据接收阶段,所述勾取操作***点所在的代码模块为com.android.org.conscrypt.NativeCrypto.SSL_read或com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read模块;在所述Socket关闭阶段,所述勾取操作***点所在的代码模块为java.net.PlainSocketImpl.socketConnect.socketClose0模块。具体可根据Android***不同版本来确定勾取操作***点所在的代码模块。
在网络请求运行监测方法的一些实施例中,当所述网络请求包括分属于不同线程的多个网络请求且访问同一IP地址(Internet Protocol Address)时,对所述不同线程进行线程间数据隔离,以使所述多个网络请求中的每一个网络请求的运行特征参数归属于相应的上下文。
当所述网络请求运行于Android***时,通过ThreadLocal机制对所述不同线程进行线程间数据隔离。
在网络请求运行监测方法的的一些实施例中,当一次网络请求运行且与一个IP地址连接建立完成后,将与当前IP地址连接对应的连接参数缓存于一个连接池。
当所述一次网络请求之后的网络请求通过勾取操作,获取的运行特征参数无法找到相应的上下文时,从所述连接池中获取相应的连接参数,以匹配得到相应的上下文。上下文包括当前的运行程序使用的运行环境,环境变量,实例变量,局部变量等。
所述缓存于连接池中的连接参数达到参数释放的阈值条件时,将相应的连接参数从连接池中移除。
在一些实施例中,所述连接参数包括DNS解析、建立Socket连接和SSL握手连接阶段对应的连接参数。所述参数释放的阈值条件包括:连接参数对应的IP地址连接已断开或设置的连接参数缓存时长,即在连接参数对应的IP地址连接已断开时,或连接参数缓存时长达到设定的阈值时长时,释放缓存的连接参数,以实现缓存池资源的更新利用。
本申请的网络请求运行监测方法,能够监测网络请求(例如Https网络请求)中各个环节(例如DNS解析、建立Socket连接、SSL握手、数据发送、数据接收等环节)的耗时,运行结果以及产生的异常。本申请的技术方案不依赖于特定的网络请求库(或称为第三方网络库),能够监测Okhttp,Volley,HttpClient,HttpConnection等各种类型的网络请求的运行情况,亦不受第三方网络库的版本升级或类型变化的影响。
本申请的技术方案还能够检测基于Socket协议的其他上层协议的运行情况,例如Https协议。并且,还能够监测Https请求的返回码,具体请求数据以及接收到的数据;或解析Https报文,以及还原相应数据。
本申请的技术方案避免了在应用程序层的第三方网络请求库中***勾取代码的实现方式,该种方式需随着第三方网络请求库的类型变化和版本变化而不断修改实现方式,扩展性弱且维护成本高。本申请的技术方案避免了前述的缺陷,提高了网络请求运行监测的效率和便捷性。
本申请还提供一种网络请求运行监测装置。图4示出了根据本申请一实施例的网络请求运行监测装置的组成示意图。网络请求运行监测装置400可包括内部通信总线401、处理器(Processor)402、只读存储器(ROM)403、随机存取存储器(RAM)404、以及通信端口405。网络请求运行监测装置400通过通信端口连接网络,并可与其他设备连接。内部通信总线401可以实现网络请求运行监测装置400组件间的数据通信。处理器402可以进行判断和发出提示。在一些实施例中,处理器402可以由一个或多个处理器组成。通信端口405可以实现从网络发送和接受信息及数据。网络请求运行监测装置400还可以包括不同形式的程序储存单元以及数据储存单元,例如只读存储器(ROM)403和随机存取存储器(RAM)404,能够存储计算机处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的程序指令。处理器执行这些指令以实现方法的主要部分。处理器处理的结果可通过通信端口传给用户设备,在用户界面上显示。
上述的网络请求运行监测装置400可以实施为计算机程序,保存在存储器中,并可记载到处理器402中执行,以实施本申请的网络请求运行监测方法。
本申请还提供了一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如上所述的网络请求运行监测方法。
本申请的一些方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“***”。处理器可以是一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DAPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器或者其组合。此外,本申请的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。例如,计算机可读介质可包括,但不限于,磁性存储设备(例如,硬盘、软盘、磁带……)、光盘(例如,压缩盘CD、数字多功能盘DVD……)、智能卡以及闪存设备(例如,卡、棒、键驱动器……)。
计算机可读介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、射频信号、或类似介质、或任何上述介质的组合。
同理,应当注意的是,为了简化本申请披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
虽然本申请已参照当前的具体实施例来描述,但是本技术领域中的普通技术人员应当认识到,以上的实施例仅是用来说明本申请,在没有脱离本申请精神的情况下还可作出各种等效的变化或替换,因此,只要在本申请的实质精神范围内对上述实施例的变化、变型都将落在本申请的权利要求书的范围内。
Claims (15)
1.一种网络请求运行监测方法,包括:
在网络请求的各个阶段对应的位于应用框架层的程序代码中确定勾取操作***点所在的代码模块;
在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段;
在所述网络请求运行时,通过***所述各个阶段的勾取操作的代码段的执行,获取所述网络请求的各个阶段对应的运行特征参数;
基于所述运行特征参数对所述网络请求的各个阶段的运行情况进行分析与监测。
2.根据权利要求1所述的网络请求运行监测方法,其特征在于,在所述勾取操作***点所在的代码模块,***与所述网络请求的各个阶段对应的勾取操作的代码段包括:
将所述网络请求的各个阶段对应的位于应用框架层的程序代码通过即时编译工具编译生成对应的Native层代码以及机器执行代码;
在所述Native层代码中寻获所述应用框架层的程序代码的运行入口地址的参数值;
根据所述运行入口地址的参数值,确定所述机器执行代码的起始执行位点的机器操作指令;
将所述起始执行位点的机器操作指令替换为与所述勾取操作的代码段对应的机器执行代码,实现指令跳转以进行勾取操作。
3.根据权利要求1所述的网络请求运行监测方法,其特征在于,所述网络请求的各个阶段包括DNS解析、建立Socket连接、SSL握手连接、数据发送、数据接收和Socket关闭阶段中的一个或多个阶段。
4.根据权利要求1所述的网络请求运行监测方法,其特征在于,所述运行特征参数包括起始时间、结束时间和运行结果。
5.根据权利要求1所述的网络请求运行监测方法,其特征在于,所述网络请求包括:Okhttp类型网络请求,Volley类型网络请求,HttpClient类型网络请求或HttpConnection类型网络请求。
6.根据权利要求3所述的网络请求运行监测方法,其特征在于,当所述网络请求运行于Android***时,所述勾取操作***点所在的代码模块包括:
在所述DNS解析阶段,所述勾取操作***点所在的代码模块为java.net.Inet6AddressImpl.lookupHostByName模块;
在所述建立Socket连接阶段,所述勾取操作***点所在的代码模块为java.net.PlainSocketImpl.socketConnect模块;
在所述SSL握手连接阶段,所述勾取操作***点所在的代码模块为com.android.org.conscrypt.NativeCrypto.SSL_do_handshake或com.android.org.conscrypt.ConscryptEngineSocket.doHandshake模块;
在所述数据发送阶段,所述勾取操作***点所在的代码模块为com.android.org.conscrypt.NativeCrypto.SSL_write或com.android.org.conscrypt.ConscryptEngineSocket$SSLOutputStream.write模块;
在所述数据接收阶段,所述勾取操作***点所在的代码模块为com.android.org.conscrypt.NativeCrypto.SSL_read或com.android.org.conscrypt.ConscryptEngineSocket$SSLInputStream.read模块;
在所述Socket关闭阶段,所述勾取操作***点所在的代码模块为java.net.PlainSocketImpl.socketConnect.socketClose0模块。
7.根据权利要求1所述的网络请求运行监测方法,其特征在于,所述位于应用框架层的程序代码包括Java程序代码。
8.根据权利要求2所述的网络请求运行监测方法,其特征在于,所述Native层代码包括C/C++代码,所述应用框架层的程序代码编译后在Native层形成Method对象,所述运行入口地址的参数包括Method对象中的entry_point_from_quick_compiled_code参数。
9.根据权利要求1所述的网络请求运行监测方法,其特征在于,当所述网络请求包括分属于不同线程的多个网络请求且访问同一IP地址时,对所述不同线程进行线程间数据隔离,以使所述多个网络请求中的每一个网络请求的运行特征参数归属于相应的上下文。
10.根据权利要求9所述的网络请求运行监测方法,其特征在于,当所述网络请求运行于Android***时,通过ThreadLocal机制对所述不同线程进行线程间数据隔离。
11.根据权利要求1所述的网络请求运行监测方法,其特征在于,当一次网络请求运行且与一个IP地址连接建立完成后,将与当前IP地址连接对应的连接参数缓存于一个连接池;
当所述一次网络请求之后的网络请求通过勾取操作,获取的运行特征参数无法找到相应的上下文时,从所述连接池中获取相应的连接参数,以匹配得到相应的上下文;
所述缓存于连接池中的连接参数达到参数释放的阈值条件时,将相应的连接参数从连接池中移除。
12.根据权利要求11所述的网络请求运行监测方法,其特征在于,所述连接参数包括DNS解析、建立Socket连接和SSL握手连接阶段对应的连接参数。
13.根据权利要求11所述的网络请求运行监测方法,其特征在于,所述参数释放的阈值条件包括:连接参数对应的IP地址连接已断开或设置的连接参数缓存时长。
14.一种网络请求运行监测装置,包括:
存储器,用于存储可由处理器执行的指令;以及
处理器,用于执行所述指令以实现如权利要求1-13任一项所述的方法。
15.一种存储有计算机程序代码的计算机可读介质,所述计算机程序代码在由处理器执行时实现如权利要求1-13任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210588470.9A CN115002180B (zh) | 2022-05-26 | 2022-05-26 | 一种网络请求运行监测方法、装置和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210588470.9A CN115002180B (zh) | 2022-05-26 | 2022-05-26 | 一种网络请求运行监测方法、装置和计算机可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115002180A true CN115002180A (zh) | 2022-09-02 |
CN115002180B CN115002180B (zh) | 2024-05-14 |
Family
ID=83029428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210588470.9A Active CN115002180B (zh) | 2022-05-26 | 2022-05-26 | 一种网络请求运行监测方法、装置和计算机可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115002180B (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103632099A (zh) * | 2013-09-29 | 2014-03-12 | 广州华多网络科技有限公司 | 未导出的Native API函数获取方法及装置 |
CN104951375A (zh) * | 2015-07-01 | 2015-09-30 | 北京博睿宏远科技发展有限公司 | 基于函数拦截技术的手机app性能数据采集方法 |
CN110347374A (zh) * | 2019-06-14 | 2019-10-18 | 北京数立得科技有限公司 | 一种富客户端业务服务封装和调用***、方法和装置 |
CN111132138A (zh) * | 2019-12-06 | 2020-05-08 | 中国电子科技集团公司电子科学研究院 | 一种移动应用程序透明通信保护方法与装置 |
CN111914251A (zh) * | 2020-07-03 | 2020-11-10 | 上海理想信息产业(集团)有限公司 | 一种基于混合控制技术的智能终端安全保护方法及*** |
CN112245903A (zh) * | 2020-10-26 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 云应用中网络状态指示方法、操作***、装置及存储介质 |
CN112835639A (zh) * | 2021-01-29 | 2021-05-25 | 百度在线网络技术(北京)有限公司 | 一种Hook实现方法、装置、设备、介质及产品 |
CN112860522A (zh) * | 2021-03-02 | 2021-05-28 | 北京梧桐车联科技有限责任公司 | 程序的运行监控方法、装置及设备 |
CN113395242A (zh) * | 2020-03-13 | 2021-09-14 | 北京奇虎科技有限公司 | 应用数据包的抓包方法、装置以及计算设备 |
CN113485903A (zh) * | 2021-07-09 | 2021-10-08 | 郑州阿帕斯数云信息科技有限公司 | 一种基于hook的参数统计方法和装置 |
CN114116373A (zh) * | 2021-10-20 | 2022-03-01 | 百度在线网络技术(北京)有限公司 | 一种网络请求监控方法、装置、电子设备及存储介质 |
-
2022
- 2022-05-26 CN CN202210588470.9A patent/CN115002180B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103632099A (zh) * | 2013-09-29 | 2014-03-12 | 广州华多网络科技有限公司 | 未导出的Native API函数获取方法及装置 |
CN104951375A (zh) * | 2015-07-01 | 2015-09-30 | 北京博睿宏远科技发展有限公司 | 基于函数拦截技术的手机app性能数据采集方法 |
CN110347374A (zh) * | 2019-06-14 | 2019-10-18 | 北京数立得科技有限公司 | 一种富客户端业务服务封装和调用***、方法和装置 |
CN111132138A (zh) * | 2019-12-06 | 2020-05-08 | 中国电子科技集团公司电子科学研究院 | 一种移动应用程序透明通信保护方法与装置 |
CN113395242A (zh) * | 2020-03-13 | 2021-09-14 | 北京奇虎科技有限公司 | 应用数据包的抓包方法、装置以及计算设备 |
CN111914251A (zh) * | 2020-07-03 | 2020-11-10 | 上海理想信息产业(集团)有限公司 | 一种基于混合控制技术的智能终端安全保护方法及*** |
CN112245903A (zh) * | 2020-10-26 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 云应用中网络状态指示方法、操作***、装置及存储介质 |
CN112835639A (zh) * | 2021-01-29 | 2021-05-25 | 百度在线网络技术(北京)有限公司 | 一种Hook实现方法、装置、设备、介质及产品 |
CN112860522A (zh) * | 2021-03-02 | 2021-05-28 | 北京梧桐车联科技有限责任公司 | 程序的运行监控方法、装置及设备 |
CN113485903A (zh) * | 2021-07-09 | 2021-10-08 | 郑州阿帕斯数云信息科技有限公司 | 一种基于hook的参数统计方法和装置 |
CN114116373A (zh) * | 2021-10-20 | 2022-03-01 | 百度在线网络技术(北京)有限公司 | 一种网络请求监控方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115002180B (zh) | 2024-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9589229B2 (en) | Dynamic model-based analysis of data centers | |
US9734005B2 (en) | Log analytics for problem diagnosis | |
CA2763547C (en) | Fix delivery system | |
US8429645B2 (en) | Method for optimizing migration of software applications to address needs | |
Hanappi et al. | Asserting reliable convergence for configuration management scripts | |
Peiris et al. | Pad: Performance anomaly detection in multi-server distributed systems | |
CN110309029A (zh) | 异常数据的采集方法、装置、计算机设备和存储介质 | |
CN110784528B (zh) | 一种文件下载方法、装置和存储介质 | |
CN109492181A (zh) | 页面跳转方法、装置、计算机设备和存储介质 | |
US10528456B2 (en) | Determining idle testing periods | |
US11294791B2 (en) | Code optimization for connected managed runtime environments | |
US20240137278A1 (en) | Cloud migration data analysis method using system process information, and system thereof | |
US20110055814A1 (en) | Compiler-assisted program source code filter | |
US9116713B1 (en) | System and method for expression evaluation in a distributed networking environment | |
WO2024001240A1 (zh) | 多种技术栈的任务集成方法及装置 | |
CN115002180B (zh) | 一种网络请求运行监测方法、装置和计算机可读介质 | |
WO2023227303A1 (en) | Binary translation using raw binary code with compiler produced metadata | |
CN113672233B (zh) | 一种基于Redfish的服务器带外管理方法、装置及设备 | |
Wei et al. | An agent-based services framework with adaptive monitoring in cloud environments | |
WO2019111109A1 (en) | Error handling | |
US20170371648A1 (en) | Monitoring rules declaration and automatic configuration of the monitoring rules | |
CN117009962B (zh) | 一种基于有效标签的异常检测方法、装置、介质及设备 | |
US20240103853A1 (en) | Code maintenance system | |
Pandey et al. | Optimize Build Time of Microservice Based Applicationusing Containerization and Browser Caching | |
Chang et al. | Discovering programming rules and violations by mining interprocedural dependences |
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 |