CN112579392B - 应用检测方法、装置、计算机设备和存储介质 - Google Patents
应用检测方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN112579392B CN112579392B CN202011518640.3A CN202011518640A CN112579392B CN 112579392 B CN112579392 B CN 112579392B CN 202011518640 A CN202011518640 A CN 202011518640A CN 112579392 B CN112579392 B CN 112579392B
- Authority
- CN
- China
- Prior art keywords
- application
- health
- health check
- check
- interface
- 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
-
- 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/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种应用检测方法、装置、计算机设备和存储介质。方法包括:在接收到监控探针发送的针对应用的探测请求后,通过应用所接入的健康检查组件,加载与应用的接口内部程序对应配置的各个检查项;基于健康检查组件内置的通用健康检查指示器、各个检查项以及与应用对应的配置文件,生成与各个检查项分别对应的目标健康检查指示器;调用各个目标健康检查指示器执行健康检查任务,以对接口内部程序进行健康检查,并生成与各个目标健康检查指示器对应的健康检查结果;汇总各个健康检查结果,得到应用的健康检查结果;通过健康检查组件将应用的健康检查结果返回至监控探针。采用本方法能够提高应用检测的准确性。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种应用检测方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,技术人员需要对应用进行健康检查,便于及时发现和解决问题。目前的方法是,通过通用健康检查指示器,对应用的运行状态进行检查。
然而,通用健康检查指示器只对应用的接口状态进行检查,无法对应用的进行更为细节的健康检查。因此,传统方法仅能检查接口状态过于局限,导致应用的健康检查结果并不准确,因而无法及时对应用存在的健康问题进行解决。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高应用健康检查结果准确性的应用检测方法、装置、计算机设备和存储介质。
一种应用检测方法,所述方法包括:
在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项;
基于所述健康检查组件内置的通用健康检查指示器、各个所述检查项以及与所述应用对应的配置文件,生成与各个所述检查项分别对应的目标健康检查指示器;所述配置文件,用于支持目标健康检查指示器执行健康检查任务;
调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,并生成与各个所述目标健康检查指示器对应的健康检查结果;
汇总各个所述健康检查结果,得到所述应用的健康检查结果;
通过所述健康检查组件将所述应用的健康检查结果返回至所述监控探针。
在其中一个实施例中,所述在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项,包括:
在接收到所述监控探针发送的针对所述应用的所述探测请求后,通过所述应用所接入的健康检查组件,查询健康检查指示表;
从所述健康检查指示表中确定与所述应用的接口内部程序对应配置的各个检查项;
通过初始化后的登记表登记与所述应用的接口内部程序对应配置的各个检查项;
加载所述登记表中所登记的所述检查项。
在其中一个实施例中,所述基于所述健康检查组件内置的通用健康检查指示器、各个所述检查项以及与所述应用对应的配置文件,生成与各个所述检查项分别对应的目标健康检查指示器,包括:
基于所述健康检查组件内置的通用健康检查指示器,由服务发现机制添加与所述应用的技术框架或技术栈对应的配置文件;
根据添加所述配置文件后的通用健康检查指示器,生成与各个所述检查项分别对应的目标健康检查指示器。
在其中一个实施例中,所述应用的健康检查结果中包括状态码;所述状态码用于标记所述应用的运行状态;
所述方法还包括:
在所述监测探针接收到所述应用的健康检查结果后,若所述应用的健康检查结果中的状态码表示应用运行状态异常,则通过监控探针执行异常处理策略。
在其中一个实施例中,所述方法还包括:
检测到应用接入至健康检查组件后,根据配置信息配置监控探针;
启动所述应用,对所述应用的健康检测端口进行监听;
接收所述监控探针向所述健康检测端口发送的针对应用的探测请求。
在其中一个实施例中,所述检测到应用接入至健康检查组件后,根据配置信息配置监控探针,包括:
检测到应用接入至健康检查组件后,根据配置的所述应用的健康检测端口、所述应用的待检查接口的路径以及探测请求发送的频率,配置监控探针;
所述接收所述监控探针向所述健康检测端口发送的针对应用的探测请求,包括:
通过所述应用的所述健康检测端口,接收监听到的所述监控探针按照所述频率发送的、且针对所述路径所对应的待检查接口的探测请求;
所述调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,包括:
调用所述目标健康检查指示器执行健康检查任务,以对所述应用中的所述待检查接口的接口内部程序进行健康检查。
一种应用检测装置,所述装置包括:
加载模块,用于在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项;
生成模块,用于基于所述健康检查组件内置的通用健康检查指示器、各个所述检查项以及与所述应用对应的配置文件,生成与各个所述检查项分别对应的目标健康检查指示器;
所述生成模块,还用于调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,并生成与各个所述目标健康检查指示器对应的健康检查结果;
汇总模块,用于汇总各个所述健康检查结果,得到所述应用的健康检查结果;
返回模块,用于通过所述健康检查组件将所述应用的健康检查结果返回至所述监控探针。
在其中一个实施例中,所述加载模块,还用于在接收到所述监控探针发送的针对所述应用的所述探测请求后,通过所述应用所接入的健康检查组件,查询健康检查指示表;从所述健康检查指示表中确定与所述应用的接口内部程序对应配置的各个检查项;通过初始化后的登记表登记与所述应用的接口内部程序对应配置的各个检查项;加载所述登记表中所登记的所述检查项。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项;
基于所述健康检查组件内置的通用健康检查指示器、各个所述检查项以及与所述应用对应的配置文件,生成与各个所述检查项分别对应的目标健康检查指示器;所述配置文件,用于支持目标健康检查指示器执行健康检查任务;
调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,并生成与各个所述目标健康检查指示器对应的健康检查结果;
汇总各个所述健康检查结果,得到所述应用的健康检查结果;
通过所述健康检查组件将所述应用的健康检查结果返回至所述监控探针。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项;
基于所述健康检查组件内置的通用健康检查指示器、各个所述检查项以及与所述应用对应的配置文件,生成与各个所述检查项分别对应的目标健康检查指示器;所述配置文件,用于支持目标健康检查指示器执行健康检查任务;
调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,并生成与各个所述目标健康检查指示器对应的健康检查结果;
汇总各个所述健康检查结果,得到所述应用的健康检查结果;
通过所述健康检查组件将所述应用的健康检查结果返回至所述监控探针。
上述应用检测方法、装置、计算机设备和存储介质,接收到监控探针发送的针对应用的探测请求后,通过健康检查组件加载与所述应用的接口内部程序对应配置的各个检查项,能够得到所述应用需要进行检查的接口内部程序所对应的所述各个检查项。基于所述健康检查组件内置的通用健康检查指示器、各个所述检查项以及与所述应用对应的配置文件,生成与各个所述检查项分别对应的目标健康检查指示器,以执行对所述应用的接口内部程序进行检查的健康检查任务,并生成与各个所述目标健康检查指示器对应的健康检查结果。由此,可以获得应用需要进行检查的接口内部程序的健康检查结果。再通过所述健康检查组件将生成的所述健康检查结果返回至所述监控探针。通过整体方案,能够有效获取到应用需要进行检查的接口内部程序的健康检查结果,提高了健康检查的准确性。
附图说明
图1为一个实施例中应用探测方法的流程示意图;
图2为一个实施例中健康检查结果示意图;
图3为一个实施例中汇总各个检查项对应的健康检查结果示意图;
图4为一个实施例中探针配置界面示意图;
图5为一个实施例中应用探测方法的时序图;
图6为另一个实施例中应用探测方法的流程示意图;
图7为一个实施例中应用探测装置的结构框图;
图8为另一个实施例中应用探测装置的结构框图;
图9为一个实施例中计算机设备的内部结构图;
图10为另一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种应用检测方法,本实施例以该方法应用于终端进行举例说明,可以理解的是,该方法也可以应用于服务器,还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:
步骤102,在接收到监控探针发送的针对应用的探测请求后,通过应用所接入的健康检查组件,加载与应用的接口内部程序对应配置的各个检查项。
其中,监控探针,是一种监控应用运行状态的程序。探测请求,用于请求对应用进行健康检查。健康检查组件,是通过加载与应用的对应的各个检查项并执行,以对应用做检查的程序。应用的接口,用于向第三方用户提供对接能力。检查项,是应用进行检查的项。应用的接口内部程序,是负责在不同模块之间通过接口接收数据并做处理后再由接口返回数据的类或者函数。可以理解,将应用的功能聚集后,用户或者第三方组件通过应用的接口,可以直接使用应用的功能。比如邮箱登录窗口就是一个接口,用户在这个接口上输入账户和密码,接口内部程序即可将接收到的账户密码进行处理,处理过后,用户即实现了邮箱的登录。所以,应用的接口内部程序运行状态,反映出应用的运行状态。
具体地,用户可以按需自定义配置检查项。终端将应用接入到健康检查组件后,对应用的健康检测端口进行监听。当监听到应用的健康检测端口有监控探针发送过来的探测请求时,终端则通过健康检查组件加载与应用的接口内部程序对应配置的各个检查项。
其中,健康检测端口,是应用与监控探针进行通信以进行健康检测的端口。
在一个实施例中,应用可以是系统也可以是服务,还可以是桌面端应用等。其中,服务的类型包含HTTP、RPC(Remote Procedure Call)以及定时任务等中的至少一种。
在一个实施例中,检查项,也可以称之为检查指标。
步骤104,基于健康检查组件内置的通用健康检查指示器、各个检查项以及与应用对应的配置文件,生成与各个检查项分别对应的目标健康检查指示器;配置文件,用于支持目标健康检查指示器执行健康检查任务。
其中,健康检查指示器,即HealthIndicator,是具有对应用进行健康检查功能的程序。通用健康检查指示器,是具有通用健康检查功能的程序。目标健康检查指示器,是对应用的接口内部程序的运行状态做检查的程序。
具体地,终端在健康检查组件内置的通用健康检查指示器的基础上,使各个检查项继承通用健康检查指示器的通用健康检查功能,并对应于应用的技术框架或者技术栈添加配置文件,生成适用于执行应用的接口内部程序对应的健康检查任务的目标健康检查指示器。
在一个实施例中,通用健康检查指示器可以是“AbstractHealthIndicator”。
在一个实施例中,目标健康检查指示器可以是“MySQLHealthIndicator”,用于执行针对MySQL的接口内部程序进行健康检查的健康检查任务。目标健康检查指示器还可以是“RedisHealthIndicator”,用于执行针对Redis的接口内部程序进行健康检查的健康检查任务。目标健康检查指示器还可以是“ApplicationHealthIndicator”等。
步骤106,调用各个目标健康检查指示器执行健康检查任务,以对接口内部程序进行健康检查,并生成与各个目标健康检查指示器对应的健康检查结果。
具体地,终端可以根据各个目标健康检查指示器的先后生成顺序,调用各个目标健康检查指示器执行健康检查任务。各个目标健康检查指示器执行健康检查任务后生成的健康检查结果,终端则完成了对应用的接口内部程序的健康检查。
在一个实施例中,健康检查结果可以包括应用的接口内部程序运行状态。应用的接口内部程序运行状态可以包括运行状态正常或异常。异常可以是数据库连接失败、中间件操作异常等。健康检查结果还可以包括接口内部程序运行的详细信息,比如,应用容器自身启动就绪状态、数据库操作结果、缓存中间件操作结果、消息中间件的操作结果等。
在一个实施例中,如图2健康检查结果所示,其中“application”为应用的接口内部程序。终端调用目标健康检查指示器即调用“ApplicationHealthIndicator”,执行针对应用的接口内部程序“application”进行健康检查的健康检查任务,并生成“ApplicationHealthIndicator”对应的健康检查结果,即“status”:“up”。其中,“up”表示应用的接口内部程序“application”运行状态正常,相反的,“down”表示应用的接口内部程序Application运行状态异常。
步骤108,汇总各个健康检查结果,得到应用的健康检查结果。
具体地,各个目标健康检查指示器执行健康检查任务后,终端将生成的与各个目标健康检查指示器对应的健康检查结果,通过健康检查组件进行汇总,得到应用的健康检查结果。
在一个实施例中,如图3示出了一个汇总各个目标健康检查指示器对应的健康检查结果的例子。其中“db”、“diskSpace”“ping”为各个目标健康检查指示器,各个目标健康检查指示器对应的健康检查结果,均包含有应用的接口内部程序对应的运行状态“status”以及详细信息“details”。
步骤110,通过健康检查组件将应用的健康检查结果返回至监控探针。
具体地,终端通过健康检查组件,将应用的健康检查结果通过接收到探测请求的应用的健康检测端口,返回至监控探针。
上述应用检测方法,接收到监控探针发送的针对应用的探测请求后,通过健康检查组件加载与所述应用的接口内部程序对应配置的各个检查项,能够得到所述应用需要进行检查的接口内部程序所对应的所述各个检查项。基于所述健康检查组件内置的通用健康检查指示器、各个所述检查项以及与所述应用对应的配置文件,生成与各个所述检查项分别对应的目标健康检查指示器,以执行对所述应用的接口内部程序进行检查的健康检查任务,并生成与各个所述目标健康检查指示器对应的健康检查结果。由此,可以获得应用需要进行检查的接口内部程序的健康检查结果。再通过所述健康检查组件将生成的所述健康检查结果返回至所述监控探针。通过整体方案,能够有效获取到应用需要进行检查的接口内部程序的健康检查结果,提高了健康检查的准确性。
在一个实施例中,在接收到监控探针发送的针对应用的探测请求后,通过应用所接入的健康检查组件,加载与应用的接口内部程序对应配置的各个检查项,包括:在接收到监控探针发送的针对应用的探测请求后,通过应用所接入的健康检查组件,查询健康检查指示表;从健康检查指示表中确定与应用的接口内部程序对应配置的各个检查项;通过初始化后的登记表登记与应用的接口内部程序对应配置的各个检查项;加载登记表中所登记的检查项。
其中,健康检查指示表,是包含了至少一个检查项的数据表。登记表,是一种获取检查项的数据表,用于获取应用的待检测接口的接口内部程序对应的各个检查项。
具体地,终端通过应用的健康监测端口接收到监控探针发送的探测请求。终端响应于接收到的探测请求,通过应用所接入的健康检查组件,查询健康检查指示表。终端可以从健康检查指示表中确定与应用的接口内部程序对应配置的各个检查项。终端确定与应用对应的检查项后,再初始化登记表,并通过初始化后的登记表登记与应用的接口内部程序对应配置的各个检查项。通过登记表完成与应用的接口内部程序对应配置的各个检查项的登记后,终端通过健康检查组件加载登记表中所登记的各个检查项。
本实施例中,使用健康检查指示表,有利于工作人员可以自定义实现并配置检查项,实时维护更新健康检查指示表所包含的检查项。通过健康检查指示表确定与应用对应的检查项后再按需动态加载下来,能够获取到与应用对应的检查项。
在一个实施例中,基于健康检查组件内置的通用健康检查指示器、各个检查项以及与应用对应的配置文件,生成与各个检查项分别对应的目标健康检查指示器,包括:基于健康检查组件内置的通用健康检查指示器,由服务发现机制添加与应用的技术框架或技术栈对应的配置文件;根据添加配置文件后的通用健康检查指示器,生成与各个检查项分别对应的目标健康检查指示器。
其中,服务发现机制,是一种能够自动生成目标文件的机制,用于根据输入的规范,自动实现功能性程序并以文件的形式存放在终端本地内存。技术框架,是一个应用程序的半成品,用于添加需求功能程序以开发成具有需求功能的应用。技术栈,是开发应用时使用到的多项技术。
可以理解,开发一个医疗管理系统,使用了html+css+javascript+jquery+springmvc+hibernate+spring+linux+mysql等,这些技术整体称为技术栈。
具体地,终端基于健康检查组件内置的通用健康检查指示器,使与应用的接口内部程序对应配置的各个检查项继承通用健康检查指示器的执行健康检查任务的功能,再由服务发现机制添加与应用的技术框架或技术栈对应的配置文件,从而生成继承了通用健康检查指示器的通用健康检查功能、并适用于执行针对应用的接口内部程序进行健康检查的健康检查任务的目标健康检查指示器。
在一个实施例中,服务发现机制可以是“SPI(Service Provider Interface)”机制。
本实施例中,通过该方法生成目标健康检查指示器,可以适用于执行与应用的接口内部程序对应的健康检查任务,通用性强,不限定应用的技术框架或者技术栈,对于当前主流的微服务、云原生架构也可根据本方法流程生成对应的目标健康检查指示器。
在一个实施例中,应用的健康检查结果中包括状态码;状态码用于标记应用的运行状态;方法还包括:在监测探针接收到应用的健康检查结果后,若应用的健康检查结果中的状态码表示应用运行状态异常,则通过监控探针执行异常处理策略。
其中,状态码,是应用接收到探测请求后返回的一串字符或者数字。异常处理策略,是对异常进行处理的策略。
具体地,终端在监测探针接收到应用的健康检查结果后,对健康检查结果进行解析。若解析出应用的健康检查结果中的状态码表示应用运行状态异常,终端则通过监控探针执行异常处理策略。
在一个实施例中,若应用的健康检查结果中的状态码表示应用运行状态正常,监测探针可以继续对应用进行监控,也可以退出监控流程,直到再次接收到针对应用进行监控的触发操作,则再向应用的健康检测端口发送探测请求。
在一个实施例中,若应用是系统或者服务。当健康检查结果中的状态码表示系统或者服务状态异常时,终端可以通过监控探针摘除系统或者服务的流量,并重启系统或者服务。
在一个实施例中,若终端通过监控探针重启系统或者服务后,系统或者服务仍然处于异常状态,则发出告警,以提示工作人员排查和解决问题。
在一个实施例中,各个目标健康检查指示器对应的健康检查结果,均包含有状态码以及详细信息。终端通过监控探针重启系统或者服务后,系统或者服务仍然处于异常状态,则发出告警。工作人员发现告警,可以通过健康检查组件返回的健康检查结果的详细信息,明确知晓运行异常的具体接口信息和具体接口异常的原因,便于解决异常。
在一个实施例中,以应用作为服务器和浏览器作为监控探针举例,用户浏览器向网页所在的服务器发出请求,也就是监控探针向应用发送探测请求。浏览器接收并显示网页前,网页所在的服务器会返回HTTP状态码以响应浏览器的请求。若HTTP状态码为200,表示服务器运行正常。若HTTP状态码为500,表示服务器运行异常。当连续多次返回的健康检查结果中的状态码均为500,终端则通过监控探针,执行摘除故障接口的流量、重启服务并发出告警通知策略。
本实施例中,在监测探针可以根据接收到应用的健康检查结果中的表示应用运行状态异常的状态码,终端通过监控探针执行异常处理策略,可以避免应用/服务未准备就绪就放入请求流量,而造成大量错误甚至故障。由于只需要将应用接入到健康检查组件,即可对应用进行健康检查,接入简单方便,有利于相关人员使用健康检查组件对应用进行检查。
在一个实施例中,方法还包括:检测到应用接入至健康检查组件后,根据配置信息配置监控探针;启动应用,对应用的健康检测端口进行监听;接收监控探针向健康检测端口发送的针对应用的探测请求。
具体地,终端检测到应用接入至健康检查组件后,根据配置信息配置监控探针。完成探针的配置后,启动应用,对应用的健康检测端口进行监听。当终端监听到应用的健康检测端口有监控探针发送的针对应用的探测请求时,则通过健康检测端口接收探测请求。
本实施例中,根据配置信息配置监控探针,能够使监控探针向应用的健康检查端口发送探测请求,并根据健康检查结果中的状态码,执行对应的处理策略。
在一个实施例中,检测到应用接入至健康检查组件后,根据配置信息配置监控探针,包括:检测到应用接入至健康检查组件后,根据配置的应用的健康检测端口、应用的待检查接口的路径以及探测请求发送的频率,配置监控探针。
其中,应用的待检查接口的路径,是对应用的接口进行检查的路径。
具体地,终端检测到应用接入至健康检查组件后,根据配置的应用的健康检测端口、应用的待检查接口的路径以及探测请求发送的频率,配置监控探针。
在一个实施例中,配置监控探针,可以是配置K8S健康检查探针,也可以是根据探测的需求定义的健康系统探针。
其中,K8S,即kubernetes,是一个配置监控探针的平台,通过在平台中声明相关的信息就能够自动完成监控探针的配置。
在一个实施例中,如图4所示,在K8S平台的探针配置界面,声明相关的信息系,比如声明应用的健康检测端口(healthCheckPort)为“10336”、应用的待检查接口的路径(healthCheckPath)为“/actuator/health”、以及探测请求发送的频率(cpuAverageValue)为“1”,K8S平台即可根据声明的相关的信息自动完成监控探针的配置。配置后的监控探针可以通过应用的健康检测端口“10336”与应用进行通信,并通过应用的待检查接口的路径“/actuator/health”每隔声明的频率,请求针对应用的接口进行检查。
本实施例中,终端在应用接入到健康检查组件后,再通过配置平台配置监控探针,可以根据接入的应用的相关信息配置监控探针,提高配置探针的准确性。
在一个实施例中,接收监控探针向健康检测端口发送的针对应用的探测请求,包括:通过应用的健康检测端口,接收监听到的监控探针按照频率发送的、且针对路径所对应的待检查接口的探测请求。
具体地,终端通过应用的健康检测端口监听监控探针按照频率发送、且针对路径所对应的待检查接口的探测请求。当监听到健康检测端口有探测请求,终端则通过应用的健康检测端口,接收探测请求。
本实施例中,监控探针按照配置信息中的频率向应用发送探测请求,能够实时对应用进行检查,以便于及时发现线上的服务/系统出现的进程僵死等问题。
在一个实施例中,调用各个目标健康检查指示器执行健康检查任务,以对接口内部程序进行健康检查,包括:调用目标健康检查指示器执行健康检查任务,以对应用中的待检查接口的接口内部程序进行健康检查。
具体地,终端针对应用中的待检查接口的接口内部程序,调用目标健康检查指示器执行健康检查任务,并生成健康检查结果,以对应用中的待检查接口的接口内部程序进行健康检查。
本实施例中,通过调用各个目标健康检查指示器执行健康检查任务,可以对应用中的待检查接口的接口内部程序进行健康检查,对于暂时没有检查需要的接口,不做检查,有利于节省终端的检查开销。
在一个实施例中,应用(系统/服务)接入至了健康检查组件。如图5示出了一个应用检测方法的时序图。该时序图具体包括以下步骤:
1、终端启动应用,监听应用的健康检测端口。
2、监控探针可以向应用的健康检测端口发送针对应用的探测请求。
3、健康检查组件通过应用的健康检测端口接收探测请求。
4、健康检查组件可以加载与应用的接口内部程序对应配置的各个检查项。
5、健康检查组件可以基于健康检查组件内置的通用健康检查指示器、加载的与应用的接口内部程序对应配置的各个检查项以及与应用对应的配置文件,生成与各个检查项分别对应的目标健康检查指示器。
6、健康检查组件可以通过目标健康检查指示器并执行健康检查任务,并生成与各个目标健康检查指示器对应的健康检查结果。
7、健康检查组件可以汇总各个目标健康检查指示器对应的健康检查结果,得到应用的健康检查结果。
8、健康检查组件可以将应用的健康检查结果返回至监控探针。
9、若应用的健康检查结果中的状态码表示应用运行状态异常,监控探针则可以通过监控探针执行异常处理策略。
在一个实施例中,如图6示出了一个应用检测方法流程示意图。终端运行健康检查组件(+operation()),在接收到监控探针发送的针对应用的探测请求后,通过应用所接入的健康检查组件执行处理(+handle()),进入执行处理的第一步,查询健康检查指示表(-healthIndicatorMap)包含的与至少一个与应用的接口内部程序对应配置的各个检查项(-show HealtnDetails)。终端从健康检查指示表中确定与应用的接口内部程序对应配置的各个检查项,通过初始化(+initialize())后的登记表(-healthIndicatorRegistry)登记(+register())与应用的接口内部程序对应配置的各个检查项,完成登记表中所登记的各个检查项的加载(-serviceLoader)步骤。终端基于健康检查组件内置的通用健康检查指示器(AbstractHealthIndicator)、各个检查项,由服务发现机制添加与应用的技术框架或技术栈对应的配置文件,根据添加配置文件后的通用健康检查指示器以及加载与应用的接口内部程序对应配置的各个检查项,生成继承了通用健康检查功能的(+doHealthCheck())、且适用于执行针对应用的接口内部程序进行健康检查的健康检查任务的目标健康检查指示器(ApplicationHealthIndicator、MysqlHealth Indicator以及RedisHealthIndicator)。调用目标健康检查指示器执行健康检查任务,以对应用的接口(+health())内部程序进行健康检查,并生成与各个目标健康检查指示器对应的健康检查结果(-status以及-details)。
应该理解的是,虽然图1、图5和图6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图5和图6中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种应用检测装置700,包括:加载模块702、生成模块704、汇总模块706和返回模块708,其中:
加载模块702,用于在接收到监控探针发送的针对应用的探测请求后,通过应用所接入的健康检查组件,加载与应用的接口内部程序对应配置的各个检查项。
生成模块704,用于基于健康检查组件内置的通用健康检查指示器、各个检查项以及与应用对应的配置文件,生成与各个检查项分别对应的目标健康检查指示器;配置文件,用于支持目标健康检查指示器执行健康检查任务。
生成模块704,还用于调用各个目标健康检查指示器执行健康检查任务,以对接口内部程序进行健康检查,并生成与各个目标健康检查指示器对应的健康检查结果。
汇总模块706,用于汇总各个健康检查结果,得到应用的健康检查结果。
返回模块708,用于通过健康检查组件将应用的健康检查结果返回至监控探针。
在一个实施例中,加载模块702,还用于在接收到监控探针发送的针对应用的探测请求后,通过应用所接入的健康检查组件,查询健康检查指示表;从健康检查指示表中确定与应用的接口内部程序对应配置的各个检查项;通过初始化后的登记表登记与应用的接口内部程序对应配置的各个检查项;加载登记表中所登记的检查项。
在一个实施例中,生成模块704,还用于基于健康检查组件内置的通用健康检查指示器,由服务发现机制添加与应用的技术框架或技术栈对应的配置文件;根据添加配置文件后的通用健康检查指示器,生成与各个检查项分别对应的目标健康检查指示器。
在一个实施例中,应用的健康检查结果中包括状态码;状态码用于标记应用的运行状态;该装置还包括:
处理模块710,用于在监测探针接收到应用的健康检查结果后,若应用的健康检查结果中的状态码表示应用运行状态异常,则通过监控探针执行异常处理策略。
如图8所示,在一个实施例中,该装置还包括:处理模块710和配置模块701;
配置模块701,用于检测到应用接入至健康检查组件后,根据配置信息配置监控探针。
在一个实施例中,加载模块702,还用于启动应用,对应用的健康检测端口进行监听;接收监控探针向健康检测端口发送的针对应用的探测请求。
在一个实施例中,配置模块701,还用于检测到应用接入至健康检查组件后,根据配置的应用的健康检测端口、应用的待检查接口的路径以及探测请求发送的频率,配置监控探针。
在一个实施例中,加载模块702,还用于通过应用的健康检测端口,接收监听到的监控探针按照频率发送的、且针对路径所对应的待检查接口的探测请求。
在一个实施例中,生成模块704,还用于调用目标健康检查指示器执行健康检查任务,以对应用中的待检查接口的接口内部程序进行健康检查。
关于应用检测装置的具体限定可以参见上文中对于应用检测方法的限定,在此不再赘述。上述应用检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储应用检测数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种应用检测方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种应用检测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图9和图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (12)
1.一种应用检测方法,其特征在于,所述方法包括:
在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项;
基于所述健康检查组件内置的通用健康检查指示器,由服务发现机制添加与所述应用的技术框架或技术栈对应的配置文件;
根据添加所述配置文件后的通用健康检查指示器,生成与各个所述检查项分别对应的目标健康检查指示器;所述配置文件,用于支持目标健康检查指示器执行健康检查任务;
调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,并生成与各个所述目标健康检查指示器对应的健康检查结果;
汇总各个所述健康检查结果,得到所述应用的健康检查结果;
通过所述健康检查组件将所述应用的健康检查结果返回至所述监控探针。
2.根据权利要求1所述的方法,其特征在于,所述在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项,包括:
在接收到所述监控探针发送的针对所述应用的所述探测请求后,通过所述应用所接入的健康检查组件,查询健康检查指示表;
从所述健康检查指示表中确定与所述应用的接口内部程序对应配置的各个检查项;
通过初始化后的登记表登记与所述应用的接口内部程序对应配置的各个检查项;
加载所述登记表中所登记的所述检查项。
3.根据权利要求1所述的方法,其特征在于,所述应用的健康检查结果中包括状态码;所述状态码用于标记所述应用的运行状态;
所述方法还包括:
在所述监控 探针接收到所述应用的健康检查结果后,若所述应用的健康检查结果中的状态码表示应用运行状态异常,则通过监控探针执行异常处理策略。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
检测到应用接入至健康检查组件后,根据配置信息配置监控探针;
启动所述应用,对所述应用的健康检测端口进行监听;
接收所述监控探针向所述健康检测端口发送的针对应用的探测请求。
5.根据权利要求4所述的方法,其特征在于,所述检测到应用接入至健康检查组件后,根据配置信息配置监控探针,包括:
检测到应用接入至健康检查组件后,根据配置的所述应用的健康检测端口、所述应用的待检查接口的路径以及探测请求发送的频率,配置监控探针;
所述接收所述监控探针向所述健康检测端口发送的针对应用的探测请求,包括:
通过所述应用的所述健康检测端口,接收监听到的所述监控探针按照所述频率发送的、且针对所述路径所对应的待检查接口的探测请求;
所述调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,包括:
调用所述目标健康检查指示器执行健康检查任务,以对所述应用中的所述待检查接口的接口内部程序进行健康检查。
6.一种应用检测装置,其特征在于,所述装置包括:
加载模块,用于在接收到监控探针发送的针对应用的探测请求后,通过所述应用所接入的健康检查组件,加载与所述应用的接口内部程序对应配置的各个检查项;
生成模块,用于基于所述健康检查组件内置的通用健康检查指示器,由服务发现机制添加与所述应用的技术框架或技术栈对应的配置文件;根据添加所述配置文件后的通用健康检查指示器,生成与各个所述检查项分别对应的目标健康检查指示器;
所述生成模块,还用于调用各个所述目标健康检查指示器执行健康检查任务,以对所述接口内部程序进行健康检查,并生成与各个所述目标健康检查指示器对应的健康检查结果;
汇总模块,用于汇总各个所述健康检查结果,得到所述应用的健康检查结果;
返回模块,用于通过所述健康检查组件将所述应用的健康检查结果返回至所述监控探针。
7.根据权利要求6所述的装置,其特征在于,所述加载模块,还用于在接收到所述监控探针发送的针对所述应用的所述探测请求后,通过所述应用所接入的健康检查组件,查询健康检查指示表;从所述健康检查指示表中确定与所述应用的接口内部程序对应配置的各个检查项;通过初始化后的登记表登记与所述应用的接口内部程序对应配置的各个检查项;加载所述登记表中所登记的所述检查项。
8.根据权利要求6所述的装置,其特征在于,所述应用的健康检查结果中包括状态码;所述状态码用于标记所述应用的运行状态;该装置还包括:处理模块,用于在所述监控 探针接收到所述应用的健康检查结果后,若所述应用的健康检查结果中的状态码表示应用运行状态异常,则通过监控探针执行异常处理策略。
9.根据权利要求6至8任一项所述的装置,其特征在于,所述装置还包括:处理模块和配置模块;所述配置模块,用于检测到应用接入至健康检查组件后,根据配置信息配置监控探针;所述加载模块,还用于启动所述应用,对所述应用的健康检测端口进行监听;接收所述监控探针向所述健康检测端口发送的针对应用的探测请求。
10.根据权利要求9所述的装置,其特征在于,所述配置模块,还用于检测到应用接入至健康检查组件后,根据配置的所述应用的健康检测端口、所述应用的待检查接口的路径以及探测请求发送的频率,配置监控探针;所述加载模块,还用于通过所述应用的所述健康检测端口,接收监听到的所述监控探针按照所述频率发送的、且针对所述路径所对应的待检查接口的探测请求;所述生成模块,还用于调用所述目标健康检查指示器执行健康检查任务,以对所述应用中的所述待检查接口的接口内部程序进行健康检查。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011518640.3A CN112579392B (zh) | 2020-12-21 | 2020-12-21 | 应用检测方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011518640.3A CN112579392B (zh) | 2020-12-21 | 2020-12-21 | 应用检测方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112579392A CN112579392A (zh) | 2021-03-30 |
CN112579392B true CN112579392B (zh) | 2023-01-24 |
Family
ID=75136697
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011518640.3A Active CN112579392B (zh) | 2020-12-21 | 2020-12-21 | 应用检测方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112579392B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113312236A (zh) * | 2021-06-03 | 2021-08-27 | 中国建设银行股份有限公司 | 一种数据库监控方法及装置 |
CN113553235A (zh) * | 2021-07-19 | 2021-10-26 | 猪八戒股份有限公司 | 业务场景监测方法、装置、电子设备及存储介质 |
CN114884840B (zh) * | 2022-03-21 | 2024-01-19 | 新华三大数据技术有限公司 | 应用健康状态检查方法及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595333A (zh) * | 2018-04-26 | 2018-09-28 | Oppo广东移动通信有限公司 | PaaS平台中应用进程的健康检查方法及装置 |
CN110825490A (zh) * | 2019-10-25 | 2020-02-21 | 桂林东信云科技有限公司 | 一种基于Kubernetes容器应用健康检查的方法及其系统 |
CN111158987A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 微服务架构的健康检查方法及装置 |
CN111694743A (zh) * | 2020-06-11 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 业务系统的检测方法及装置 |
CN111949476A (zh) * | 2020-07-16 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | 一种实时监控app内业务健康度的轻量化方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8627149B2 (en) * | 2004-08-30 | 2014-01-07 | International Business Machines Corporation | Techniques for health monitoring and control of application servers |
-
2020
- 2020-12-21 CN CN202011518640.3A patent/CN112579392B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595333A (zh) * | 2018-04-26 | 2018-09-28 | Oppo广东移动通信有限公司 | PaaS平台中应用进程的健康检查方法及装置 |
CN110825490A (zh) * | 2019-10-25 | 2020-02-21 | 桂林东信云科技有限公司 | 一种基于Kubernetes容器应用健康检查的方法及其系统 |
CN111158987A (zh) * | 2019-12-31 | 2020-05-15 | 中国银行股份有限公司 | 微服务架构的健康检查方法及装置 |
CN111694743A (zh) * | 2020-06-11 | 2020-09-22 | 腾讯科技(深圳)有限公司 | 业务系统的检测方法及装置 |
CN111949476A (zh) * | 2020-07-16 | 2020-11-17 | 北京思特奇信息技术股份有限公司 | 一种实时监控app内业务健康度的轻量化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112579392A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112579392B (zh) | 应用检测方法、装置、计算机设备和存储介质 | |
US10846167B2 (en) | Automated issue remediation for information technology infrastructure | |
US7426661B2 (en) | Method and system for minimizing loss in a computer application | |
CN111314141A (zh) | 路由更新方法及装置 | |
US7533339B2 (en) | System and method for providing user help | |
US20200104110A1 (en) | Systems and methods of just-in-time proactive notification of a product release containing a software fix | |
US20070174731A1 (en) | Contextual enterprise software support tools | |
US8495430B2 (en) | Generate diagnostic data for overdue thread in a data processing system | |
US20070162485A1 (en) | Generating contextual support requests | |
Agarwal et al. | Diagnosing mobile applications in the wild | |
US10491629B2 (en) | Detecting sensitive data sent from client device to third-party | |
US10951509B1 (en) | Methods, systems, and computer readable media for providing intent-driven microapps for execution on communications network testing devices | |
CN104737134A (zh) | 用于操作系统无关的硬件验证的系统和方法 | |
CN111355622A (zh) | 容器的业务监控方法、系统和计算机可读存储介质 | |
US20160042070A1 (en) | Web Resource Compatibility With Web Applications | |
CN113407383B (zh) | 主备系统切换方法、装置、服务器及主备系统 | |
EP3692443A1 (en) | Application regression detection in computing systems | |
CN111026636A (zh) | 一种软件项目的测试方法、装置、设备及存储介质 | |
CN112817831A (zh) | 应用性能监测方法、装置、计算机系统和可读存储介质 | |
Agarwal et al. | There’s an app for that, but it doesn’t work. Diagnosing mobile applications in the wild | |
CN115103007A (zh) | 基于分布式云的服务发现方法、装置及可读存储介质 | |
US8635178B2 (en) | Rule-based processing in different layers | |
CN113407419A (zh) | 内存泄漏检测方法、装置、计算机设备和存储介质 | |
US7086060B2 (en) | Method for programmatic representation and enforcement of resource controls | |
CN116841902A (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 |