数据监控方法和装置与流程

文档序号:12729220阅读:407来源:国知局
数据监控方法和装置与流程

本发明涉及信息处理领域,具体而言,涉及一种数据监控方法和装置。



背景技术:

当前通过云主机进行基础数据监控的方案中,固定采集一些常用指标,如cpu使用率、内存使用率以及磁盘读写速率等,可让用户在控制台查看监控图表、配置告警、以及云应用程序编程接口(Application Programming Interface,即API)拉取监控数据。

目前的基础监控采用代理Agent端主动采集、定时上报到数据处理集群,处理后的数据存储到数据库DB,前台展示从数据库DB拉取的监控数据,通过云监控应用程序编程接口API获取数据,并发送告警通知。

如图1所示,该现有架构包括:采集代理agent:部署在母机(moagent)和子机侧(baradAgent),执行提前预定好的采集逻辑,以采集指定的指标值,并上报barad接入;barad接入端:从采集代理agent处接收数据,并存储到分布式消息队列;barad数据处理集群:从消息队列拉取数据并按照预定规则对源数据做合并和统计处理。

用户可在前端页面配置特定指标的阈值告警,并指定告警接收人,告警触发模块会根据用户的配置,对实时数据的汇总结果进行判定,然后发送告警。

通过上述方案,上报代理端Agent只能采集固定的指标(如一些常见的指标),无法上报与用户指定业务相关的其他指标(如,不与其他业务通用的指标);并且上述方案中,通过agent端上报,用户无法感知上报是否真正成功了,即无法立刻知道每次上报的结果;另外,对于基础监控的告警部分,所有地域公用同一套告警配置,而无法满足用户对不同地域的对象设置不同的告警策略的场景;以及基础监控的告警策略,对同一个指标的同一个对象只能应用一种告警策略,无法实现更灵活的策略配置。

针对上述数据监控指标固定的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种数据监控方法和装置,以至少解决数据监控指标固定的技术问题。

根据本发明实施例的一个方面,提供了一种数据监控方法,包括:接收账户上报的监控数据;获取所述账户配置的监控参数,其中,所述监控参数至少包括:监控指标信息和告警触发条件;按照所述监控指标信息统计所述监控数据,得到统计结果;检测所述统计结果是否符合所述告警触发条件;若检测出所述统计结果符合所述告警触发条件,则生成告警信息。

根据本发明实施例的另一方面,还提供了一种数据监控装置,包括:第一接收单元,用于接收账户上报的监控数据;第一获取单元,用于获取所述账户配置的监控参数,其中,所述监控参数至少包括:监控指标信息和告警触发条件;第一统计单元,用于按照所述监控指标信息统计所述监控数据,得到统计结果;第一检测单元,用于检测所述统计结果是否符合所述告警触发条件;生成单元,用于在检测出所述统计结果符合所述告警触发条件时,生成告警信息。

在本发明实施例中,通过账户配置的监控指标信息对监控数据进行统计,而不是采用固定的指标对数据进行分析,可以实现对于不同的账户进行不同指标的统计,从而可以针对不同的账户得到不同的统计结果;进一步地,利用账户配置的告警触发条件对统计结果进行检测,可以对不同账户使用不同的告警触发条件,而不是对所有的账户均使用相同的告警触发条件,可以实现有针对性的为用户提供监控服务,解决了现有技术中数据监控的指标固定的问题,实现了基于用户配置的指标进行数据监控,以对用户提供定制化监控服务的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是现有技术中监控架构的示意图;

图2是根据本发明实施例的数据监控方法的硬件环境的示意图;

图3是根据本发明实施例的另一种数据监控方法的硬件环境的示意图;

图4是根据本发明实施例的一种可选的数据监控方法的流程图;

图5是根据本发明实施例的一种可选的监控参数的配置界面示意图;

图6是根据本发明实施例的一种可选的监控结果的展示界面示意图;

图7是根据本发明实施例的另一种数据监控方法的硬件环境的架构图;

图8是根据本发明实施例的再一种数据监控方法的硬件环境的架构图;

图9是根据本发明实施例的又一种数据监控方法的硬件环境的架构示意图;

图10是根据本发明实施例的一种可选的数据监控装置的示意图;以及

图11是根据本发明实施例的一种终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本发明实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

命名空间,是指标的容器。

指标,是监控的变量,数据点代表该变量随时间变化的值。

维度,是监控对象进行唯一标识的结构,维度确定维度值后就是具体的监控对象。

监控对象,监控对象是指标的具体对象,也是维度的具体值。

维度聚合,根据用户配置的维度来进行数据统计的操作。原始维度是用户最初指定的维度,在原始维度的基础上,指定多个维度组合成聚合维度,数据只需上报一次,就能根据用户配置的聚合维度,统计数据。

统计方式,是指统计方法和统计周期的集合。

统计方法,是指计算数据的方法,如,计算最大值、计算最小值、计算平均值、以及求和等计算方法。

统计周期,是指计算数据的时间,可选地,该统计周期可以为5分钟。

告警,是提供给用户的监控告警服务中的一个功能,该功能用于对指标的异常情况进行告警,并提供告警信息查看、告警自定义阈值和告警订阅。可选地,根据用户自定义阈值每隔若干个时间间隔对数据进行检查,若达到告警触发条件,则发起告警通知。

告警规则,可以包括通用告警规则和对象告警规则。其中,通用告警规则是配置在指标上,对该指标下同个命名空间和维度下的全部监控对象使用该告警规则;对象告警规则是配置在具体监控对象上,针对这个对象使用的告警规则。

Moagent,母机agent,即,母机代理,部署在母机上,用于采集常用的监控指标并上报。

barad_agen,子机agent,即,子机代理,部署在子机上,用于采集常用的监控指标并上报。

custom-barad-storm,自定义监控的子机数据处理集群。

kafka,用于barad集群的数据处理层和接入层之间交换数据的分布式消息队列。

根据本发明实施例,提供了一种数据监控的方法实施例。可选地,在本实施例中,上述数据监控方法可以应用于如图2所示的由服务器102和终端104所构成的硬件环境中。如图2所示,服务器102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的数据监控方法可以由服务器102来执行,也可以由终端104来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的数据监控方法也可以是由安装在其上的客户端来执行。

通过本申请实施例,用户在云控制台配置监控参数(即监控基本信息),可选地,该监控参数可以包括监控指标参数和告警触发条件,其中,监控指标参数可以包括命名空间、维度、指标、聚合维度、以及统计方式,该告警触发条件可以为告警配置,用户在配置完成监控基本信息之后,调用云服务器的应用程序编程接口API,按照固定格式上报配置的监控基本信息,云服务器接收用户配置的监控基本信息,并将该监控基本信息存储在配置库中。

用户可以通过数据上报接口(该接口也可以为API接口)上传监控数据,云服务器在接收到监控数据之后,按照监控指标信息将其存储在数据库中,也可以在基于该监控基本信息指示的统计方式对通过数据上报接口上报的监控数据进行统计分析后,将统计的结果存储在数据库中。

进一步地,云服务器可以将存储的数据展示在监控控制台上,对于用户来说,该监控控制台可以为云服务器网页。

在一个可选的实施例中,云服务器可以对统计结果进行异常分析,例如,检测该统计结果是否符合告警触发条件,并在符合告警触发条件的情况下,生成告警信息。

如图3所示,用户可以在终端30上登录账户,并在登录账户之后,在云服务器提供的网页上配置并上报监控参数(如监控项),代理服务器31将用户配置的监控项上报,HTTP服务器33将其他HTTP请求上报。接收上报数据集群34接收用户上报的监控项和监控数据,缓存上报数据集群35将接收上报数据集群34接收到的监控项和监控数据进行缓存,处理集群36基于缓存的数据进行统计,得到统计,一方面通过存储集群37存储该处理结果,展示集群38用于提供基于存储的处理结果对应的页面图表展示信息,并提供API接口,以供终端或其他集群拉取数据;另一方面,告警处理集群39基于处理结果判断是否满足告警触发条件,在满足告警触发条件的情况下,可以执行基础告警、自定义监控告警、自定义消息告警和自动设置伸缩策略的操作。其中,自动设置伸缩策略可以为Auto Scaling操作,也即,弹性的自动创建或删除虚拟机的操作,该策略可以是用户自定义或者基于系统健康状态检查结果、或者按照计划来实施的策略。

基于图2和图3提供的网络架构,本申请提供了一种数据监控方法,可选地,图4是根据本发明实施例的一种数据监控方法的流程图,如图4所示,该流程图包括如下步骤:

步骤S402:接收账户上报的监控数据;

步骤S404:获取账户配置的监控参数,其中,监控参数至少包括:监控指标信息和告警触发条件;

步骤S406:按照监控指标信息统计监控数据,得到统计结果;

步骤S408:检测统计结果是否符合告警触发条件;

步骤S410:若检测出统计结果符合告警触发条件,则生成告警信息。

通过上述实施例,用户可以在云服务平台上登录,在登录之后,使用登录的账号上报监控数据,服务器接收到账户上报的监控数据之后,获取该账户配置的监控参数,基于该监控参数中的监控指标信息对监控数据进行统计,得到统计结果,在得到统计结果之后,检测该统计结果是否符合告警触发条件,若检测出统计结果符合告警触发条件,则生成告警信息。在上述实施例中,通过账户配置的监控指标信息对监控数据进行统计,而不是采用固定的指标对数据进行分析,可以实现对于不同的账户进行不同指标的统计,从而可以针对不同的账户得到不同的统计结果;进一步地,利用账户配置的告警触发条件对统计结果进行检测,可以对不同账户使用不同的告警触发条件,而不是对所有的账户均使用相同的告警触发条件,可以实现有针对性的为用户提供监控服务,解决了现有技术中数据监控的指标固定的问题,实现了基于用户配置的指标进行数据监控,以对用户提供定制化监控服务的效果。

