CN112839096B - 监控函数执行时长的方法、装置、计算机设备及存储介质 - Google Patents
监控函数执行时长的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112839096B CN112839096B CN202110048309.8A CN202110048309A CN112839096B CN 112839096 B CN112839096 B CN 112839096B CN 202110048309 A CN202110048309 A CN 202110048309A CN 112839096 B CN112839096 B CN 112839096B
- Authority
- CN
- China
- Prior art keywords
- execution
- data
- function
- time
- functions
- 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
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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/442—Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
- H04N21/44204—Monitoring of content usage, e.g. the number of times a movie has been viewed, copied or the amount which has been watched
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明属于软件开发领域,涉及一种监控函数执行时长的方法,包括:获取客户端发送的HTTP请求,HTTP请求包括有被监控的多个函数的执行数据,执行数据至少包括函数执行的开始时刻和结束时刻;根据HTTP请求获取执行数据并通过目标类将执行数据推送至预设的消息队列;通过消息队列将执行数据发送至存储层,得到存储数据ID;根据存储数据ID获取执行数据并根据每个函数的执行时长,得到多个函数的最大执行时长以及函数的执行时长超过第一预设时长的次数;若最大执行时长大于第二预设时长,或者函数的执行时长超过第设时长的次数大于预设的次数阈值,则发出警告。本申请还提供一种监控函数执行时长的装置、计算机设备及存储介质。达到监控函数执行时长的目的。
Description
技术领域
本发明涉及软件开发领域,尤其涉及一种监控函数执行时长的方法、装置、计算机设备及存储介质。
背景技术
随着微服务架构的发展,客户端中的的服务模块被划分多个业务系统,如果一个请求耗时过长,该请求经过N个服务,将导致整个请求中的服务链路难以跟踪,虽然运维有相关监控数据,但是针对整个请求来说,服务模块之间没有相关监控数据,并且存在多个要监控的功能,导致无法定位到对应功能的具体函数,进而没办法很好的监控某个功能模块的执行时间。
发明内容
本发明实施例提供了一种监控函数执行时长的方法、装置、计算机设备及存储介质,旨在解决现有技术方法中无法监控某个功能模块的执行时间。
本发明实施例提供了一种监控函数执行时长的方法、装置、计算机设备及存储介质,旨在解决现有技术方法中无法定位到函数的执行时长的问题。
第一方面,本发明实施例提供了一种监控函数执行时长的方法,其包括:
获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻;
根据所述HTTP请求搜索到对应的登录模块;
将所述登录模块通过Java的反射机制生成动态类,得到目标类;
根据所述HTTP请求获取所述执行数据并通过所述目标类将所述执行数据推送至预设的消息队列;
通过所述消息队列将所述执行数据发送至存储层,得到存储数据ID;
根据所述存储数据ID获取所述执行数据并根据每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数;
若所述最大执行时长大于第二预设时长,或者所述函数的执行时长超过第一预设时长的次数大于预设的次数阈值,则发出警告。
第二方面,本发明实施例提供了一种监控函数执行时长的装置,其包括:
请求获取单元,用于获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻;
登录模块搜索单元,用于根据所述HTTP请求搜索到对应的登录模块;
目标类生成单元,用于将所述登录模块通过Java的反射机制生成动态类,得到目标类;
数据推送单元,用于根据所述HTTP请求获取所述执行数据并通过所述目标类将所述执行数据推送至预设的消息队列
发送单元,用于通过所述消息队列将所述执行数据发送至存储层,得到存储数据ID;
分析单元,用于根据所述存储数据ID获取所述执行数据并分析每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数;
警告输出单元,用于若所述最大执行时长大于第二预设时长,或者所述函数的执行时长超过第一预设时长的次数大于预设的次数阈值,则发出警告。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的监控函数执行时长的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的监控函数执行时长的方法。
本发明实施例提供了一种监控函数执行时长的方法、装置、计算机设备及存储介质。本发明的实施例通过获取用户的HTTP请求,通过在HTTP请求中的各项数据找到对应的登录模块,从而使得服务器定位到具体要监控的函数。通过Java的反射机制以及消息队列将数据推送到存储层进行存储,以使得多个函数要调用数据时可以随时取出,不用重复获取,提高了监控的时效性和精准性。最后通过在存储层获取对应的数据使得可以监控函数的执行时长。通过实施本发明的实施例,可快速且准确地监控函数的执行时长,提高监控效率和准确性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1-1为本发明实施例提供的监控函数执行时长的方法的流程示意图;
图1-2为本发明实施例提供的监控函数执行时长的方法的子流程示意图;
图1-3为本发明实施例提供的监控函数执行时长的方法的另一子流程示意图;
图1-4为本发明实施例提供的监控函数执行时长的方法的另一子流程示意图;
图1-5为本发明实施例提供的监控函数执行时长的方法的另一子流程示意图;
图1-6为本发明实施例提供的监控函数执行时长的方法的另一子流程示意图;
图1-7为本发明实施例提供的监控函数执行时长的方法的另一子流程示意图;
图2为本发明实施例提供的监控函数执行时长的装置的示意性框图;
图3为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1-1,图1-1是本发明实施例提供的监控函数执行时长的方法的流程示意图,该监控函数执行时长的方法应用于服务器中,该方法通过服务器的执行程序执行,服务器即是用于执行监控函数执行时长的方法的终端设备,服务器可以是提供各种服务的服务器。需要说明的是,本发明实施例所提供的监控函数执行时长的方法一般由服务器执行,相应地,监控函数执行时长的装置一般配置于服务器中。如图1-1所示,该方法包括步骤101~107。
101、获取客户端发送的超文本传输协议(HyperText Transfer Protocol,HTTP)请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据包括函数执行的开始时刻和结束时刻。
本实施例中,HTTP请求是指从客户端到服务器端的请求消息。HTTP请求中的数据可以是多个函数的开始时刻和结束时刻。例如某个函数为用户触发某个功能所记录的时刻,例如用户在2010年,10月10日,10点10分10秒触发了一个观看视频的请求,这时候开始处理记录这个时刻可以记录成201010101010-A,即开始时刻,而处理这个过程用了两秒,时刻来到了2010年,10月10日,10点10分12秒,此时可以记录成201010101012-A,即结束时刻,其中A代表观看视频这个功能。通过上述方式通过HTTP请求记录了用户触发观看视频功能函数的开始时刻以及结束时刻。例如,用户点击WEB浏览器登录页面按钮,WEB浏览器与WEB服务器建立TCP连接,WEB浏览器向WEB服务器发送HTTP请求,通过HTTP请求将对应记录的数据发送至服务器。
一些实施方式中,所述获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻,包括:
101-1、通过页面按钮控件获取用户的登录请求;
101-2、当接收到所述登录请求后,与所述客户端建立TCP协议;
101-3、当所述TCP协议建立完成后,获取所述客户端发送的所述HTTP请求。
上述实施方式中,控件是指对数据和方法的封装,而页面按钮控件是指通过封装形成的按钮。登录请求是指用于指示用户登录账户信息的请求,例如用户在终端设备中点击某个页面按钮,此时触发了登录请求。当用户触发登录请求以后开始建立与服务器的TCP连接,通过TCP连接将对应的信息以HTTP请求的方式发送至服务器。所述登录请求至少包括用户的账号以及密码。TCP旨在适应支持多网络应用的分层协议层次结构。连接到不同但互连的计算机通信网络的主计算机中的成对进程之间依靠TCP提供可靠的通信服务。TCP假设它可以从较低级别的协议获得简单的,可能不可靠的数据报服务。原则上,TCP应该能够在从硬线连接到分组交换或电路交换网络的各种通信系统之上操作。是一种面向连接的、可靠的、基于字节流的传输层通信协议。通过上述方式可以提高传输的稳定性。
一些实施方式中,所述当接收到所述登录请求后,与所述客户端建立TCP协议之后,所述方法还包括:
101-21、检测是否与所述客户端成功连接;
101-22、若与所述客户端已成功连接,则发送至少一个消息至所述客户端;
101-23、若与所述客户端未成功连接,则重新连接或提示连接错误。
上述实施方式中,通过上述方式检测服务器与客户端是否正常连接,是否可以相互发送数据。当所述TCP协议建立完成,获取所述客户端发送的所述HTTP请求。
102、根据所述HTTP请求搜索到对应的登录模块。
本实施例中,具体来说服务端接收到用户HTTP请求,根据HTTP请求中的信息找到对应的请求接口地址/Login,进而找到对应的实现方法Login(),即登录模块
103、将所述登录模块通过Java的反射机制生成动态类,得到目标类。
本实施例中,通过SPRING的AOP方式,新建切面类并实现doAround()方法,将Login()作为目标方法,在项目执行Login()方法时会通过Cglib和JDK(Java所提供的反射机制)来动态生成代理类,得到动态类,即目标类。
104、根据所述HTTP请求获取所述执行数据并通过所述目标类将所述执行数据推送至预设的消息队列。
本实施例中,通过从HTTP请求中提取对应的数据,再将对应的数据保存至消息队列,然后将对应的数据以消息队列的方式发送至Elasticsearch,通过Elasticsearch进行保存,方便后续调用存储的数据。
一些实施方式中,所述根据所述HTTP请求搜索到对应的登录模块,所述执行数据还包括函数名,包括:
104-1、建立不同格式数据的映射关系,得到数据格式映射关系表;
104-2、根据所述数据格式映射表将所述HTTP请求中的所述数据进行格式转换,得到转换后的数据;
104-3、根据所述函数名找到对应的登录模块,得到初始登录模块;
104-4、将所述转换后的数据作为参数输入至所述初始登录模块,得到所述对应的登录模块。
上述实施方式中,例如建立int-char类型关系表,将int类型数据转换成char类型,通过将HTTP请求中的所有int类型数据都转换成char类型,得到转换后的数据,找到对应的Login()模块,将转换后的数据作为Login模块的参数输入进去。
105、通过所述消息队列将所述执行数据发送至存储层,得到存储数据ID
本实施例中,消息队列是指在消息的传输过程中保存消息的容器。存储层是指Elasticsearch。Elasticsearch是一个基于Lucene的搜索服务器。提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。执行Login()方法前后会先执行doAround()里的逻辑,编写将开始时刻,结束时刻,对应的线程,函数名称等需要收集的相关数据推送到指定的消息队列,使用消息队列的好处是可以做到解耦和提高并发量,常用的消息中间件如KAFKA,RABBITMQ等。消息中间件是基于队列与消息传递技术,在网络环境中为应用系统提供同步或异步、可靠的消息传输的支撑性软件系统。即从HTTP请求中找到对应的实现方法Login(),通过JDK生成目标类,在目标类中编写将对应数据推送到消息队列的方法,通过目标类将数据推送到指定的消息队列,通过消息队列将数据发送至存储层。通过执行编写好的Login()方法自动生成动态类,从Http请求中推送到生成的动态类中得到对应的数据,将对应的数据推送到消息队列,消息队列基于队列与消息传递技术将对应的数据发送至存储层Elasticsearch。
106、根据所述存储数据ID获取所述执行数据并根据每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数。
一些实施方式中,所述获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻,包括:
106-1、获取存储数据,得到所述HTTP请求中对应的多个函数的开始时刻和结束时刻;
106-2、通过所述多个函数的开始时刻和结束时刻计算得到多个执行时长;
106-3、选取所述多个执行时长中的最大值作为最大执行时长;
106-4、统计所述函数的执行时长超过第一预设时长的次数。
107、若所述最大执行时长大于第二预设时长,或者所述函数的执行时长超过第一预设时长的次数大于预设的次数阈值,则发出警告。
上述实施方式中,例如以方法为维度且设置阈值Login()方法执行时长超过5S或者一个小时内超过4S的次数达到100次时预警,执行Login()方法时推送数据(方法名Login,线程ID,方法执行前开始时刻startTime,方法执行后结束时刻endTime等),可以计算出执行时长等于endTime-startTime,统计超过4S时函数的执行次数,达到阈值5S或者一小时内统计次数达到100次时发送邮件实时提醒。
一些实施方式中,所述根据所述存储数据分析每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数之后,所述方法还包括:
107-1、通过可视化图表展示分析结果。
上述实施方式中,分析结果可以是每个函数的执行时长或者警告次数等。所述可视化图表至少包括条形图、直方图、折线图和饼图。所述可视化图表通过用户选择可视化图表类型进行选择,用户可以保存展示任意一项或者多项可视化图表。
一些实施方式中,所述获取存储数据,得到所述HTTP请求中对应的多个函数的开始时刻和结束时刻之前,所述方法还包括:
106-11、若获取到多个所述HTTP请求,确定所述HTTP请求的数量;
106-12、当所述HTTP请求的数量超过第一阈值时,则创建第一阈值个数的线程池;
106-13、当所述HTTP请求的数量小于或等于第一阈值时,则创建与所述HTTP请求的数量相对应个数的线程池。
上述实施方式中,第一阈值根据服务器的性能进行设定,性能考量包括服务器的中央处理器处理速度,内存大小等。使用多线程处理技术可以把占据时间长的程序中的任务放到后台去处理,以加快任务的处理速度,减少用户的等待时间。上述方式中,多线程技术可以使得多个HTTP请求进行并行处理,由于每个服务器性能不一致,当处理的HTTP请求过多,会导致服务器崩溃,从而影响用户体验以及加大维护成本。因此合理设置一个线程阈值可以使得增加用户体验。
本发明实施例提供了一种监控函数执行时长的方法、装置、计算机设备及存储介质。本发明的实施例通过在HTTP请求中的各项数据找到对应的登录,从而使得服务器定位到具体要监控的函数。通过Java的反射机制以及消息队列将数据推送到存储层进行存储,以使得多个函数要调用数据时可以随时取出,不用重复获取,提高了监控的时效性和精准性。最后通过在存储层获取对应的数据使得可以监控函数的执行时长。
本发明中的技术方法可应用于智慧政务/智慧城管/智慧社区/智慧安防/智慧物流/智慧医疗/智慧教育/智慧环保/智慧交通等包含进行监控函数执行时长的的应用场景中,从而推动智慧城市的建设。
本发明实施例还提供一种监控函数执行时长的装置,该监控函数执行时长的装置用于执行前述监控函数执行时长的方法的任一实施例。具体地,请参阅图2,图2是本发明实施例提供的监控函数执行时长的装置的示意性框图。该监控函数执行时长的装置可配置于用户终端中。
如图2所示,监控函数执行时长的装置200包括请求获取单元210、登录模块搜索单元220、目标类生成单元230、数据推送单元240发送单元250、分析单元260以及警告输出单元270。
请求获取单元210,用于获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻;
登录模块搜索单元220,用于根据所述HTTP请求搜索到对应的登录模块;
目标类生成单元230,用于根据所述HTTP请求获取所述执行数据并通过所述目标类将所述执行数据推送至预设的消息队列;
数据推送单元240,用于根据所述HTTP请求获取所述执行数据并通过所述目标类将所述执行数据推送至预设的消息队列
发送单元250,用于通过所述消息队列将所述执行数据发送至存储层,得到存储数据ID;
分析单元260,用于根据所述存储数据ID获取所述执行数据并根据每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数;
警告输出单元270,用于若所述最大执行时长大于第二预设时长,或者所述函数的执行时长超过第一预设时长的次数大于预设的次数阈值,则发出警告。
在本实施例的一些可选的实现方式中,所述请求获取单元210包括登录请求获取子单元、传输协议建立子单元以及HTTP请求获取子单元。
登录请求获取子单元,用于通过页面按钮控件获取用户的登录请求;
传输协议建立子单元,用于当接收到所述登录请求后,与所述客户端建立TCP协议;
HTTP请求获取子单元,用于当所述TCP协议建立完成后,获取所述客户端发送的所述HTTP请求。
在本实施例的一些可选的实现方式中,上述装置200还包括:连接检测单元,所述连接检测单元包括:连接检测子单元以及提示发送子单元。
连接子单元,用于检测是否与所述客户端成功连接;
提示发送子单元,用于若与所述客户端已成功连接,则发送至少一个消息至所述客户端;
若与所述客户端未成功连接,则重新连接或提示连接错误。
在本实施例的一些可选的实现方式中,所述登录模块搜索单元220包括映射关系设置子单元、格式转换子单元、初始登录模块搜素子单元以及登录模块设置子单元。
映射关系设置子单元用于建立不同格式数据的映射关系,得到数据格式映射关系表;
格式转换子单元用于根据所述数据格式映射表将所述HTTP请求中的所述数据进行格式转换,得到转换后的数据;
初始登录模块搜素子单元用于根据所述函数名找到对应的登录模块,得到初始登录模块;
登录模块设置子单元用于将所述转换后的数据作为参数输入至所述初始登录模块,得到所述对应的登录模块
在本实施例的一些可选的实现方式中,所述分析单元250包括时刻获取子单元、时长计算子单元、目标时长最大值获取子单元以及统计子单元。
时刻获取子单元,用于获取存储数据,得到所述HTTP请求中对应的多个函数的开始时刻和结束时刻;
时长计算子单元,用于通过所述多个函数的开始时刻和结束时刻计算得到多个执行时长;
目标时长最大值获取子单元,用于选取所述多个执行时长中的最大值作为最大执行时长;
统计子单元,用于统计所述函数的执行时长超过第一预设时长的次数。
在本实施例的一些可选的实现方式中,上述装置200还包括:线程创建单元,所述线程创建单元包括:请求数量获取子单元以及线程池创建子单元。
请求数量获取子单元,用于若获取到多个所述HTTP请求,确定所述HTTP请求的数量;
线程池创建子单元,用于当所述HTTP请求的数量超过第一阈值时,则创建第一阈值个数的线程池;
当所述HTTP请求的数量小于或等于第一阈值时,则创建与所述HTTP请求的数量相对应个数的线程池。
在本实施例的一些可选的实现方式中,上述装置200还包括:图表创建单元,所述图表创建单元包括:图标分析子单元。
图标分析子单元,用于通过可视化图表展示分析结果。
本发明实施例提供了一种监控函数执行时长的方法、装置、计算机设备及存储介质。本发明的实施例通过在HTTP请求中的各项数据找到对应的登录,从而使得服务器定位到具体要监控的函数。通过Java的反射机制以及消息队列将数据推送到存储层进行存储,以使得多个函数要调用数据时可以随时取出,不用重复获取,提高了监控的时效性和精准性。最后通过在存储层获取对应的数据使得可以监控函数的执行时长。
上述监控函数执行时长的装置可以实现为计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
请参阅图3,图3是本发明实施例提供的计算机设备的示意性框图。该计算机设备可以是用于执行监控函数执行时长的方法以进行监控函数执行时长的的用户终端。
参阅图3,该计算机设备300包括通过系统总线301连接的处理器302、存储器和网络接口305,其中,存储器可以包括非易失性存储介质303和内存储器304。
该非易失性存储介质303可存储操作系统3031和计算机程序3032。该计算机程序3032被执行时,可使得处理器302执行监控函数执行时长的方法。
该处理器302用于提供计算和控制能力,支撑整个计算机设备300的运行。
该内存储器304为非易失性存储介质303中的计算机程序3032的运行提供环境,该计算机程序3032被处理器302执行时,可使得处理器302执行监控函数执行时长的方法。
该网络接口305用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图3中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备300的限定,具体的计算机设备300可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器302用于运行存储在存储器中的计算机程序3032,以实现上述的监控函数执行时长的方法中对应的功能。
本领域技术人员可以理解,图3中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其它实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图3所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器302可以是中央处理单元(CentralProcessing Unit,CPU),该处理器302还可以是其它通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现上述的监控函数执行时长的方法中所包含的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种监控函数执行时长的方法,其特征在于,所述方法包括:
获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数名、函数执行的开始时刻和结束时刻;
根据所述HTTP请求搜索到对应的登录模块;
将所述登录模块通过Java的反射机制生成动态类,得到目标类;
根据所述HTTP请求获取所述执行数据并通过所述目标类将所述执行数据推送至预设的消息队列;
通过所述消息队列将所述执行数据发送至存储层,得到存储数据ID;
根据所述存储数据ID获取所述执行数据并分析每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数;
若所述最大执行时长大于第二预设时长,或者所述函数的执行时长超过第一预设时长的次数大于预设的次数阈值,则发出警告。
2.根据权利要求1所述的监控函数执行时长的方法,其特征在于,所述获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻,包括:
通过页面按钮控件获取用户的登录请求;
当接收到所述登录请求后,与所述客户端建立TCP协议;
当所述TCP协议建立完成后,获取所述客户端发送的所述HTTP请求。
3.根据权利要求2所述的监控函数执行时长的方法,其特征在于,所述当接收到所述登录请求后,与所述客户端建立TCP协议之后,所述方法还包括:
检测是否与所述客户端成功连接;
若与所述客户端已成功连接,则发送至少一个消息至所述客户端;
若与所述客户端未成功连接,则重新连接或提示连接错误。
4.根据权利要求1所述的监控函数执行时长的方法,其特征在于,所述根据所述HTTP请求搜索到对应的登录模块,所述执行数据还包括函数名,包括:
建立不同格式数据的映射关系,得到数据格式映射关系表;
根据所述数据格式映射关系表将所述HTTP请求中的所述数据进行格式转换,得到转换后的数据;
根据所述函数名找到对应的登录模块,得到初始登录模块;
将所述转换后的数据作为参数输入至所述初始登录模块,得到所述对应的登录模块。
5.根据权利要求1所述的监控函数执行时长的方法,其特征在于,所述根据所述存储数据ID获取所述执行数据并分析每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数,包括:
获取存储数据,得到所述HTTP请求中对应的多个函数的开始时刻和结束时刻;
通过所述多个函数的开始时刻和结束时刻计算得到多个执行时长;
选取所述多个执行时长中的最大值作为最大执行时长;
统计所述函数的执行时长超过第一预设时长的次数。
6.根据权利要求5所述的监控函数执行时长的方法,其特征在于,所述获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻之前,所述方法还包括:
若获取到多个所述HTTP请求,确定所述HTTP请求的数量;
当所述HTTP请求的数量超过第一阈值时,则创建第一阈值个数的线程池;
当所述HTTP请求的数量小于或等于第一阈值时,则创建与所述HTTP请求的数量相对应个数的线程池。
7.根据权利要求5所述的监控函数执行时长的方法,其特征在于,所述根据所述存储数据ID获取所述执行数据并分析每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数之后,所述方法还包括:
通过可视化图表展示分析结果。
8.一种监控函数执行时长的装置,其特征在于,包括:
请求获取单元,用于获取客户端发送的HTTP请求,所述HTTP请求包括有被监控的多个函数的执行数据,所述执行数据至少包括函数执行的开始时刻和结束时刻;
登录模块搜索单元,用于根据所述HTTP请求搜索到对应的登录模块;
目标类生成单元,用于将所述登录模块通过Java的反射机制生成动态类,得到目标类;
数据推送单元,用于根据所述HTTP请求获取所述执行数据并通过所述目标类将所述执行数据推送至预设的消息队列
发送单元,用于通过所述消息队列将所述执行数据发送至存储层,得到存储数据ID;
分析单元,用于根据所述存储数据ID获取所述执行数据并分析每个所述函数的执行时长,得到所述多个函数的最大执行时长以及所述函数的执行时长超过第一预设时长的次数;
警告输出单元,用于若所述最大执行时长大于第二预设时长,或者所述函数的执行时长超过第一预设时长的次数大于预设的次数阈值,则发出警告。
9.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述的监控函数执行时长的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行如权利要求1至7中任一项所述的监控函数执行时长的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110048309.8A CN112839096B (zh) | 2021-01-14 | 2021-01-14 | 监控函数执行时长的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110048309.8A CN112839096B (zh) | 2021-01-14 | 2021-01-14 | 监控函数执行时长的方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112839096A CN112839096A (zh) | 2021-05-25 |
CN112839096B true CN112839096B (zh) | 2022-07-22 |
Family
ID=75928074
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110048309.8A Active CN112839096B (zh) | 2021-01-14 | 2021-01-14 | 监控函数执行时长的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112839096B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897215A (zh) * | 2017-01-20 | 2017-06-27 | 华南理工大学 | 一种基于WebView网页加载性能及用户行为流数据采集的方法 |
CN110083391A (zh) * | 2019-03-16 | 2019-08-02 | 平安科技(深圳)有限公司 | 调用请求监控方法、装置、设备及存储介质 |
CN110768860A (zh) * | 2019-09-18 | 2020-02-07 | 平安科技(深圳)有限公司 | 一种测试方法、测试装置及电子设备 |
CN110781060A (zh) * | 2019-09-20 | 2020-02-11 | 平安普惠企业管理有限公司 | 函数监控方法、装置、计算机设备及存储介质 |
CN110808877A (zh) * | 2019-10-30 | 2020-02-18 | 深圳前海环融联易信息科技服务有限公司 | 基于接口响应时长的统计分析方法、装置及计算机设备 |
CN111367768A (zh) * | 2020-03-30 | 2020-07-03 | 中国建设银行股份有限公司 | 程序的函数响应时间监控方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7496903B2 (en) * | 2003-08-12 | 2009-02-24 | Hewlett-Packard Development Company, L.P. | Synthesizing application response measurement (ARM) instrumentation |
-
2021
- 2021-01-14 CN CN202110048309.8A patent/CN112839096B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897215A (zh) * | 2017-01-20 | 2017-06-27 | 华南理工大学 | 一种基于WebView网页加载性能及用户行为流数据采集的方法 |
CN110083391A (zh) * | 2019-03-16 | 2019-08-02 | 平安科技(深圳)有限公司 | 调用请求监控方法、装置、设备及存储介质 |
CN110768860A (zh) * | 2019-09-18 | 2020-02-07 | 平安科技(深圳)有限公司 | 一种测试方法、测试装置及电子设备 |
CN110781060A (zh) * | 2019-09-20 | 2020-02-11 | 平安普惠企业管理有限公司 | 函数监控方法、装置、计算机设备及存储介质 |
CN110808877A (zh) * | 2019-10-30 | 2020-02-18 | 深圳前海环融联易信息科技服务有限公司 | 基于接口响应时长的统计分析方法、装置及计算机设备 |
CN111367768A (zh) * | 2020-03-30 | 2020-07-03 | 中国建设银行股份有限公司 | 程序的函数响应时间监控方法及装置 |
Non-Patent Citations (2)
Title |
---|
Web服务运行时的监控和性能数据动态采集;张海腾等;《计算机集成制造系统》;20110815(第08期);全文 * |
性能监控框架Jwebap的研究与改进;程旭等;《计算技术与自动化》;20141228(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112839096A (zh) | 2021-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108156006B (zh) | 一种埋点数据上报方法、装置及电子设备 | |
US9369521B2 (en) | Naming of distributed business transactions | |
US9961129B2 (en) | Business transaction correlation with client request monitoring data | |
US9877283B2 (en) | Method and terminal for reporting sensor data and terminal | |
WO2021189954A1 (zh) | 日志数据处理方法、装置、计算机设备和存储介质 | |
US9491247B2 (en) | Automatic capture of detailed analysis information based on remote server analysis | |
CN111400378B (zh) | 基于ElasticSearch的日志实时显示方法、装置、计算机设备和介质 | |
CN110489315B (zh) | 一种操作请求的跟踪方法、跟踪装置及服务器 | |
WO2020232871A1 (zh) | 一种微服务依赖分析方法及装置 | |
US9311598B1 (en) | Automatic capture of detailed analysis information for web application outliers with very low overhead | |
CN111355622A (zh) | 容器的业务监控方法、系统和计算机可读存储介质 | |
CN113468025A (zh) | 一种数据告警方法、系统、装置及存储介质 | |
CN114153703A (zh) | 微服务的异常定位方法、装置、电子设备和程序产品 | |
CN112839096B (zh) | 监控函数执行时长的方法、装置、计算机设备及存储介质 | |
CN112948551A (zh) | 日志获取方法、装置、计算机设备及存储介质 | |
CN110298001B (zh) | 日志数据包的获取方法和装置及计算机可读存储介质 | |
CN110245120B (zh) | 流式计算系统及流式计算系统的日志数据处理方法 | |
CN110309028B (zh) | 监控信息获取方法、服务监控方法、装置及系统 | |
CN108390770B (zh) | 一种信息生成方法、装置及服务器 | |
CN116095534A (zh) | 一种采集测试设备数据的方法、装置及存储介质 | |
CN113114612B (zh) | 分布式系统调用链的确定方法和装置 | |
CN114371980A (zh) | 调用链路性能监控方法、装置、计算机设备及存储介质 | |
CN114238069A (zh) | 一种Web应用防火墙测试方法、装置、电子设备、介质及产品 | |
CN112671615A (zh) | 前端用户操作行为数据的收集方法、系统及存储介质 | |
CN112671822B (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: 20211022 Address after: 518000 1601 (unit 18), Qianhai free trade building, 3048 Xinghai Avenue, Nanshan street, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong Province Applicant after: Shenzhen saiante Technology Service Co.,Ltd. Address before: 1-34 / F, Qianhai free trade building, 3048 Xinghai Avenue, Mawan, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong 518000 Applicant before: Ping An International Smart City Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |