一种监控报警方法与装置与流程

文档序号:13287461阅读:206来源:国知局
一种监控报警方法与装置与流程

本发明涉及互联网技术领域,尤其涉及一种监控报警方法与装置。



背景技术:

通常,消息消费方会从kafka集群中获取某一类型信息进行统计,例如,在网络直播领域,消息消费方从kafka集群中获取观众用户赠送礼物的行为信息,对这些行为信息进行统计分析可得到各个观众用户礼物贡献排行榜数据。

虽然消息生产方将实时产生的消息发送至kafka集群中进行存储,消息消费方以离线的方式从kafka集群中获取该消息进行处理,但是某些特殊的统计数据要求在一定的延时范围内进行数据的更新,若在某段时间内出现消息生产方的消息生产量暴增或消息消费方的设备出现故障等情况,必然会导致这些统计数据无法及时更新。



技术实现要素:

本发明提供一种监控报警方法与装置,以实现消息消费情况的自动监控,提高消息堵塞报警的及时性。

为了解决上述技术问题,本发明提供了一种监控报警方法,该方法包括:

获取消息消费方消费指定消息主题的一分区内消息的消费偏移量;

根据所述消费偏移量及所述分区内的消息总量,判定所述指定消息主题的消息是否存在堆积;

若存在堆积,则根据所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题标识的组合,确定是否向目标对象发送报警信息。

可选地,所述获取消息消费方消费指定消息主题的一分区内消息的消费偏移量,包括:

向实时记录多个消息消费方的消息消费信息的服务提供方发送获取消息消费信息的请求信息,所述获取请求中携带有所述消息消费方标识、所述消费主题标识及所述分区标识;

从接收到的消息消费信息中,获取所述消费偏移量。

可选地,所述根据所述消费偏移量及所述分区内的消息总量,判定所述指定消息主题的消息是否存在堆积,包括:

计算所述消息总量与所述偏移量的差值;

根据所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识的组合,获取相应的阈值;

若所述差值大于所述阈值,则判定所述消息主题的消息存在堆积。

可选地,所述根据所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识的组合,获取相应的阈值,包括:

从自定义报警规则中,查找是否存在与所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题组合标识有关的报警规则项;

若有,则从所述报警规则项中获取所述阈值;

若无,则从全局报警规则中获取所述阈值。

可选地,若存在堆积,则根据所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题标识的组合,确定是否向目标对象发送报警信息,包括:

若存在堆积且所述自定义报警规则中存在与所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合有关的报警规则项,则从所述报警规则项中获取所述目标对象,并向所述目标对象发送报警信息。

可选地,若存在堆积,则根据所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题标识的组合,确定是否向目标对象发送报警信息,还包括:

若存在堆积且所述自定义报警规则中不存在与所述消息消费方的标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合有关的报警规则项,则查找白名单中是否存在所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合;

若存在,则不向目标对象发送报警信息;

若不存在,则从所述全局报警规则中获取所述目标对象,并向所述目标对象发送报警信息。

为了解决上述技术问题,本发明还提供了一种监控报警装置,该装置包括:

获取模块,用于获取消息消费方消费指定消息主题的一分区内消息的消费偏移量;

判定模块,用于根据所述消费偏移量及所述分区内的消息总量,判定所述指定消息主题的消息是否存在堆积;

确定模块,用于若存在堆积,则根据所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题标识的组合,确定是否向目标对象发送报警信息。

本发明实施例提供的技术方案中,根据消息消费方消费某一消息主题的某一分区内消息的消费偏移量以及该分区内消息的总量可确定出该消息消费方在消费该消息主题内消息时是否出现堵塞情况,若出现堵塞则判断该消费方消费该消息主题的这种情况需不需要向负责人发送报警信息;实现了消息消费情况的自动监控功能,无需人员值守也可有针对性的发出报警信息,提高了报警的及时性。

附图说明

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

图1为本发明一实施例提供的监控报警方法的流程示意图;

图2为本发明实施例提供的kafka集群中的一消息主题下的各个分区的结构示意图;

图3为本发明又一实施例提供的监控报警方法的流程示意图;

图4为本发明一实施例提供的监控报警装置的结构示意图。

具体实施方式

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

在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种,但是不排除包含至少一种的情况。

应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述xxx,但这些xxx不应限于这些术语。这些术语仅用来将xxx彼此区分开。例如,在不脱离本发明实施例范围的情况下,第一xxx也可以被称为第二xxx,类似地,第二xxx也可以被称为第一xxx。

取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于监测”。类似地,取决于语境,短语“如果确定”或“如果监测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当监测(陈述的条件或事件)时”或“响应于监测(陈述的条件或事件)”。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者系统中还存在另外的相同要素。

图1为本发明一实施例提供的监控报警方法的流程示意图。如图1所示,该方法包括:

101、获取消息消费方消费指定消息主题的一分区内消息的消费偏移量。

102、根据所述消费偏移量及所述分区内的消息总量,判定所述指定消息主题的消息是否存在堆积。

103、若存在堆积,则根据所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题的组合,确定是否向目标对象发送报警信息。

在实际应用中,kafka集群中的消息是通过消息主题(topic)进行分类存储的。一个消息主题中的消息数据按照多个分区(partition)组织的,分区是kafka消息队列组织的最小单位,一个分区可以看做是一个fifo(firstinputfirstoutput,先入先出队列)队列。例如,消息主题标识为弹幕的消息主题下的各个分区内的每条消息就是一条弹幕信息,其中,所述弹幕信息包括用户id、主播id、弹幕内容以及时间戳;消息主题标识为礼物的消息主题下的各个分区内的每条消息就是一条送礼信息,其中,所述送礼信息包括用户id、主播id、送礼内容以及时间戳,所述送礼内容包括礼物名称、礼物数量以及单价。

每个分区内的各个消息都会对应存储一个索引值,该索引值标明了各个消息在各个分区内所处位置,例如,进入所述分区的第一条消息的索引值为0,第二条消息的索引值为1、第三条消息的索引值为2,依次类推。附图2展示了kafka集群中的一个消息主题下的各个分区结构。

当消息消费方从kafka集群中消费某一消息主题下的某一分区内消息时,会在服务端(例如,zookeeper)中相应记录下所述消息消费方的消息消费信息,其中,所述消息消费信息包括消息消费方标识、消息主题标识、分区标识以及消费偏移量。

在一种可实现的方案中,消息消费者从kafka集群中某一消息主题下的某一分区内每获取一条待处理消息,zookeeper中对应于所述消息消费方标识、所述消息主题标识以及所述分区标识的消费偏移量增1。

在上述步骤101中,获取消息消费方消费指定消息主题的一分区内消息的消费偏移量的步骤可通过以下方式中的一种或多种实现:

方法一、直接从所述服务端获取所述消息消费方消费所述消息主题的所述分区内消息的消费偏移量。

具体实现方式如下:向实时记录多个消息消费方的消息消费信息的服务提供方发送获取消费偏移量的请求信息,其中,所述请求信息中携带有所述消息消费方标识、所述消息主题标识以及所述分区标识;接收所述服务提供方返回的消费偏移量。

方法二、先从所述服务端先获取所述消息消费方法消费所述消息主题的所述分区内消息的消息消费信息,再从获取到的所述消息消费消息中提取所述消息消费方消费所述消息主题的所述分区内消息的消费偏移量。

具体实现方式如下:向实时记录多个消息消费方的消息消费信息的服务提供方发送获取消息消费信息的请求信息,所述获取请求中携带有所述消息消费方标识、所述消费主题标识及所述分区标识;;从接收到的所述消息消费方的消息消费信息中,获取所述消费偏移量。

上述步骤102中,根据所述消费偏移量及所述分区内的消息总量,判定所述指定消息主题的消息是否存在堆积,也即是判断所述消息消费方在消费所述指定消息主题的消息时是否发生堵塞情况。判定所述制定消息主题的消息是否存在堆积,可采用以下方法中的一种方法来判定:

方法一、计算所述消息总量与所述偏移量之间的差值;若所述差值大于阈值,则判定所述消息主题的消息存在堆积;若所述差值小于或等于所述阈值,则判定所述消息主题的消息不存在堆积。

方法二、计算所述消息总量与所述偏移量之间的差值,将所述差值与所述总量的比值与所述阈值进行比较;若所述比值大于所述阈值,则判定所述消息主题的消息存在堆积;若所述比值小于或等于所述阈值,则判定所述消息主题的消息不存在堆积。

在实际应用中,并非任一消息消费方在消费任一消息主题的消息时出现堵塞时,都需要后台负责人进行及时处理。例如,某一消息消费方统计的统计数据只是为了在未来进行某些决策时予以参考,也就是说,这类统计数据对延时性要求不高,那么,在这种情况下就无需向后台负责人发送报警信息进行相应处理。因此,在实际应用中,可事先设置一个无需报警的白名单,例如:白名单中记录有消息主题标识a,则表明任一消息消费方在消费所述消息主题a内的消息时出现堵塞情况,都无需进行报警;白名单中记录有消息消费方标识b,则表明所述消息消费方b在消费任一消息主题内的消息时出现堵塞情况,都无需进行报警;白名单中记录有消息主题标识c和消息消费方标识d的组合,则表明所述消息消费方d消费消息主题c内的消息时出现堵塞情况,无需进行报警。