在步骤S402提供的技术方案中,用户可以在终端上进入云平台页面,可选地,用户可以在使用已验证的账号登录该云平台页面,在登录该云平台页面之后,可以通过云平台页面入自定义监控页面,该自定义监控页面中可以记录一个或多个应用程序编辑接口的信息,通过该信息可以调用相应的应用程序编辑接口,其中,该信息可以为按键,在对按键执行预定操作(如点击操作)之后,云服务器检测到该预定操作,触发调用相应接口的事件,通过调用相应接口可以上报需进行监控的监控数据。

可选地,账户可以直接将监控数据作为附件上传服务器,也可以在编写代码之后,在自定义监控页面的文档入口输入该编写的代码,将该代码上报,服务器或者终端运行该代码可以上报相应的监控数据。

需要说明的是,账户上报监控数据没有条件限制,如,账户可以随时随地上传监控数据。

在步骤S404提供的技术方案中,服务器获取账户配置的监控参数,该监控参数可以为账户在上报监控数据之后配置并上报的信息,也可以是账户在上报监控数据之前配置并上报至服务器的信息。在监控参数为账户预先配置并上报至服务器的情况下,该监控参数可以被存储在配置库中,服务器在接收到监控数据之后,可以从配置库中读取该账户配置的监控参数。

在一个可选的实施例中,监控参数至少可以包括:监控指标信息和告警触发条件,其中,该监控指标信息可以包括用于确定存储指标的容器的信息、分析指标和维度的信息、统计方式的信息等,用户可以通过配置该监控指标信息确定该账户的监控需求。

可选地,监控指标信息包括下述至少之一:监控维度、监控指标、聚合监控维度、统计周期以及统计算法。

进一步地,该监控参数还可以包括:告警触发条件,该告警触发条件可以记录触发告警的阈值、触发告警的异常状态等信息。服务器可以通过该告警触发条件监控数据是否发生异常,例如,在符合该告警触发条件时,确定出现异常,在不符合该告警触发条件时,确定数据未出现异常。

在步骤S406提供的技术方案中,按照监控指标信息统计监控数据,得到统计结果。可选地,按照账户配置的监控指标信息统计监控数据,而不是采用固定指标对监控数据进行统计,可以提供定制化监控服务。

在步骤S408和步骤S410提供的技术方案中,按照用户的需求对数据进行统计,对该统计结果进行监控。具体地,检测统计结果是否符合告警触发条件;若检测出统计结果符合告警触发条件,则生成告警信息;若检测出统计结果不符合告警触发条件,则生成用于指示数据正常的信息。

例如,若账户的需求是监控指定网页的浏览量,该告警触发条件被配置为超过预定浏览量,在监控到指定网页的浏览量超过预定浏览量的情况下,则可以生成告警信息;若监控到的指定网页的浏览量未超过预定浏览量的情况下,则生成用于指示数据正常的信息。

根据本发明的上述实施例,接收账户上报的监控数据可以包括:在检测出数据上报接口被调用的情况下,接收通过数据上报接口上报的监控数据。在上述实施例中,可以通过调用数据上报接口上报监控数据,而无需在用户终端或用户在云服务器上存储数据的机器上部署采集程序,用户可以自定义的上传数据。

在上述实施例中,服务器可以通过预处理集群将通过数据上报接口上报的数据发送至后端的处理集群中,可选地,该预处理集群在检测到调用数据上报接口的事件的情况下,确定接收到数据上报请求,预处理集群中的服务器进行限频操作,以限制预处理集群和处理集群处理的数据量。

可选地,预处理集群可以通过限制该集群中处理请求的总量和该集群处理该账户的请求总量来实现限频操作。

具体地,接收通过数据上报接口上报的监控数据可以包括:检测在第一预定时间段内数据上报接口被调用的次数是否超过第一次数(该集群中处理请求的总量);若检测出在第一预定时间段内数据上报接口被调用的次数未超过第一次数,则检测在第二预定时间段内账户调用数据上报接口的次数是否超过第二次数(集群处理该账户的请求总量);若检测出在第二预定时间段内账户调用数据上报接口的次数未超过第二次数,则接收通过数据上报接口上报的监控数据。

在一个可选的实施例中,在获取账户配置的监控参数之前,方法还可以包括:在检测出监控管理接口被调用的情况下,接收通过监控管理接口上报的监控参数,将接收到的监控指标信息记录在配置库中。

在上述实施例中,提供了监控管理接口,通过调用该监控管理接口口上报监控参数,既无需在用户终端或用户在云服务器上存储数据的机器上部署采集程序,又可以按照用户配置的监控参数对监控数据进行处理,实现了自定义监控数据的效果。

