掌桥专利:专业的专利平台
掌桥专利
首页

服务运行指标监控方法、装置和服务器

文献发布时间:2023-06-19 11:52:33


服务运行指标监控方法、装置和服务器

技术领域

本发明涉及数据处理技术领域,尤其是涉及一种服务运行指标监控方法、装置和服务器。

背景技术

相关技术中,在对软件服务可能出现故障的节点进行监控和告警时,通常将监控和告警的代码写入软件服务核心功能的代码中,以通过编码的方式实现对易出现故障的节点的监控和告警,但该方式需要编写大量的代码,且在软件服务的核心功能模块出现故障时,无法对出现故障的节点进行告警。

发明内容

本发明的目的在于提供一种服务运行指标监控方法、装置,以避免在软件核心中编写大量的告警代码,实现对出现故障的节点的告警。

第一方面,本发明实施例提供一种服务运行指标监控方法,该方法包括:基于预先存储的监控指标向待监控服务发送数据获取请求,该数据获取请求用于获取待监控服务中监控指标的运行数据;接收待监控服务基于数据获取请求反馈的运行数据,并将运行数据存储至数据库;根据预先存储的告警模板生成可运行的告警程序,其中,告警模板包括至少一项监控指标和告警条件,该告警程序在运行的过程中能够从数据库中获取监控指标的运行数据,并根据运行数据和告警条件进行告警处理。

在本发明较佳的实施例中,上述根据运行数据和告警条件进行告警处理,包括:如果运行数据满足告警条件,则进行告警处理。

在本发明较佳的实施例中,上述告警条件为预设的告警表达式和标准表达式值;上述如果运行数据满足告警条件,则进行告警处理,包括:将运行数据输入告警表达式中,输出告警表达式的计算结果;如果计算结果与标准表达式值相匹配,则进行告警处理。

在本发明较佳的实施例中,上述告警模板还包括告警方式;上述根据所述运行数据和告警条件进行告警处理,包括:如果运行数据满足告警条件,则根据告警方式进行告警。

在本发明较佳的实施例中,上述告警方式包括以下方式中的任一种或多种:邮件告警、电话告警和短信息告警。

在本发明较佳的实施例中,上述在向待监控服务发送数据获取请求之前还包括:获取用户定义的待监控服务的监控指标并存储;在根据预先存储的告警模板生成可运行的告警程序之前还包括:获取用户定义的告警模板并存储。

第二方面,本发明实施例提供一种服务运行指标监控装置,该装置包括:运行数据获取模块,用于基于预先存储的监控指标向待监控服务发送数据获取请求,该数据获取请求用于获取待监控服务中监控指标的运行数据;运行数据获取模块,还用于接收待监控服务基于数据获取请求反馈的运行数据,并将运行数据存储至数据库;告警模块,用于根据预先存储的告警模板生成可运行的告警程序,其中,该告警模板包括至少一项监控指标和告警条件,该告警程序在运行的过程中能够从数据库中获取监控指标的运行数据,并根据运行数据和告警条件进行告警处理。

在本发明较佳的实施例中,上述告警模块,还用于:如果运行数据满足所述告警条件,则进行告警处理。

在本发明较佳的实施例中,上述告警条件为预设的告警表达式和标准表达式值;上述告警模块,还用于:将运行数据输入告警表达式中,输出告警表达式的计算结果;如果计算结果与标准表达式值相匹配,则进行告警处理。

在本发明较佳的实施例中,上述告警模板还包括告警方式;该告警模块,用于:如果运行数据满足所述告警条件,则根据告警方式进行告警。

在本发明较佳的实施例中,上述告警方式包括以下方式中的任一种或多种:邮件告警、电话告警和短信息告警。

在本发明较佳的实施例中,上述装置还包括监控指标获取模块,用于:获取用户定义的待监控服务的监控指标并存储;上述装置还包括告警模板获取模块,用于获取用户定义的告警模板并存储。

第三方面,本发明实施例提供一种服务器,该服务器包括处理器和存储器,该存储器存储有能够被处理器执行的机器可执行指令,该处理器执行机器可执行指令以执行上述服务运行指标监控方法。

第四方面,本发明实施例提供一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器执行上述服务运行指标监控方法。

本发明实施例带来了以下有益效果:

