CN111107084B - 一种监控方法、装置、电子设备及存储介质 - Google Patents
一种监控方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN111107084B CN111107084B CN201911309723.9A CN201911309723A CN111107084B CN 111107084 B CN111107084 B CN 111107084B CN 201911309723 A CN201911309723 A CN 201911309723A CN 111107084 B CN111107084 B CN 111107084B
- Authority
- CN
- China
- Prior art keywords
- service
- aggregation
- monitored
- rpc
- monitoring system
- 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/133—Protocols for remote procedure calls [RPC]
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/61—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本公开提供了一种监控方法、装置、电子设备及存储介质,该方法包括:获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据;确定所述各个被监控服务中,聚合开关开启的各个待聚合服务;其中,所述聚合开关用于控制是否对被监控服务的服务数据进行聚合,所述聚合开关的开闭状态是基于所述RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级确定的;针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。应用本公开提供的实施例,可以避免负荷过载对RPC监控***正常工作带来的影响,提升RPC监控***的可用性。
Description
技术领域
本公开涉及计算机网络技术领域,尤其涉及一种监控方法、装置、电子设备及存储介质。
背景技术
RPC(Remote Procedure Call Protocol,远程过程调用协议)指的是分布式***架构中不同***之间的远程通信和相互调用,其中,该不同***之间的调用包括不同***中服务之间的调用。
针对RPC,通常会采用RPC监控***来对调用过程中的各个服务进行监控,得到可用性等聚合指标,从而可以基于聚合指标与预设阈值的关系来提供报警信息,使得技术人员能够快速定位调用过程中出现的故障,保证各个***的正常运行。
然而,随着各个***功能的不断增加,RPC监控***所需监控的被监控服务的数量也随之增加,从而,RPC监控***进行服务数据聚合的负荷越来越大。这样,当RPC监控***的负荷过载时,RPC监控***的可用性持续下降。在这种情况下,RPC监控***将不能正常工作,从而导致各个被监控服务均无法得到监控,进而,可能导致***调用过程中的故障升级。
基于此,当前亟需一种监控方法来避免负荷过载对RPC监控***正常工作带来的影响,提升RPC监控***的可用性。
发明内容
本公开提供一种监控方法、装置、电子设备及存储介质,以至少解决相关技术中由于负荷过载造成的RPC监控***的可用性降低的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种监控方法,包括:
获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据;
基于所述RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级,确定所述各个被监控服务中,聚合开关开启的各个待聚合服务;其中,所述聚合开关用于控制是否对被监控服务的服务数据进行聚合;
针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
可选的,一种具体实现方式中,所述方法还包括:
若所述RPC监控***负荷过载,则启动对满足关闭条件的被监控服务的聚合开关的关闭操作;
其中,所述关闭条件为:所属数据类型的聚合优先级低于预设优先级。
可选的,一种具体实现方式中,所述方法还包括:
若所述RPC监控***负荷未过载,则启动对聚合开关关闭的被监控服务的聚合开关的开启操作;
针对每一聚合开关重新开启的被监控服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
可选的,一种具体实现方式中,所述获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据的步骤,包括:
获取所述RPC监控***所监控的各个被监控服务在预设的每一周期内的运行过程中产生的服务数据;
所述针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标的步骤,包括:
针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务在所述每一周期内的聚合指标。
可选的,一种具体实现方式中,所述各个被监控服务为:被调服务;
所述服务数据包括:所述每一周期内的被调用次数、所述每一周期内被调用成功次数、所述每一周期内被调用失败次数和所述每一周期内每次被调用的时延中的至少一项;
该服务的聚合指标包括:所述每一周期内的每秒查询率QPS、所述每一周期内的可用性和所述每一周期内的平均时延中的至少一项。
可选的,一种具体实现方式中,针对每一待聚合服务,获得该服务在多个所述周期内的聚合指标;并基于所获得的多个聚合指标,确定该服务的运行状态。
根据本公开实施例的第二方面,提供一种RPC监控装置,包括:
数据获取模块,被配置为获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据;
服务确定模块,被配置为基于所述RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级,确定所述各个被监控服务中,聚合开关开启的各个待聚合服务;其中,所述聚合开关被配置为控制是否对被监控服务的服务数据进行聚合;
数据聚合模块,被配置为针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
可选的,一种具体实现方式中,所述装置还包括:
第一启动开关,被配置为若所述RPC监控***负荷过载,则启动对满足关闭条件的被监控服务的聚合开关的关闭操作;
其中,所述关闭条件为:所属数据类型的聚合优先级低于预设优先级。
可选的,一种具体实现方式中,所述装置还包括:
第二启动开关,被配置为若所述RPC监控***负荷未过载,则启动对聚合开关关闭的被监控服务的聚合开关的开启操作;
数据重算模块,被配置为针对每一聚合开关重新开启的被监控服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
可选的,一种具体实现方式中,
所述数据获取模块,具体被配置为获取所述RPC监控***所监控的各个被监控服务在预设的每一周期内的运行过程中产生的服务数据;
所述数据聚合模块,具体被配置为针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务在所述每一周期内的聚合指标。
可选的,一种具体实现方式中,所述各个被监控服务为:被调服务;
所述服务数据包括:所述每一周期内的被调用次数、所述每一周期内被调用成功次数、所述每一周期内被调用失败次数和所述每一周期内每次被调用的时延中的至少一项;
该服务的聚合指标包括:所述每一周期内的每秒查询率QPS、所述每一周期内的可用性和所述每一周期内的平均时延中的至少一项。
可选的,一种具体实现方式中,所述装置还包括:
状态确定模块,被配置为针对每一待聚合服务,获得该服务在多个所述周期内的聚合指标;并基于所获得的多个聚合指标,确定该服务的运行状态。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
被配置为存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面提供的任一监控方法的步骤。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如第一方面提供的任一监控方法的步骤。
根据本公开实施例的第五方面,提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面提供的任一监控方法的步骤。
本公开的实施例提供的技术方案至少带来以下有益效果:
应用本公开实施例提供的监控方法,在对各个被监控服务在运行过程中产生的服务器数据进行聚合时,可以通过各个被监控服务的聚合开关的开闭状态,确定各个被监控服务中需要进行数据聚合的被监控服务,从而仅对需要进行数据聚合的被监控服务的服务数据进行聚合。其中,由于各个被监控服务的开闭状态是基于RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级确定的,因此,可以根据RPC监控***的负荷程度,依据各个被监控服务的聚合优先级的高低,来确定在当前负荷状态下所需进行数据聚合的被监控服务的数量,从而,避免出现负荷过载所导致的RPC监控***无法正常工作的情况发生。基于此,应用本公开实施例提供的监控方法,可以避免负荷过载对RPC监控***正常工作带来的影响,提升RPC监控***的可用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种监控方法的流程图。
图2是根据一示例性实施例示出的另一种监控方法的流程图。
图3是根据一示例性实施例示出的另一种监控方法的流程图。
图4是一种RPC监控***的实际应用示意图。
图5是根据一示例性实施例示出的一种监控装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
随着各个***功能的不断增加,RPC监控***所需监控的被监控服务的数量也随之增加,从而,RPC监控***进行服务数据聚合的负荷越来越大。这样,当RPC监控***的负荷过载时,RPC监控***的可用性持续下降。在这种情况下,RPC监控***将不能正常工作,从而导致各个被监控服务均无法得到监控,进而,可能导致***调用过程中的故障升级。
基于此,当前亟需一种监控方法来避免负荷过载对RPC监控***正常工作带来的影响,提升RPC监控***的可用性。
为了便于理解本公开提供的一种监控方法,下面,首先对RPC监控***进行简要说明。
RPC监控***是用于对分布式***架构中不同***之间的运程通信和相互调用进行监控的***。其中,在分布式***架构中不同***之间,运行在各个***的电子设备中的服务可以调用运行在其他***的电子设备中的服务,其中,发起调用的服务可以称为主调服务,相应的,主调服务所调用的服务即可以被称为被调服务。
进而,为了保证主调服务能够顺利调用被调服务,也为了保证被调服务在被调用之后可以正常运行,从而需要对主调服务和/或被调服务的运行状态进行监控,从而,在某一服务出现故障时,进行故障报警,以便于技术人员能够准确定位故障,并及时解决故障。
其中,为了保证监控的顺利进行,RPC监控***可以与分布式***架构的各个***中能够运行各类服务的电子设备进行通信连接,从而实现交互。
其中,RPC监控***可以包括:服务数据收集设备、服务数据扫描设备、服务数据存储设备以及服务数据聚合设备,并且,可以将主调服务和被调服务统称为被监控服务。
具体的,当被监控服务在本地运行时,本地电子设备可以生成该被监控服务的数据文件,该数据文件中记录了该被监控服务在运行过程生成的各类服务数据,例如,当被监控服务为主调服务时,该服务数据可以包括:调用时长、调用被调服务的类型、调用频率等;当被监控服务为被调服务时,该服务数据可以为:被调用次数、被调用时延等。
这样,RPC监控***中的服务数据收集设备便可以从各个被监控服务所在的电子设备中获取各个被监控服务的数据文件,其中,该服务数据收集设备可以为SDK(SoftwareDevelopment Kit,软件开发工具包)。进而,RPC监控***中的服务数据扫描设备便可以定时扫描服务数据设备所收集到的各个被监控服务的数据文件,并将这些数据文件存储到服务数据存储设备中。
基于此,服务数据聚合设备便可以从服务数据存储设备中获取各个被监控服务的数据文件,即获取各个被监控服务在运行过程中产生的服务数据,并针对每一被监控服务,对该被监控服务的服务数据进行聚合,从而得到该被监控服务的聚合指标。进而,服务数据聚合设备便可以根据该聚合指标与预设的指标阈值之间的关系,确定该被监控服务是否出现故障,并在确定出现故障时,发出报警信号。
其中,服务数据聚合设备可以是按照预设的周期,周期性地从服务数据存储设备中获取各个被监控服务的在运行过程中产生的服务数据,并进行数据聚合。
此外,在RPC监控***中,服务数据收集设备、服务数据扫描设备、服务数据存储设备以及服务数据聚合设备可以为电子设备,即利用不同的电子设备分别实现服务数据收集、服务数据扫描、服务数据存储以及服务数据聚合;也可以将上述多个设备所实现的功能集成到一台设备上实现,即通过一个设备实现服务数据收集、服务数据扫描、服务数据存储以及服务数据聚合中的多个功能,在该同一设备中,可以设置不同的功能模块来分别实现该设备所提供的各种功能。这都是合理的。
下面,对本公开实施例提供的一种监控方法进行介绍。
图1是根据一示例性实施例示出的一种监控方法的流程图,其中,该方法应用在RPC监控***中的服务数据聚合设备中,以下简称聚合设备。
需要说明的是,该聚合设备可以仅仅用于实现服务数据聚合功能,也可以同时实现服务数据收集设备、服务数据扫描设备和服务数据存储中的至少一个功能。
如图1所示,本公开提供的一种监控方法可以包括如下步骤:
在步骤S11中,获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据。
当聚合设备开始执行对各个被监控服务的服务数据的聚合时,聚合设备可以首先从存储设备中获取各个被监控服务在运行过程中产生的服务数据。
在步骤S12中,基于RPC监控***的负荷状态和各个被监控服务所属服务类型的聚合优先级,确定各个被监控服务中,聚合开关开启的各个待聚合服务;
其中,聚合开关用于控制是否对被监控服务的服务数据进行聚合;
进而,由于为了避免符合过载带来的负面影响,提高RPC监控***的可用性,因此,聚合设备可以不对各个被监控服务中的全部被监控数据的服务数据进行聚合。基于此,在执行完上述步骤S11后,聚合设备首先基于RPC监控***的负荷状态和各个被监控服务所属服务类型的聚合优先级,确定各个被监控服务中,聚合开关开启的各个待聚合服务,即确定各个被监控服务中,需要对服务数据进行聚合的待聚合服务。
具体的,可以根据各个被监控服务的服务类型在所监控的分布式***构建中各个***中的重要程度,例如,该服务类型是否为分布式***构建中各个***中的核心服务、该服务类型是否为非预期服务、该服务类型是否为非法服务等,来确定每一服务类型的聚合优先级。例如,核心服务的聚合优先级高于非预期服务的聚合优先级,非预期服务的聚合优先级高于非法服务的聚合优先级。
这样,当RPC监控***的负荷状态为负荷过载或者负荷过大时,便可以优先关闭聚合优先级较低的服务类型的被监控服务的聚合开关,从而,降低聚合设备的负荷,以降低RPC监控***的负荷。
可以理解的,为了保证RPC监控***能够正常运行,RPC监控***可以实时对自身的负荷进行检测。
基于此,可选的,一种具体实现方式中,当RPC监控***负荷过载时,便可以启动对对满足关闭条件的被监控服务的聚合开关的关闭操作。
其中,上述关闭条件为所属数据类型的聚合优先级低于预设优先级,即在RPC监控***负荷过载时,启动对对所属数据类型的聚合优先级低于预设优先级的被监控服务的聚合开关的关闭操作。
在本具体实现方式中,为了保证能够对尽可能多的被监控服务的服务数据进行聚合,则各个被监控服务的聚合开关的起始状态可以为开启状态。从而,在RPC监控***负荷过载时,便可以启动对对所属数据类型的聚合优先级低于预设优先级的被监控服务的聚合开关的关闭操作,将这些被监控服务的聚合开关由开启状态切换为关闭状态。
具体的,一种实施例中,当RPC监控***检测到自身的负荷过载时,便可以发出报警信号,从而,用户可以获知该报警信号,从而,用户便可以根据预先设定的各个被监控服务所属服务类型的聚合优先级,手动将满足关闭条件的被监控服务的聚合开关由开启状态切换为关闭状态。
这样,在本实施例中,针对聚合开关处于开启状态的各个被监控服务器,聚合设备在检测到用户对满足关闭条件的被监控服务的聚合开关的关闭操作时,便可以确定该被监控服务的聚合开关关闭,相应的,聚合设备便可以将未检测到用户关闭聚合开关操作的被监控服务确定为聚合开关开启的各个待聚合服务。
例如,服务类型kafka、redis、grpc、http的聚合优先级可以为:http和grpc的聚合优先级相同,kafka和redis的聚合优先级相同,且http和grpc的聚合优先级高于kafka和redis的聚合优先级。则用户获知RPC监控***负荷过载时,用户便可以手动关闭服务类型为kafka和redis的被监控服务的聚合开关。进而,监控设备可以检测到用户对服务类型为kafka和redis的被监控服务的聚合开关的关闭操作,从而,将未检测到用户关闭聚合开关操作的服务类型为http和grpc的被监控服务确定为聚合开关开启的各个待聚合服务。
当然,根据实际应用中的具体需求,用户也可以根据该具体需求调整所需要关闭聚合开关的被监控服务。
此外,用户对被监控服务的聚合开关的开启或关闭操作可以记录在被监控服务的动态配置文件中,因此,该动态配置文件中便可以记录各个被监控服务的聚合开关的开闭状态,从而,聚合设备可以通过获取被监控服务器的动态配置文件来确定各个被监控服务中,聚合开关开启的各个待聚合服务。
其中,可选的,一种具体实现方式中,聚合设备可以从其他***中获取被监控服务的动态配置文件,该动态配置文件中记载了各个被监控服务的聚合开关的开闭状态。这样,聚合设备在执行完上述步骤S11后,便可以首先从上述其他***中获取到上述动态配置文件,从而,从该动态配置文件中读取各个被监控服务的聚合开关的开闭状态,进而,确定确定各个被监控服务中,聚合开关开启的各个待聚合服务。
可选的,另一种具体实现方式中,上述动态配置文件可以存储在RPC监控***中的数据库中。这样,聚合设备在执行完上述步骤S11后,便可以首先从自身所在的RPC监控***中的数据库中获取上述动态配置文件,从而,从该动态配置文件中读取各个被监控服务的聚合开关的开闭状态,进而,确定各个被监控服务中,聚合开关开启的各个待聚合服务。
其中,在本具体实现方式中,当用户切换各个被监控服务的聚合开关的开闭状态时,可以利用web浏览器的显示界面中进行,例如,用户可以在该显示界面中通过点选一被监控服务对应的开关开启或开关关闭按钮来切换该被监控服务的聚合开关的开闭状态。
其中,该浏览器通过一个接口与数据库中的动态配置文件交互。这样,当用户在显示界面中切换了一被监控服务的聚合开关的开闭状态时,该动态配置文件中可以随之更改所记载的该被监控服务的聚合开关的开闭状态。这样,可以时各个被监控服务的聚合开关的开闭状态的切换过程更加方便、快捷,易于操作。
在步骤S13中,针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
进一步的,在确定需要对服务数据进行聚合的各个待聚合服务后,聚合设备便可以对所获取到的每一待聚合服务的服务数据进行聚合,从而得到聚合结果,并将该聚合结果作为该服务的聚合指标。
其中,在执行上述步骤S13的过程中,聚合设备可以采用各种聚合算法,例如,……,对此,本公开实施例不做具体限定。
应用本公开实施例提供的监控方法,在对各个被监控服务在运行过程中产生的服务器数据进行聚合时,可以通过各个被监控服务的聚合开关的开闭状态,确定各个被监控服务中需要进行数据聚合的被监控服务,从而仅对需要进行数据聚合的被监控服务的服务数据进行聚合。其中,由于各个被监控服务的开闭状态是基于RPC监控***的负荷状态和各个被监控服务所属服务类型的聚合优先级确定的,因此,可以根据RPC监控***的负荷程度,依据各个被监控服务的聚合优先级的高低,来确定在当前负荷状态下所需进行数据聚合的被监控服务的数量,从而,避免出现负荷过载所导致的RPC监控***无法正常工作的情况发生。基于此,应用本公开实施例提供的监控方法,可以避免负荷过载对RPC监控***正常工作带来的影响,提升RPC监控***的可用性。
根据上述对RPC监控***的介绍可见,各个被监控服务在运行过程中生成的服务数据是存储到RPC监控***中的服务数据存储设备中的,也就是说,尽管在上述步骤S12中,聚合设备仅对各个被监控服务中,聚合开关开启的各个待聚合服务的服务数据进行了聚合,但是,其他聚合开关关闭的各个被监控服务的服务数据依然存储在上述服务数据存储设备中,并没有丢失。
这样,当RPC监控***检测到自身的负荷过载时,各个被监控服务中,满足关闭条件的被监控服务的聚合开关被关闭,此时,聚合设备仅对各个被监控服务中,聚合开关开启的各个待聚合服务的服务数据进行聚合,并且,用户可以对各个被监控服务进行检测,以对造成负荷过载的故障进行解除。
进而,当造成负荷过载的故障被解除后,RPC监控***可以检测到自身的负荷由过载状态转变为未过载状态。这样,为了能够全面地对各个被监控服务中的全部服务的运行状态进行监控,可选的,一种具体实现方式中,本公开提供的一种监控方法中,还可以包括如下步骤:
当RPC监控***负荷未过载时,便可以启动对聚合开关关闭的被监控服务的聚合开关的开启操作;
针对每一聚合开关重新开启的被监控服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
其中,在本具体实现方式中,提供了一种“重算功能”,即当RPC监控***检测到自身负荷未过载时,RPC监控***可以停止报警,从而,用户可以将之前聚合开关关闭的各个被监控服务的聚合开关再次开启。这样,聚合设备可以在步骤S11中获取到的各个被监控服务在运行过程中产生的服务数据中,确定聚合开关重新开启的各个被监控服务的服务数据,并对这些服务数据重新进行聚合,以得到聚合开关重新开启的各个被监控服务在聚合开关关闭阶段的聚合指标。
显然,在本具体实现方式中,通过“重算功能”,可以在聚合开关关闭的被监控服务的聚合开关重新开启后,补充计算这些被监控服务在聚合开关关闭时,未得到的聚合指标,从而,将各个被监控服务的聚合指标补齐,实现对被监控服务的全部运行过程的监控。
根据上述说明,在聚合设备的运行过程中,需要进行数据聚合的被监控服务可以根据PRC监控***的负荷状态以及各个被监控服务所属服务类型的聚合优先级进行动态调整,即当负荷过载时,关闭一部分被监控服务的聚合开关,以降低RPC监控***的负荷;当负荷未过载时,重新开启一部分被监控服务的聚合开关,以实现对尽量多的被监控服务的聚合指标的计算。
并且,由于可以设定分布式***构建中各个***中的核心服务的聚合优先级为最高优先级,则即使关闭一部分监控服务的聚合开关,也可以始终保证对核心服务的服务数据的持续聚合,从而保证对RPC监控***对核心服务的持续监控能力。
可以理解的,RPC监控***是实时对各个被监控服务进行监控的,而对于聚合设备而言,其可以实时对各个被监控服务的服务数据进行聚合,也可以按照一定的周期,对各个被监控服务的服务数据进行聚合。
基于此,可选的,一种具体实现方式中,当聚合设备按照一定的周期,对各个被监控服务的服务数据进行聚合时,如图2所示,上述步骤S11便可以包括如下步骤:
在步骤S21中,获取RPC监控***所监控的各个被监控服务在预设的每一周期内的运行过程中产生的服务数据。
相应的,在本具体实现方式中,上述步骤S13便可以包括如下步骤:
在步骤S23中,针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务在每一周期内的聚合指标。
也就是说,可以预先设定RPC监控***中被监控服务的聚合指标的计算周期,这样,每隔该计算周期所对应的时长,聚合设备便可以从存储设备中获取各个被监控服务在该时长内运行时,每次运行过程中产生的服务数据。相应的,聚合设备所计算得到的聚合指标反映的也是被监控设备在该时长内的运行状态。
此外,由于聚合开关的开闭状态是基于RPC监控***的负荷状态和各个被监控服务所属服务类型的聚合优先级确定的,因此,当RPC监控***可以获知各个被调服务和/或主调服务的服务类型,则在本公开提供的RPC监控***中,被监控服务即可为各个被调服务和/或主调服务。
其中,图2所示实施例中步骤S22与上述步骤S12的执行方式相同,再次不再赘述。
可选的,一种实施例中,RPC监控***所监控的各个被监控服务可以为各个被调服务。
相应的,当聚合设备按照预设周期确定被监控设备的聚合指标时,聚合设备所获取的被监控设备的服务数据可以包括:每一周期内的被调用次数、每一周期内被调用成功次数、每一周期内被调用失败次数和每一周期内每次被调用的时延中的至少一项;
这样,基于上述各类服务数据,聚合设备便可以计算被监控设备在该周期内的QPS(Query Per Second,每秒查询率)、在该周期内的可用性,以及在该周期的平均时延中的至少一项。
其中,QPS表征的是:一服务所在的电子设备每秒能够响应的服务查询次数,是对该服务所在的电子设备在规定时间内所处理流量的多少的衡量指标;
可用性表征的是:在该周期内调用被调服务成功的次数占总调用次数的比例,是对被调服务响应调用请求的能力的衡量指标;
平均时延表征的是:在该周期内,主调服务调用该被调服务时,被调服务的平均反应时间,是对被调服务的及时反应能力的衡量指标。
进一步的,可选的,一种具体实现方式中,如图3所示,在上述图2所示实施例的基础上,本公开提供的一种监控方法还可以包括如下步骤:
在步骤S24中,针对每一待聚合服务,获得该服务在多个周期内的聚合指标;并基于所获得的多个聚合指标,确定该服务的运行状态。
其中,在本具体实现方式中,由于本公开提供的一种监控方法是周期性进行的,并且,针对每一周期,聚合设备均可以获得该服务在该周期内的聚合指标。这样,在经历多个周期后,聚合设备便可以获取到该服务的多个聚合指标。并且,所得到的多个聚合指标中,每一聚合指标对应该服务在一个周期内的运行状态。
这样,针对每一待聚合服务,聚合设备便可以基于所获得的多个聚合指标,确定该服务在多个周期所对应的时长内的运行状态。
可选的,针对每一待聚合服务,可以利用所获得的多个聚合指标,在二维坐标系中绘制该待聚合服务的指标曲线图。其中,二维坐标系的横坐标为各个周期的标号,其中,各个周期的标号按照周期所对应的实际时间由早到晚排列,纵坐标为各个周期内的聚合指标。从而,可以根据所绘制的指标曲线图中,各个聚合指标的变换情况,确定该待聚合服务的运行状态。
进一步的,由于本公开提供的监控方法具有“重算功能”,因此,对于在上述步骤S12中,聚合开关关闭的各个被监控服务,利用上述“重算功能”,也可以得到这些被监控服务在多个周期内的每个周期中的聚合指标,从而,同样可以利用所得到的多个聚合指标,对这些被监控服务的运行状态进行确定。
为了便于理解本公开提供的一种监控方法,下面,通过如图4所示的示意图对该监控方法进行说明。
其中,服务A为主调服务,服务B为被调服务,被监控服务为被调服务,原始数据即为各个主调服务和各个被调服务的服务信息和服务数据,其存储在存储设备中,并在聚合设备中执行本公开提供的一种监控方法。
进而,在得到各个被调服务的聚合指标后,可以利用各种显示设备展示所得到的聚合指标,由于被监控服务为被调服务,则该聚合指标也可以成为调用指标,即可以展示所得到的调用指标。进而,在所得到的调用指标与预设监控阈值出现偏差时,确定被调服务的运行状态出现故障,并对该故障进行报警。
相应的,服务负责人,即用户可以获知聚合设备所得到的各个被调服务的调用指标,并在聚合设备进行报警时,接收到报警信号。
具体的,在聚合设备中,可以根据RPC监控***的负荷动态调整各个被调服务的聚合开关的开闭状态,从而,对聚合开关开启的被调服务的服务数据进行聚合,得到聚合指标,而对聚合开关关闭的被调服务的服务数据放弃聚合。
进一步的,在RPC监控***的负荷允许时,可以重新开启聚合开关关闭的被调服务的聚合开关,以通过重算功能,重新聚合这些被调服务在聚合开关关闭过程中的服务数据,得到这些被调服务在聚合开关关闭过程中的聚合指标。
图5是根据一示例性实施例示出的一种监控装置框图。参照图5,该装置包括数据获取模块510,服务确定模块520和数据聚合模块530。
该数据获取模块510被配置为获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据;.
该服务确定模块520被配置为基于所述RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级,确定所述各个被监控服务中,聚合开关开启的各个待聚合服务;其中,所述聚合开关被配置为控制是否对被监控服务的服务数据进行聚合,所述聚合开关的开闭状态是基于所述RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级确定的;
该数据聚合模块530被配置为针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
应用本公开实施例提供的方案,在对各个被监控服务在运行过程中产生的服务器数据进行聚合时,可以通过各个被监控服务的聚合开关的开闭状态,确定各个被监控服务中需要进行数据聚合的被监控服务,从而仅对需要进行数据聚合的被监控服务的服务数据进行聚合。其中,由于各个被监控服务的开闭状态是基于RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级确定的,因此,可以根据RPC监控***的负荷程度,依据各个被监控服务的聚合优先级的高低,来确定在当前负荷状态下所需进行数据聚合的被监控服务的数量,从而,避免出现负荷过载所导致的RPC监控***无法正常工作的情况发生。基于此,应用本公开实施例提供的监控方法,可以避免负荷过载对RPC监控***正常工作带来的影响,提升RPC监控***的可用性。
可选的,一种具体实现方式中,所述装置还包括:
第一启动开关,被配置为若所述RPC监控***负荷过载,则启动对满足关闭条件的被监控服务的聚合开关的关闭操作;
其中,所述关闭条件为:所属数据类型的聚合优先级低于预设优先级。
可选的,一种具体实现方式中,所述装置还包括:
第二启动开关,被配置为若所述RPC监控***负荷未过载,则启动对聚合开关关闭的被监控服务的聚合开关的开启操作;
数据重算模块,被配置为针对每一聚合开关重新开启的被监控服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标。
可选的,一种具体实现方式中,
所述数据获取模块510,具体被配置为获取所述RPC监控***所监控的各个被监控服务在预设的每一周期内的运行过程中产生的服务数据;
所述数据聚合模块530,具体被配置为针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务在所述每一周期内的聚合指标。
可选的,一种具体实现方式中,所述各个被监控服务为:被调服务;
所述服务数据包括:所述每一周期内的被调用次数、所述每一周期内被调用成功次数、所述每一周期内被调用失败次数和所述每一周期内每次被调用的时延中的至少一项;
该服务的聚合指标包括:所述每一周期内的每秒查询率QPS、所述每一周期内的可用性和所述每一周期内的平均时延中的至少一项。
可选的,一种具体实现方式中,所述装置还包括:
状态确定模块,被配置为针对每一待聚合服务,获得该服务在多个所述周期内的聚合指标;并基于所获得的多个聚合指标,确定该服务的运行状态。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图6是根据一示例性实施例示出的一种用于监控的电子设备600的框图。参照图6,电子设备600包括处理组件622,其进一步包括一个或多个处理器,以及由存储器632所代表的存储器资源,用于存储可由处理组件622的执行的指令,例如应用程序。存储器632中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件622被配置为执行指令,以执行上述任一监控方法。
电子设备600还可以包括一个电源组件626被配置为执行电子设备600的电源管理,一个有线或无线网络接口650被配置为将电子设备600连接到网络,和一个输入输出(I/O)接口658。电子设备600可以操作基于存储在存储器632的操作***,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM。
在示例性实施例中,还提供了一种包括指令的存储介质,例如包括指令的存储器632,上述指令可由电子设备600的处理组件622执行以完成上述方法。可选地,存储介质可以是非临时性计算机可读存储介质,例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (10)
1.一种监控方法,其特征在于,所述方法包括:
获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据;所述服务数据存储于所述RPC监控***中的服务数据存储设备中;
基于所述RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级,确定所述各个被监控服务中,聚合开关开启的各个待聚合服务;其中,所述聚合开关用于控制是否对被监控服务的服务数据进行聚合;
若所述RPC监控***负荷过载,则启动对满足关闭条件的被监控服务的聚合开关的关闭操作;所述关闭条件为:所属数据类型的聚合优先级低于预设优先级;
针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标;
若所述RPC监控***负荷未过载,则启动对聚合开关关闭的被监控服务的聚合开关的开启操作;针对每一聚合开关重新开启的被监控服务,对所获取到的存储于所述服务数据存储设备中该服务的服务数据进行聚合,得到该服务的聚合指标。
2.根据权利要求1所述的方法,其特征在于,
所述获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据的步骤,包括:
获取所述RPC监控***所监控的各个被监控服务在预设的每一周期内的运行过程中产生的服务数据;
所述针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标的步骤,包括:
针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务在所述每一周期内的聚合指标。
3.根据权利要求2所述的方法,其特征在于,
所述各个被监控服务为:被调服务;
所述服务数据包括:所述每一周期内的被调用次数、所述每一周期内被调用成功次数、所述每一周期内被调用失败次数和所述每一周期内每次被调用的时延中的至少一项;
该服务的聚合指标包括:所述每一周期内的每秒查询率QPS、所述每一周期内的可用性和所述每一周期内的平均时延中的至少一项。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
针对每一待聚合服务,获得该服务在多个所述周期内的聚合指标;并基于所获得的多个聚合指标,确定该服务的运行状态。
5.一种监控装置,其特征在于,所述装置包括:
数据获取模块,被配置为获取RPC监控***所监控的各个被监控服务在运行过程中产生的服务数据;所述服务数据存储于所述RPC监控***中的服务数据存储设备中;
服务确定模块,被配置为基于所述RPC监控***的负荷状态和所述各个被监控服务所属服务类型的聚合优先级,确定所述各个被监控服务中,聚合开关开启的各个待聚合服务;其中,所述聚合开关被配置为控制是否对被监控服务的服务数据进行聚合;
第一启动开关,被配置为若所述RPC监控***负荷过载,则启动对满足关闭条件的被监控服务的聚合开关的关闭操作;所述关闭条件为:所属数据类型的聚合优先级低于预设优先级;
数据聚合模块,被配置为针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务的聚合指标;
第二启动开关,被配置为若所述RPC监控***负荷未过载,则启动对聚合开关关闭的被监控服务的聚合开关的开启操作;
数据重算模块,被配置为针对每一聚合开关重新开启的被监控服务,对所获取到的存储于所述服务数据存储设备中该服务的服务数据进行聚合,得到该服务的聚合指标。
6.根据权利要求5所述的装置,其特征在于,
所述数据获取模块,具体被配置为获取所述RPC监控***所监控的各个被监控服务在预设的每一周期内的运行过程中产生的服务数据;
所述数据聚合模块,具体被配置为针对每一待聚合服务,对所获取到的该服务的服务数据进行聚合,得到该服务在所述每一周期内的聚合指标。
7.根据权利要求6所述的装置,其特征在于,
所述各个被监控服务为:被调服务;
所述服务数据包括:所述每一周期内的被调用次数、所述每一周期内被调用成功次数、所述每一周期内被调用失败次数和所述每一周期内每次被调用的时延中的至少一项;
该服务的聚合指标包括:所述每一周期内的每秒查询率QPS、所述每一周期内的可用性和所述每一周期内的平均时延中的至少一项。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括:
状态确定模块,被配置为针对每一待聚合服务,获得该服务在多个所述周期内的聚合指标;并基于所获得的多个聚合指标,确定该服务的运行状态。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至4中任一项所述的监控方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至4中任一项所述的监控方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911309723.9A CN111107084B (zh) | 2019-12-18 | 2019-12-18 | 一种监控方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911309723.9A CN111107084B (zh) | 2019-12-18 | 2019-12-18 | 一种监控方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111107084A CN111107084A (zh) | 2020-05-05 |
CN111107084B true CN111107084B (zh) | 2022-10-11 |
Family
ID=70423535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911309723.9A Active CN111107084B (zh) | 2019-12-18 | 2019-12-18 | 一种监控方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111107084B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111866129B (zh) * | 2020-07-20 | 2023-03-14 | 北京百度网讯科技有限公司 | 基于云平台的服务可用性指标的确定方法及装置、介质 |
CN112799905A (zh) * | 2021-01-05 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 一种软件运行的监测方法、***及相关装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859354A (zh) * | 2005-10-14 | 2006-11-08 | 华为技术有限公司 | 多机分布式***的负荷控制方法 |
CN102130950A (zh) * | 2011-03-14 | 2011-07-20 | 中国科学技术大学苏州研究院 | 基于Hadoop集群的分布式监控***及其监控方法 |
CN102572397A (zh) * | 2012-01-04 | 2012-07-11 | 瑞斯康达科技发展股份有限公司 | 视频监控***及视频监控***中数据处理的装置和方法 |
CN103095598A (zh) * | 2012-12-17 | 2013-05-08 | 华中科技大学 | 一种大规模集群环境下的监控数据聚合方法 |
CN104010160A (zh) * | 2013-02-25 | 2014-08-27 | 杭州海康威视***技术有限公司 | 视频监控***的干线管理方法及其装置 |
-
2019
- 2019-12-18 CN CN201911309723.9A patent/CN111107084B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1859354A (zh) * | 2005-10-14 | 2006-11-08 | 华为技术有限公司 | 多机分布式***的负荷控制方法 |
CN102130950A (zh) * | 2011-03-14 | 2011-07-20 | 中国科学技术大学苏州研究院 | 基于Hadoop集群的分布式监控***及其监控方法 |
CN102572397A (zh) * | 2012-01-04 | 2012-07-11 | 瑞斯康达科技发展股份有限公司 | 视频监控***及视频监控***中数据处理的装置和方法 |
CN103095598A (zh) * | 2012-12-17 | 2013-05-08 | 华中科技大学 | 一种大规模集群环境下的监控数据聚合方法 |
CN104010160A (zh) * | 2013-02-25 | 2014-08-27 | 杭州海康威视***技术有限公司 | 视频监控***的干线管理方法及其装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111107084A (zh) | 2020-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956424B2 (en) | Application recommending method and system, and server | |
CN106557369B (zh) | 一种多线程的管理方法及*** | |
US9311066B1 (en) | Managing update deployment | |
CN111107084B (zh) | 一种监控方法、装置、电子设备及存储介质 | |
CN111130939B (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
CN111125208A (zh) | 一种数据采集处理方法、装置及*** | |
CN109408399B (zh) | 一种算力估计方法、装置、设备和存储介质 | |
CN112187512B (zh) | 一种基于流量监控的端口自动扩容方法、装置和设备 | |
CN111124609B (zh) | 数据采集方法、装置、数据采集设备及存储介质 | |
WO2016150153A1 (zh) | 一种用于软件发布的方法和装置 | |
CN112783725A (zh) | 指标采集方法及装置 | |
JPWO2005017736A1 (ja) | ディスクアレイ装置におけるボトルネックを検出するシステムおよびプログラム | |
CN111124830A (zh) | 一种微服务的监控方法及装置 | |
CN110191016B (zh) | 云平台业务监控方法、装置、设备、***及可读存储介质 | |
CN114461385A (zh) | 线程池调度方法、装置、设备以及可读存储介质 | |
CN108415765B (zh) | 任务调度方法、装置及智能终端 | |
CN113608982A (zh) | 函数执行性能监测方法、装置、计算机设备及存储介质 | |
CN111224811B (zh) | 一种snmp请求监听***、方法、装置及计算机可读存储介质 | |
CN112799910A (zh) | 层次化监控方法及装置 | |
WO2019184801A1 (zh) | 网络管理方法和装置 | |
WO2016165471A1 (zh) | Hadoop集群组件指标的采集方法及装置 | |
CN114756372A (zh) | 用于负载均衡的方法、装置、设备和介质 | |
US20180063005A1 (en) | Non-blocking request processing method and device | |
WO2011131065A1 (zh) | 一种网络管理***及数据采集方法 | |
CN111158899A (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 |