进一步可选地,获取账户配置的监控参数可以包括:从配置库中读取监控参数,或者,从缓存读取监控参数,其中,监控参数被定时同步至缓存中。

在上述实施例中,账户可以预先配置监控参数,服务器获取到上报的监控参数之后,将该监控参数存储在配置库中,在需获取账户配置的监控参数时可以直接从配置库中读取该数据,通过该种方式可以保证得到的监控参数可以为最新的数据。

可选地,账户可以预先配置监控参数,服务器获取到上报的监控参数之后,将该监控参数存储在配置库中,通过运行同步脚本,定时将配置的监控参数存储在预定位置,该预定位置可以为处理集群本地的缓存中,在需获取账户配置的监控参数时可以直接从缓存中读取该数据,通过该实施例,可以减少从配置库中读取信息的次数,并且可以提高每次获取监控参数的速度。通过上述实施例,使用同步脚本的缓存机制,解决了基础告警中API和storm频繁读取数据库造成的性能问题。

根据本申请的上述实施例,监控指标信息至少可以包括:统计周期、统计算法和监控指标,其中,按照监控指标信息统计监控数据,得到统计结果包括:从监控数据中符合监控指标的数据中,获取与当前的统计周期对应的指标数据;按照统计算法对指标数据进行统计,得到统计结果。

在该示例中,统计周期可以指计算数据的周期,若配置的统计周期为5分钟,则每隔五分钟,使用统计算法对监控数据进行一次计算。

上述的统计算法为用于统计监控数据中需统计的指标数据的算法,该统计算法可以包括:求和、求最大值、求最小值、以及求平均值等算法。

可选地,用户配置的监控指标信息可以包括:监控指标和展示指标,监控指标可以为需要监控的指标,如网页浏览量,展示指标为无法监控的指标,如,监控对象,该指标可以在展示时,作为展示信息的一部分返回给账户,以供其展示。

根据本申请的上述实施例,检测统计结果是否符合告警触发条件可以包括:获取统计结果中指标数据的告警触发条件;在指标数据对应多个告警触发条件的情况下,获取多个告警触发条件中的单对象告警条件;检测指标数据是否符合单对象告警条件。

可选地,指标数据中的一个指标对象可以被设置一个告警触发条件,也可以被设置多个告警触发条件。

告警触发条件可以为通配触发条件,通配触发条件可以对应多个指标对象,该通配触发条件对与该通配触发条件具有关联关系的所有指标对象生效;告警触发条件还可以为单对象告警条件,单对象告警条件对一个指标对象生效。

若同一个指标对象上被配置了多个告警触发条件,则该多个告警触发条件中的单对象告警条件覆盖通配触发条件,也即,配置到该指标对象上的通配触发条件失效。

进一步可选地,若一个指标对象上被配置多个告警触发条件,可以设置该多个告警触发条件的优先级,按照告警触发条件的优先级触发告警事件。

通过上述实施例,一个指标对象可以绑定多条告警触发条件,提高了监控的灵活性。

在一个可选的实施例中,在生成告警信息之后,方法还包括:获取预先配置的告警接收组;将告警信息发送至告警接收组。

可选地,预先配置每个指标对象或者每个告警触发条件的告警接收组,在检测出符合告警触发条件的情况下,获取对应的告警接收组,将告警信息发送至该告警接收组。

进一步可选地,对于一个告警对象或告警触发条件设置多个告警接收组,在检测出符合告警触发条件的情况下,获取对应的告警接收组,将告警信息发送至多个告警接收组。

通过上述实施例,一个指标对象可以设置多个不同的告警接收组,提高了监控的灵活性。

根据本发明的上述实施例,在得到统计结果之后,方法还可以包括:在接收到展示指令的情况下,获取展示指令所指示的展示方式和展示维度;按照展示方式和展示维度,确定统计结果的展示信息;将展示信息发送至账户。

可选地,该展示方式可以包括按照图表的方式展示、按照曲线的方式展示等,展示维度可以包括一个或多个指标的维度、按照聚合维度展示、按照不同的时间区间展示等。

通过上述实施例,多种业务场景非常多且个性化,业务运行过程中哪里出了问题,用户都可以及时发现。具体地,上述实施例中,将流程简化成用户上报数据,云服务器监控负责收集数据、配置管理、计算存储数据、视图展示和告警管理。进一步地,为了用户上报的数据,后端可以识别和方便管理,定义了数据的组织结构,指标是上报数据最小组织结构变量,多个指标可以放到一个命名空间下进行分类管理,从而简化了基础告警中的策略组的概念,直接用告警规则代替,更加灵活;使用同步脚本的缓存机制,解决了基础告警中API和storm频繁读取数据库造成的性能问题;将数据上报的指标结构交给用户自行决定,满足了用户个性化监控的需求。

下面结合图5和图6对本申请一个可选实施例的系统架构做详细描述。