本发明提供了一种服务运行指标监控方法、装置和服务器。相对于现有技术,本发明使得用户可以根据对待监控服务的监控需求,自定义监控指标和告警模板,告警模板本质上为一个可运行程序的配置文件,进而根据告警模板自动生成一个可运行的告警程序,该告警程序可以根据运行数据和告警条件进行告警处理,从而无需在待监控服务的核心功能模块中编写大量的代码,实现了监控功能、告警功能与待监控服务的核心功能的解耦,一方面避免了当待监控服务自身出现宕机时导致的告警失效,另一方面由于定义一个告警模板难度低、修改灵活,可以根据用户需求随时修改和定义,提高了监控告警的灵活性。

本发明的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本发明的上述技术即可得知。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施方式,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种服务运行指标监控方法的时序图;

图2为本发明实施例提供的一种服务运行指标监控方法的流程图;

图3为本发明实施例提供的另一种服务运行指标监控方法的流程图;

图4为本发明实施例提供的一种服务运行指标监控装置的结构示意图;

图5为本发明实施例提供的一种服务器的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

相关技术中,将监控与告警的代码写入软件核心功能的代码,来实现对易出现故障的点的监控与告警,该方式需要编写大量的代码,且在软件核心出现故障时,无法对出现故障的节点进行告警。

基于上述问题,本发明实施例提供了一种服务运行指标监控方法、装置和服务器,该技术可以应用于各种服务集群的监控场景中,尤其是服务节点的运行状态的监控场景中。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种服务运行指标监控方法进行详细介绍,如图1和2所示,该方法包括如下具体步骤:

步骤S102,基于预先存储的监控指标向待监控服务发送数据获取请求,该数据获取请求用于获取待监控服务中监控指标的运行数据。

上述监控指标可以预先存储在预设的存储系统中,该监控指可以是待监控服务的运行参数,也可以是待监控服务在运行过程中的内存占用量等;其中待监控服务可以是服务节点,该服务节点可以看成是一个服务器,也可以是服务器上的一个服务进程等。在具体实现时,上述监控指标通常是指需要监控的内容,可以是CPU(Central Processing Unit,中央处理器)的占用率、服务请求错误率、服务请求时长、网络带宽占用量、磁盘占用量、内存占用量等。上述监控指标的运行数据可以是监控指标对应的具体数值,例如,服务节点1的CPU占用率为50%;上述监控指标的运行数据还可以包括监控指标的具体包括的字段,例如监控指标的名称、获取路径或者IP(Internet Protocol,网络互联协议)地址等。

步骤S104,接收上述待监控服务基于数据获取请求反馈的运行数据,并将该运行数据存储至数据库。

当待监控服务接收到数据获取请求时,该待监控服务响应该数据获取指令,得到监控指标的运行数据,并将该运行数据返回至发送数据获取请求对应的服务器,该服务器接收该运行数据,并将该运行数据存储值数据库中,该数据库可以是预设的存储系统。

步骤S106,根据预先存储的告警模板生成可运行的告警程序,其中,告警模板包括至少一项监控指标和告警条件,该告警程序在运行的过程中能够从数据库中获取监控指标的运行数据,并根据运行数据和告警条件进行告警处理。

上述告警模板包含有至少一项监控指标,以及该监控指标对应的告警条件和告警方式等;该告警方式可以是邮件、电话或者短信等方式中的一种或多种,该告警方式中配置有相应的接收告警信息的通信地址和告警内容,通信地址例如:邮箱地址、电话号码、预定即时通讯软件的账号等。在具体实现时,告警程序可以使用上述告警方式向告警模板中配置的通信地址等发送告警提醒。告警模板中的告警条件和告警方式等配置信息,可以根据用户需求进行在线动态配置,配置完成后,无需重启服务,该告警模板可自动生效,从而方便了用户的使用。

当用户触发监控指令时,上述告警模板可生成可运行的告警程序,并通过该告警程序从数据库中获取监控指标的运行数据,并根据该监控指标的运行数据,以及该监控指标对应的告警条件,判断该监控指标是否需要告警,如果需要,对该监控指标进行告警处理。例如,可以将某一项监控指标的运行数据与其对应的阈值比较、对该运行数据计算布尔值或者为该运行数据配置相应的计算参数等操作,以判断该监控指标是否需要告警。