在上述步骤103中,若上述步骤102中判定出所述消息主题的消息存在堆积的情况,则需要先判断这种情况是否需要进行报警,判断过程如下:

从所述白名单中查找是否存在所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题标识的组合,若存在,则不向目标对象发送报警信息,若不存在,则向目标对象发送报警信息。其中,所述目标对象可以为一个或若干个后台负责人员。所述报警信息可以短信或微信方式发送。

本发明实施例提供的技术方案中,根据消息消费方消费某一消息主题的某一分区内消息的消费偏移量以及该分区内消息的总量可确定出该消息消费方在消费该消息主题内消息时是否出现堵塞情况,若出现堵塞则判断该消费方消费该消息主题的这种情况需不需要向负责人发送报警信息;实现了消息消费情况的自动监控功能,无需人员值守也可有针对性的发出报警信息,提高了报警的及时性。

图3为本发明又一实施例提供的监控报警方法的流程示意图。如图3所示,该方法包括:

201、获取消息消费方消费指定消息主题的一分区内消息的消费偏移量。

202、计算所述消息总量与所述偏移量的差值。

203、根据所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识的组合,获取相应的阈值。

204、若所述差值大于所述阈值,则判定所述消息主题的消息存在堆积。

205、若存在堆积,则根据所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题标识的组合,确定是否向目标对象发送报警信息。

上述步骤201可参考上述实施例中相应内容,在此不再赘述。

上述步骤202中,所述差值为所述分区内所述消息消费方未消费的消息量。

需要说明的是,消息生成方会将实时产生的消息存入到kafka中,因此,kafka中所述指定消息主题的所述分区内的消息的总量是动态变化的。

上述步骤203中,可事先按照不同的消息消费方和/或所述指定消息主题对应的统计数据的轻重缓急设置不同的阈值。例如,送礼信息的统计数据(例如:礼物贡献排行榜)是需要实时展现在直播间页面上的,也即是要求在一个较小的延时范围内更新,则可对应于主题标识为礼物的消息主题设置一较小阈值。又例如,消息消费方a统计的所有统计数据都需要实时使用的,则可针对所述消息消费方a设置一较小阈值。当然,还可以针对某一特定消息消费方消费某一特定消息主题内消息的这种情况,设置一个阈值。

这样一来,后续就可根据所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识的组合,来获取相应的阈值。实现了差异化报警服务,同时也提高报警效率,避免了统一设置阈值导致的不必要报警信息的频繁发出的情况。

在一种可实现的方案中,可为后台负责人提供一自定义报警规则的配置界面;后台负责人可通过所述配置界面,针对有特殊要求的消息消费方和/或消息主题设置相应的报警规则项。例如:报警规则项1包括:消息消费方标识c、阈值t1,表明消息消费方c消费任何消息主题时,采用阈值t1来判断是否有堵塞情况;报警规则项2包括:消息消费方b及消息主题b的组合,阈值t2,表明消息消费方b在消费消息主题b时,采用阈值t2来判断是否有堵塞情况。此外,对于那些没有特殊要求的消息消费方和/或消息主题可统一设置一全局报警规则,该全局报警规则对应于一统一阈值。

那么,根据所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识的组合,获取相应的阈值步骤,具体可采用如下方法实现:从自定义报警规则中,查找是否存在与所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合有关的报警规则项;若有,则从所述报警规则项中获取所述阈值;若无,则从全局报警规则中获取所述阈值。

在上述步骤204中,获取到相应的阈值之后,将所述差值与所述阈值进行比较,若所述差值大于所述阈值,则判定所述消息主题的消息存在堆积;若所述差值小于或等于所述阈值,则判定所述消息主题的消息存在堆积。

上述步骤205可参考上述实施例中相应的内容予以实施。当然,也可采用下述方法实现:

由于在实际应用中,整个统计系统会对应设置几个全局负责人,每个消息消费方或每个消息主题也都会对应设置几个专项负责人。因此,不同的情况,报警的目标对象是会有所差异的。因此,也可参照上述设置不同的阈值的方法,来设置不同的目标对象。