如图5所示,用户(即账户)可以在前端页面中配置自定义监控项,账户在进行指标基本配置时,可以配置的监控项(即上述的监控参数)包括:命名空间、维度、指标(包括:中英文名称、单位)、统计方式(包括统计方法和统计周期)、告警触发条件、以及告警接收组。用户可以在终端的页面中指定配置项,在配置完成之后,调用云服务器的应用程序编辑接口API上报配置的监控参数,云服务器接收到该配置的监控项之后,可以根据用户指定的配置准确无误的计算存储的数据。

可选地,自定义监控操作可以包括在云监控控制台上配置监控项的操作,可选地,该自定义监控操作还可以包括用户编写代码上报监控数据的操作。可选地,在用户编写代码之后,可以在云服务器的文档中心入口,以数据上报样例上传编写的代码,通过运行该代码可以上报监控数据。

在一个可选的实施例中,用户上报的监控数据能够可视化,以方便用户实时监控业务质量,排查异常问题。可选地,云服务器可以支持用户在控制台方便的查看指标数据,例如,服务平台支持单指标多对象查看和单对象多指标查看,还支持选择任意时间区间对比查看数据。

如图6所示,用户可以进入监控对象的信息展示页,在该页面中,用户可以选择监控对象的区域和维度,在该图6中示出的示例中,选中的是原始维度,在选中原始维度之后可以展示该维度中符合选中的区域的监控对象的信息,可选地,可以显示该监控对象(如aa=2&ss=c),监控图表信息和统计周期,进一步地,在选择查看监控对象aa=2&ss=c在不同时间区间内的信息之后,可以将该监控对象aa=2&ss=c的信息展示在一个弹出的信息框中,该信息款中显示有监控对象的名称,以及可选择查看的时间区间(如近1小时、今天、昨天、近7天、近14天)的信息。

可选地,配置的告警策略(即上述的告警触发条件)支持指标级别通配规则(如单对象告警条件),也即可以配置对关联该指标的所有对象全部生效的告警策略(如通配触发条件)。可选地,还可以配置支持针对单对象级别的告警规则配置,若监控对象上配置了单对象告警规则,则配置在该监控对象上的通配规则被覆盖,也即,单对象告警规则的优先级高于通配规则。

下面结合图7至图9对本申请的一个可选实施例进行详细描述。

如图7所示的系统架构包括:云监控前台、用户子机、云应用程序编程接口、配置库、数据库、预处理集群Custom-Nws、分布式消息队列处理集群Kafka、数据处理集群Custom-Barad-storm、告警管理中心、以及告警发送模块。

在上述的系统架构中,用户通过该账户的子机(可选地,该子机为云服务器预先为该账户分配的存储数据的机器)上的数据上报接口上报监控数据,其中,数据上报集群可以部署在各个地域,以满足各地域子机的上报需求,可选地,数据处理集群custom-barad-storm系统可以搭建在各个地域,以独立处理每个地域的上报数据,避免发生相互冲突,barad的配置也分地域部署。

图7中所示的云监控前台,可以为用户提供可视化的配置界面,用户通过该界面可以配置上报的指标信息、告警策略信息、告警接收组等。

进一步地,云监控前端还可以为用户提供其上报的自定义监控数据的统计结果展示页,不同粒度的统计曲线(如5分钟粒度的统计曲线),以及告警信息的展示。

云应用程序编程接口可以包括数据接口和管理接口,其中,数据接口包括上报数据接口和拉取数据接口。管理接口包括:提供对外的限额metric配置接口、告警alarm管理接口、命名空间namespace的管理接口。

如图8所示,预处理集群custom-nws,在接收到用户上报的自定义监控数据之后,可以对该监控数据进行合法性校验、鉴权、Dimensions强一致性验证、根据appId差异化限频之后,根据appId作为路由映射到对应的TOPO(分流),并多路转发到多个TOPO,以将接收到的监控数据发送到Kafka集群,可选地,该预处理集群还可以按appId维度统计数据接收详情。

在一个可选的实施例中,预处理集群通过预先配置的路由分配参数,实现路由选择,例如,预先配置的分布式存储系统CKV的路由分配参数如下:

“nws_router”:[{“rmin”:1251000000,“rmax”:1251900000,“topo”:“Barad_Comm”},

{“rmin”:1251900001,“rmax”:9999999999,“topo”:“Barad_Device”}]

可选地,在接收到监控数据之后,遍历所有的路由配置参数,当应用程序标识appId处于范围[rmin,rmax]之间时,将数据发送到对应的分流器topo。

例如,配置的参数如下:

[{“rmin”:1251001002,“rmax”:1251001002,“topo”:“Barad_Device”},

{“rmin”:1251000000,“rmax”:9999999999,“topo”:“Barad_Comm”}],对于该配置,若appid=1251001002,则该appid对应的监控数据会同时发送到设备Barad_Device和设备Barad_Comm。