上述服务运行指标监控方法,使得用户可以根据对待监控服务的监控需求,自定义监控指标和告警模板,告警模板本质上为一个可运行程序的配置文件,进而根据告警模板自动生成一个可运行的告警程序,该告警程序可以根据运行数据和告警条件进行告警处理,从而无需在待监控服务的核心功能模块中编写大量的代码,实现了监控功能、告警功能与待监控服务的核心功能的解耦,一方面避免了当待监控服务自身出现宕机时导致的告警失效,另一方面由于定义一个告警模板难度低、修改灵活,可以根据用户需求随时修改和定义,提高了监控告警的灵活性。

本发明实施例还提供另一种服务运行指标监控方法,该方法在上述实施例方法的基础上实现;该方法重点描述根据运行数据和告警条件进行告警处理的具体过程(通过下述步骤S206-S210实现);如图3所示,该方法包括如下步骤:

步骤S202,基于预先存储的监控指标向待监控服务发送数据获取请求,该数据获取请求用于获取待监控服务中监控指标的运行数据。

步骤S204,接收上述待监控服务基于数据获取请求反馈的运行数据,并将该运行数据存储至数据库。

步骤S206,当接收到用户触发的告警监控指令时,根据预先存储的告警模板生成可运行的告警程序,运行该告警程序,以从数据库中获取监控指标的运行数据,并判断运行数据是否满足告警条件;如果是,执行步骤S208;否则,执行步骤S210。

步骤S208,进行告警处理。

在一些实施例中,上述告警条件可以为预设的告警表达式和标准表达式值;在判断运行数据是否满足告警条件时,可以将运行数据输入告警表达式中,输出告警表达式的计算结果;如果计算结果与标准表达式值相匹配(也可以理解为运行数据满足告警条件),则进行告警处理。

上述告警模板中,监控指标的告警条件可以为预设的告警表达式和标准表达式值;基于此,将监控指标的运行数据输入监控指标对应的告警模板中的告警表达式中,输出告警表达式的计算结果;如果计算结果与该标准表达式值相匹配,确定该监控指标需要告警,对监控指标进行告警处理。

上述告警表达式可以是与监控指标阈值相关的判断式,或者逻辑关系式等,例如,告警表达式可以写为:config[data0['conf']]!=null&&data0['sum']*1

为了方便对指标告警监控模板的理解,下面给出了一个告警模板的实例:

为了便于理解,针对上述告警模板中出现的参数,及其对应的功能和作用进行详细描述,如下:

“id”:定义一个告警的类型(例如,上述数据采集未上报监控数据告警);id的作用通常是:控制删除修改告警模板的逻辑、作为告警配置的内部程序逻辑等。

“cron”:定义告警什么时间执行。

“datas”:定义查询数据表格的方式,且datas(例如,data0、data1等)中可定义多个数据视图,需要注意点:1、因允许多个数据表格比较,需要确定多个数据表格的联接字段,通常固定采用所有dimensionField中的字段进行联接;2、如果允许表中只有一条记录,比如有些阈值是需要从数据库中动态得到的,此时,则允许dimensionField和第一张数据表格中的连接字段不一致,其他表格中的必须一致;3、数据表格的每行数据通常都会单独的处理告警聚合逻辑。

“datas.sql”:查询数据库的SQL,其中有三个固定字段:tablename、timestampbetween startMills and endMillis和limit;tablename通常是统一表名;timestampbetween startMills and endMillis通常是查询条件固定字符串必须加上,它确定了查询的时间范围;通常返回数据的条数超过200条时,需要加上limit。

“datas.starttimeIntervalMin”:查询数据的开始时间距离系统当前时间的分钟数。

“datas.endtimeIntervalMin”:查询数据的结束时间距离系统当前时间的分钟数。

“datas.dimensionField”:通常表示维度字段,该字段可以用于进行分类的告警聚合。

“datas.measureField”:计算字段。该字段的值通常是数字类型。

“datas.joinField”:在存在多个数据表格的场景下,进行多表间的关联。

“datas.dsId”:数据源的地址。

“datas.indexPrefix”:indexPrefix为索引前缀,如indexPrefix=dc_sla_时,匹配dc_sla_[datas.indexTimeFormat],例如,dc_sla_20171124;indexPrefix还支持*模糊匹配,如indexPrefix=download_*_rt,匹配download_[datas.indexTimeFormat]_rt,例如,download_20171123_rt。