在一种可实现的方案中,可为后台负责人提供一自定义报警规则的配置界面;后台负责人可通过所述配置界面,针对有特殊要求的消息消费方和/或消息主题设置相应的报警规则项。例如:报警规则项3包括:消息消费方标识c、目标对象为负责人u1,表明消息消费方c消费任何消息主题时发生堵塞时,向负责人u1发送报警信息;报警规则项4包括:消息消费方b及消息主题b的组合,目标对象为负责人u2,表明消息消费方b在消费消息主题b时发生堵塞时,向负责人u2发送报警信息。此外,对于那些没有特殊要求的消息消费方和/或消息主题可统一设置一全局报警规则,该全局报警规则对应于一统一负责人。

需要说明的是,可以在一个自定义报警规则项中同时设置阈值和目标对象。例如:报警规则项5包括:消息消费方标识c、阈值t1、目标对象为负责人u1。

这样,上述步骤205可采用如下方式实现:若存在堆积且所述自定义报警规则中存在与所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合有关的报警规则项,则从所述报警规则项中获取所述目标对象,并向所述目标对象发送报警信息。若存在堆积且所述自定义报警规则中不存在与所述消息消费方的标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合有关的报警规则项,则查找白名单中是否存在所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合;若存在,则不向目标对象发送报警信息;若不存在,则从所述全局报警规则中获取所述目标对象,并向所述目标对象发送报警信息。

本发明实施例提供的技术方案中,根据消息消费方消费某一消息主题的某一分区内消息的消费偏移量以及该分区内消息的总量可确定出该消息消费方在消费该消息主题内消息时是否出现堵塞情况,若出现堵塞则判断该消费方消费该消息主题的这种情况需不需要向负责人发送报警信息;实现了消息消费情况的自动监控功能,无需人员值守也可有针对性的发出报警信息,提高了报警的及时性。

图4为本发明一实施例提供的监控报警装置的结构示意图。如图4所示,所述装置包括:获取模块301、判定模块302以及确定模块303。

获取模块301,用于获取消息消费方消费指定消息主题的一分区内消息的消费偏移量。

判定模块302,用于根据所述消费偏移量及所述分区内的消息总量,判定所述指定消息主题的消息是否存在堆积。

确定模块303,用于若存在堆积,则根据所述消息消费方标识、所述指定消息主题标识或所述消息消费方标识及所述指定消息主题标识的组合,确定是否向目标对象发送报警信息。

可选地,所述获取模块301,包括:

发送单元,用于向实时记录多个消息消费方的消息消费信息的服务提供方发送获取消息消费信息的请求信息,所述获取请求中携带有所述消息消费方标识、所述消费主题标识及所述分区标识;。

第一获取单元,用于从接收到的消息消费信息中,获取所述消费偏移量。

可选地,所述判定模块302包括计算单元,第二获取单元及判定单元。

计算单元,用于计算所述消息总量与所述偏移量的差值。

第二获取单元,用于根据所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识的组合,获取相应的阈值。

判定单元,用于若所述差值大于所述阈值,则判定所述消息主题的消息存在堆积。

可选地,所述第二获取单元具体用于:

从自定义报警规则中,查找是否存在与所述消息消费方标识、所述消息主题或所述消息消费方标识及所述消息主题标识组合有关的报警规则项;

若有,则从所述报警规则项中获取所述阈值;

若无,则从全局报警规则中获取所述阈值。

可选地,所述确定模块303具体用于:

若存在堆积且所述自定义报警规则中存在与所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合有关的报警规则项,则从所述报警规则项中获取所述目标对象,并向所述目标对象发送报警信息。

可选地,所述确定模块303具体用于:

若存在堆积且所述自定义报警规则中不存在与所述消息消费方标识、所述消息主题标识或所述消息消费方标识及所述消息主题标识组合有关的报警规则项,则查找白名单中是否存在所述消息消费方标识、所述消息主题或所述消息消费方标识及所述消息主题组合;若存在,则不向目标对象发送报警信息;若不存在,则从所述全局报警规则中获取所述目标对象,并向所述目标对象发送报警信息。

本发明实施例提供的技术方案中,根据消息消费方消费某一消息主题的某一分区内消息的消费偏移量以及该分区内消息的总量可确定出该消息消费方在消费该消息主题内消息时是否出现堵塞情况,若出现堵塞则判断该消费方消费该消息主题的这种情况需不需要向负责人发送报警信息;实现了消息消费情况的自动监控功能,无需人员值守也可有针对性的发出报警信息,提高了报警的及时性。

这里需要说明的是:本实施例提供的所述监控报警装置可实现上述各监控报警方法实施例提供的技术方案,具体的实现原理可参见上述各实施例中的相应内容,此处不再赘述。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

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

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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