进一步地,在确定配置参数之后,可以定时同步配置信息,例如,每分钟定时同步配置,例如,距离上次同步时间超过1分钟时再次进行CKV的配置同步。

在一个可选的实施例中,可以通过预先配置的CKV参数实现NWS的限频、时间戳验证和染色。

可选地,每台NWS服务在本地内存维护一个总的请求数计数(即上述的第一次数),默认每分钟上限为100W,当超过上限时拒绝所有服务;另一种可选的,每台NWS服务在本地内存维护每个账户secretId的请求数计数(即上述的第二次数),默认每分钟上限为10000,当超过上限时拒绝该secretId的服务。

例如,可以预先配置的参数为:“nws#1251001002”:{“request”:1000,“metric”:10000,“tsdown”:1800,“tsup”:600,“colour”:1234567890}。

具体地,以appId为键,取得ckv配置中的请求request和阈值metric字段,若无配置参数,则取预处理集群的配置文件nws.conf中的默认值;判断当前请求数、指标数是否超过发送频率上限,如果没有超过上限,则转发,并更新CKV计数;如果超过上限,则拒绝该请求。

另一种可选地,还可以采用全局限频的方法实现限频,以准确地控制一个app的上报的频率,具体地,CKV维护当前时刻的请求数和上报指标数据计数:

“1251001002#request”:99,

“1251001002#metric”:999。

需要说明的是,通过鉴权的请求才进行全局限频,为了提高吞吐量,计数用的CKV可以水平添加(配置存于zookeeper),NWS通过appId映射到不同CKV。其中,zookeeper是分布式的、开放源码的分布式应用程序协调服务。

可选地,通过如下方式进行鉴权处理:对公共参数按key做字典升序排序,并拼接请求字符串,例如,将公共参数进行格式处理,以将其格式化成k=v,用"&"连接,得到下述的请求字符串:

Action=PutMonitorData&Nonce=345122&Region=gz&SecretId=xxxxxxx&Timestamp=1408704141。

使用HMAC-SHA1算法对获得的请求字符串进行签名,将生成的签名串使用Base64进行编码,获得最终的签名串,通过云安全鉴权接口验证签名,验证成功时获得用户的appId;验证失败时,直接丢弃数据,不作appId维度的数据统计。

其中,在配置监控参数时可以一并输入公共参数。可选地,监控数据中携带有应用程序标识appId(也可以为账户标识)。

可选地,在接收到请求之后对其进行时间戳验证,具体地,以appId为键,取得ckv配置中的tsdown和tsup字段(单位s),若无配置参数,则取配置文件nws.conf中的默认值;设当前时间戳为now,若数据中的timestamp不在[now-tsdown,now+tsup]范围内则丢弃。

另一种可选地,以appId为键,取得ckv配置中的colour字段(时间戳),若无配置则取默认值0;若当前时间小于colour的值,则生成seqId添加到当前数据中。

根据本申请的上述实施例,命名空间相关配置可以提前配置完成并同步到storm(一种实时计算服务);时间粒度支持1分钟、5分钟计算;存储统一用hbase(如果未来拉取性能不足,可以考虑CKV或者redis集群来保存2天数据来提高实时数据拉取性能,hbase应该提供C1设备,增加设备数量,减少单机保存数据量);告警支持名字空间整体阀值配置(低优先级)和具体对象指标阀值配置(高优先级);对某个appid的数据进行染色操作,参考barad实现方式,nws增加sequence可选项,storm发现有就记入日志。

如图9所示,barad框架包括:数据读取模块kafkarawSpout、配置信息读取模块policysyncspout、接收模块statbolt、存储模块hbasebolt以及告警模块alarmbolt,可选地,该框架中各个模块均使用数据流进行数据处理。

其中,kafkarawSpout用于从kafka读取用户数据,可选地,在该模块中增加启动参数来支持一个storm集群读取多个kafka集群的功能,可选地,在读取数据时,可以对时间戳进行过滤,因为用户可能计算历史数据。

policysyncspout用于定时从配置库读取告警策略配置(可选地,可以同步需要处理的appid策略),路由到指定的alarmbolt(与数据流一致,按照namespace进行分发)。

statbolt用于接收kafkarawSpout的数据,根据命名空间namespace进行哈希hash,建立统计节点进行计算,超过期限就会把统计结果发送给存储和告警bolt,这里对名字空间下面的监控对象个数、时间戳个数都要进行控制,防止异常数据导致内存不足,内存数据存储结构:amespace->object->metric->logTime->data。

hbasebolt用于接收统计结果进行存储,row格式:md5值+dimGroupId+period+stattype;按照appid分旬表(一个月分为2张表,1~15/16~last),同时每个Appid一张对象表和一张实时表,实时表记录对象所有指标的最新值和时间戳,对象表rowkey格式:namespace+md5;同时支持一份数据入多个hbase存储,提高数据可靠性。