“datas.indexTimeFormat”:定义了日期的格式,例如,yyyyMMdd、yyyy-MM-dd等。

“type”:通常是数据库中的TYPE值,用于构造tablename。

“noDataAlarm”:定义为无数据情况进行告警,其中,无数据通常是指datas中的第一条SQL无数据。

“formula”:相当于上述告警表达式,该标准表达式值为true时,定义为需要告警,通常该告警表达式需要求值为boolean类型,该boolean类型的boolean变量通常存储为8位(1个字节)的数值形式,且该数值为True或False。上述formula通常支持各种逻辑操作符、计算操作符、数组等,而且告警表达式中有两个类型的数据,他们之间可以进行引用。该告警表达式可以取到上面的datas中的数据,其中,data0代表第一张表,data1代表第二张,以此类推;该告警表达式可以取到告警配置,该告警配置通常是一个map,命名为config,此map中的key可以通过上面datas中的数据进行引用。

“action”:配置为JSONArray[JSONObject],根据不同的action类型有不同的配置内容,其中,JSONObject中的需要有type,该type可选项为[SendSMS,SendMail,SendOnePiece]。

“combine”:默认为false,当combine为true,则代表合并单个告警处理周期内的所有告警内容,一次性发送。

“debug”:可以设置为true或者false,当为true时在告警系统日志文件中能看到此告警执行的详细过程,帮助调试错误。

上述action中type选项中的SendSMS配置可以包括下述表1中的配置参数,下述表1对配置参数进行了详细的描述:

表1

上述action中type选项中的SendMail配置可以包括下述表2中的配置参数,下述表2对配置参数进行了详细的描述:

表2

上述告警模板还包括监控指标的查询方式;根据监控指标的查询方式,向存储系统中的运行数据存储数据库查询该监控指标的运行数据。该查询方式通常可根据数据存储的格式,设置不同的查询方式,例如,SQL查询方式等。

在另一些实施例中,上述告警模板还包括告警方式;在具体实现时,如果运行数据满足告警条件,则根据告警方式进行告警。

上述告警方式包括以下方式中的任一种或多种:邮件告警、电话告警和短信息告警。

步骤S210,不进行告警处理。

在具体实现时,在向待监控服务发送数据获取请求之前,上述方法还包括:获取用户定义的待监控服务的监控指标并存储。

用户通过终端设备发送待监控服务的监控指标,服务器接收待该监控指标后,将该监控指标发送至预设的存储系统中的监控指标存储数据库,以存储该监控指标。存储系统中的数据库通常采用NOSQL(非关系型)数据库,例如,可以使用ES(Elasticsearch,分布式文本搜索引擎)的schema free的数据库来实现,而且该数据库需要支持SQL方式查询。

在具体实现时,在根据预先存储的告警模板生成可运行的告警程序之前,上述方法还包括:获取用户定义的告警模板并存储。

用户可通过终端设备将自定义的告警模板发送至服务器,该服务器将接收到的告警模板发送至预设的存储系统中的告警模板存储数据库,以存储该告警模板。

上述服务运行指标监控方法,可以将告警系统与业务系统完全解耦,而且无需编写大量的告警代码,可动态在线新增告警模板中的配置信息,方便了用户的使用。

对应于上述服务运行指标监控方法的实施例,本发明实施例还提供了一种服务运行指标监控装置,如图4所示,该装置包括:

运行数据获取模块30,用于基于预先存储的监控指标向待监控服务发送数据获取请求,该数据获取请求用于获取待监控服务中监控指标的运行数据。

运行数据获取模块30,还用于接收待监控服务基于数据获取请求反馈的运行数据,并将运行数据存储至数据库。

告警模块31,用于根据预先存储的告警模板生成可运行的告警程序,其中,该告警模板包括至少一项监控指标和告警条件,告警程序在运行的过程中能够从数据库中获取监控指标的运行数据,并根据运行数据和告警条件进行告警处理。