Alarmbolt用于接收统计结果进行异常判断,将异常信息通知给告警管理中心,具体流程与barad一致。

logbolt即日志bolt(即日志模块),用于接收各个组件上报的运行信息,粒度细化到指标。

图7所示的告警管理中心,可对某个具体的指标(dimGroupId)配置通用告警策略(无需绑定对象),可以在告警策略维度配置推送告警到告警发送模块的间隔(不推送、只推送一次、间隔一定时间推送);在告警策略维度配置回调URL(持续告警,推送间隔可配,URL参数支持模板)。

进一步需要说明的是,可以预先配置同步脚本,该脚本从CDB中读取自定义监控各组件所需要的配置,并定时同步到ckv中,由于很多配置需要被频繁拉取,如果直接读取CDB(mysql)将会出现性能上的瓶颈。所以这里采用类似memcache原理的缓存机制,消除性能瓶颈。

通过上述实施例,简化了基础告警中的策略组的概念,直接用告警规则代替,更加灵活,一个对象可以绑定多条告警规则,并可以设置多个不同的接收组;使用同步脚本的缓存机制,解决了基础告警中API和storm频繁读取数据库造成的性能问题;将数据上报的指标结构交给用户自行决定,满足了用户个性化监控的需求。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。

根据本发明实施例,还提供了一种用于实施上述数据监控方法的数据监控装置。图10是根据本发明实施例的一种可选的数据监控装置的示意图,如图10所示,该装置可以包括:

第一接收单元1001,用于接收账户上报的监控数据;

第一获取单元1003,用于获取账户配置的监控参数,其中,监控参数至少包括:监控指标信息和告警触发条件;

第一统计单元1005,用于按照监控指标信息统计监控数据,得到统计结果;

第一检测单元1007,用于检测统计结果是否符合告警触发条件;

生成单元1009,用于在检测出统计结果符合告警触发条件时,生成告警信息。

根据上述实施例,第一接收单元可以包括:第二接收单元,用于当检测出数据上报接口被调用的情况下,接收通过数据上报接口上报的监控数据。

具体地,第二接收单元可以包括:第一检测子单元,用于检测在第一预定时间段内数据上报接口被调用的次数是否超过第一次数;第二检测子单元,用于当检测出在第一预定时间段内数据上报接口被调用的次数未超过第一次数时,检测在第二预定时间段内账户调用数据上报接口的次数是否超过第二次数;第三检测子单元,用于当检测出在第二预定时间段内账户调用数据上报接口的次数未超过第二次数时,接收通过数据上报接口上报的监控数据。

可选地,第一接收单元还用于在获取账户配置的监控参数之前,在检测出监控管理接口被调用的情况下,接收通过监控管理接口上报的监控参数,将接收到的监控指标信息记录在配置库中。第一获取单元还包括:第一读取模块,用于从配置库中读取监控参数,或者,第二读取模块,用于从缓存读取监控参数,其中,监控参数被定时同步至缓存中。

可选地,监控指标信息至少包括:统计周期、统计算法和监控指标,其中,第一统计单元还包括:第二获取单元,用于从监控数据中符合监控指标的数据中,获取与当前的统计周期对应的指标数据;第二统计单元,用于按照统计算法对指标数据进行统计,得到统计结果。

进一步地,第一检测单元还包括:第三获取单元,用于获取统计结果中指标数据的告警触发条件;第四获取单元,用于在指标数据对应多个告警触发条件的情况下,获取多个告警触发条件中的单对象告警条件;第二检测单元,用于检测指标数据是否符合单对象告警条件。

在一个可选的实施例中,装置还包括:第一获取模块,用于在得到统计结果之后,在接收到展示指令的情况下,获取展示指令所指示的展示方式和展示维度;确定模块,用于按照展示方式和展示维度,确定统计结果的展示信息;第一发送模块,用于将展示信息发送至账户。

在另一个可选的实施例中,装置还包括:第一获取模块,用于在生成告警信息之后,获取预先配置的告警接收组;第一发送模块,用于将告警信息发送至告警接收组。

可选地,监控指标信息包括下述至少之一:监控维度、监控指标、聚合监控维度、统计周期以及统计算法。

此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图2所示的硬件环境中,可以通过软件实现,也可以通过硬件实现。

根据本发明实施例,还提供了一种用于实施上述数据监控方法的服务器或终端。

图11是根据本发明实施例的一种终端的结构框图,如图11所示,该终端可以包括:一个或多个(图中仅示出一个)处理器201、存储器203、以及传输装置205(如上述实施例中的发送装置),如图11所示,该终端还可以包括输入输出设备207。

其中,存储器203可用于存储软件程序以及模块,如本发明实施例中的数据监控方法和装置对应的程序指令/模块,处理器201通过运行存储在存储器203内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据监控方法。存储器203可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器203可进一步包括相对于处理器201远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置205用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置205包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置205为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

其中,具体地,存储器203用于存储应用程序。