本发明提供了一种服务运行指标监控装置,该装置使得用户可以根据对待监控服务的监控需求,自定义监控指标和告警模板,告警模板本质上为一个可运行程序的配置文件,进而根据告警模板自动生成一个可运行的告警程序,该告警程序可以根据运行数据和告警条件进行告警处理,从而无需在待监控服务的核心功能模块中编写大量的代码,实现了监控功能、告警功能与待监控服务的核心功能的解耦,一方面避免了当待监控服务自身出现宕机时导致的告警失效,另一方面由于定义一个告警模板难度低、修改灵活,可以根据用户需求随时修改和定义,提高了监控告警的灵活性。

具体地,上述告警模块31还包括图形展示单元;该图形展示单元用于:按照预设的展示方式在待监控服务中展示监控指标的运行数据。

上述图形展示单元通常可以根据用户需求,将监控指标的运行数据按照相应的展示方式进行展示,该展示方式可以是图形、表格或者文本等形式,其中图形可以包括线条、柱状图或者扇形等表现形式。当用户触发UI(User Interface,用户界面)界面中的图形展示选项时,该图形展示单元可以根据用户需求将监控指标的运行数据以预设方式展现出来,从而丰富了数据的展现形式,也有利于用户更直观的观察监控指标的运行数据。

上述告警模块31还包括查询接口单元,该查询接口单元通常包含多个查询API(Application Programming Interface,应用程序接口),该查询API通常预先定义有多种函数,该函数可以定义查询指令的格式或者查询权限等,例如,查询指定需为JSON格式或者SQL(Structured Query Language,结构化查询语言)等;查询权限中可规定哪些用户可以查询监控指标的运行数据,通常需要预先将具有访问权限的用户的标识,保存在查询权限中。当查询接口单元接收到符合查询权限和查询格式的查询指令时,从数据库中查询该查询指令对应的监控指标的运行数据,并将查询到的监控指标数据以表格的形式发送至告警模板,以使告警模块接收对接收到的数据表格中的监控指标的运行数据,通过监控指标对应的告警模板,确定该监控指标是否需要告警,如果需要,对监控指标进行告警处理。

进一步地,告警模块31,还用于:如果所述运行数据满足所述告警条件,则进行告警处理。

具体地,上述告警条件为预设的告警表达式和标准表达式值;上述告警模块31,还用于:将运行数据输入告警表达式中,输出告警表达式的计算结果;如果计算结果与标准表达式值相匹配,则进行告警处理。

上述告警模板还包括告警方式;上述告警模块31,用于:如果运行数据满足告警条件,则根据告警方式进行告警。该告警方式包括以下方式中的任一种或多种:邮件告警、电话告警和短信息告警。

进一步地,上述装置还包括监控指标获取模块,用于:获取用户定义的待监控服务的监控指标并存储;上述装置还包括告警模板获取模块,用于获取用户定义的告警模板并存储。

上述服务运行指标监控装置,根据告警模块中预先配置的监控指标对应的告警模板,对查询到的运行数据进行告警判断,如果需要告警,即对该监控指标执行告警处理。该方式可以将告警系统与业务系统完全解耦,而且无需编写大量的告警代码,可动态在线新增告警模板中的配置信息,方便了用户的使用。

本发明实施例所提供的服务运行指标监控装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

本发明实施例还提供了一种服务器,参见图5所示,该服务器包括处理器和存储器,该存储器100存储有能够被处理器101执行的机器可执行指令,该处理器101执行机器可执行指令以执行上述服务运行指标监控方法。

进一步地,图5所示的服务器还包括总线102和通信接口103,处理器101、通信接口103和存储器100通过总线102连接。

其中,存储器100可能包含高速随机存取存储器(RAM,RandomAccessMemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口103(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线102可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

上述处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(CentralProcessingUnit,简称CPU)、网络处理器(NetworkProcessor,简称NP)等;还可以是数字信号处理器(DigitalSignal Processor,简称DSP)、专用集成电路(Application Specific IntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器100,处理器101读取存储器100中的信息,结合其硬件完成前述实施例的方法的步骤。

本发明实施例还提供了一种机器可读存储介质,该机器可读存储介质存储有机器可执行指令,该机器可执行指令在被处理器调用和执行时,该机器可执行指令促使处理器执行上述服务运行指标监控方法,具体实现可参见方法实施例,在此不再赘述。

本发明实施例所提供的服务运行指标监控方法、装置和服务器的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和/或电子设备的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

相关技术
  • 服务运行指标监控方法、装置和服务器
  • 服务器访问监控方法和装置、代理服务器及存储介质
技术分类

06120113084211