处理器201可以通过传输装置205调用存储器203存储的应用程序,以执行下述步骤:接收账户上报的监控数据;获取账户配置的监控参数,其中,监控参数至少包括:监控指标信息和告警触发条件;按照监控指标信息统计监控数据,得到统计结果;检测统计结果是否符合告警触发条件;若检测出统计结果符合告警触发条件,则生成告警信息。

处理器201还用于执行下述步骤:在检测出数据上报接口被调用的情况下,接收通过数据上报接口上报的监控数据,以接收账户上报的监控数据。

处理器201还用于执行下述步骤:检测在第一预定时间段内数据上报接口被调用的次数是否超过第一次数;若检测出在第一预定时间段内数据上报接口被调用的次数未超过第一次数,则检测在第二预定时间段内账户调用数据上报接口的次数是否超过第二次数;若检测出在第二预定时间段内账户调用数据上报接口的次数未超过第二次数,则接收通过数据上报接口上报的监控数据,以接收通过数据上报接口上报的监控数据。

处理器201还用于执行下述步骤:在获取账户配置的监控参数之前,在检测出监控管理接口被调用的情况下,接收通过监控管理接口上报的监控参数,将接收到的监控指标信息记录在配置库中。

处理器201还用于执行下述步骤:从配置库中读取监控参数,或者,从缓存读取监控参数,其中,监控参数被定时同步至缓存中,以获取账户配置的监控参数。

可选地,监控指标信息至少包括:统计周期、统计算法和监控指标,其中,处理器201还用于执行下述步骤:从监控数据中符合监控指标的数据中,获取与当前的统计周期对应的指标数据;按照统计算法对指标数据进行统计,得到统计结果,以按照监控指标信息统计监控数据,得到统计结果。

处理器201还用于执行下述步骤:获取统计结果中指标数据的告警触发条件;在指标数据对应多个告警触发条件的情况下,获取多个告警触发条件中的单对象告警条件;检测指标数据是否符合单对象告警条件,以检测统计结果是否符合告警触发条件。

处理器201还用于执行下述步骤:在得到统计结果之后,在接收到展示指令的情况下,获取展示指令所指示的展示方式和展示维度;按照展示方式和展示维度,确定统计结果的展示信息;将展示信息发送至账户。

处理器201还用于执行下述步骤:在生成告警信息之后,获取预先配置的告警接收组;将告警信息发送至告警接收组。

可选地,监控指标信息包括下述至少之一:监控维度、监控指标、聚合监控维度、统计周期以及统计算法。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

本领域普通技术人员可以理解,图11所示的结构仅为示意,终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图11其并不对上述电子装置的结构造成限定。例如,终端还可包括比图11中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图11所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行数据监控方法的程序代码。

可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

接收账户上报的监控数据;获取账户配置的监控参数,其中,监控参数至少包括:监控指标信息和告警触发条件;按照监控指标信息统计监控数据,得到统计结果;检测统计结果是否符合告警触发条件;若检测出统计结果符合告警触发条件,则生成告警信息。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在检测出数据上报接口被调用的情况下,接收通过数据上报接口上报的监控数据,以接收账户上报的监控数据。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:检测在第一预定时间段内数据上报接口被调用的次数是否超过第一次数;若检测出在第一预定时间段内数据上报接口被调用的次数未超过第一次数,则检测在第二预定时间段内账户调用数据上报接口的次数是否超过第二次数;若检测出在第二预定时间段内账户调用数据上报接口的次数未超过第二次数,则接收通过数据上报接口上报的监控数据,以接收通过数据上报接口上报的监控数据。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在获取账户配置的监控参数之前,在检测出监控管理接口被调用的情况下,接收通过监控管理接口上报的监控参数,将接收到的监控指标信息记录在配置库中。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:从配置库中读取监控参数,或者,从缓存读取监控参数,其中,监控参数被定时同步至缓存中,以获取账户配置的监控参数。

可选地,监控指标信息至少包括:统计周期、统计算法和监控指标,其中,可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:从监控数据中符合监控指标的数据中,获取与当前的统计周期对应的指标数据;按照统计算法对指标数据进行统计,得到统计结果,以按照监控指标信息统计监控数据,得到统计结果。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:获取统计结果中指标数据的告警触发条件;在指标数据对应多个告警触发条件的情况下,获取多个告警触发条件中的单对象告警条件;检测指标数据是否符合单对象告警条件,以检测统计结果是否符合告警触发条件。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在得到统计结果之后,在接收到展示指令的情况下,获取展示指令所指示的展示方式和展示维度;按照展示方式和展示维度,确定统计结果的展示信息;将展示信息发送至账户。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:在生成告警信息之后,获取预先配置的告警接收组;将告警信息发送至告警接收组。

可选地,监控指标信息包括下述至少之一:监控维度、监控指标、聚合监控维度、统计周期以及统计算法。

可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。

可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1