数据监控方法、装置及电子设备与流程

文档序号:30952231发布日期:2022-07-30 08:09阅读:88来源:国知局
数据监控方法、装置及电子设备与流程

1.本技术涉及微服务技术领域,更具体地,涉及一种数据监控方法、装置及电子设备。


背景技术:

2.微服务是一种新兴的软件架构,其主要是把一个大型的单个应用程序和服务拆分为数十个的支持微服务,即微服务是多个服务的组合,且这些服务均可独立运行。目前微服务设计模式在国内已经普及开来,微服务设计模式鼓励服务拆分,方便了代码解耦,但同时也带来了新的问题,使得服务间依赖增加,一个服务往往依赖多个底层服务,调用链路较深,超过三层的服务嵌套调用越来越常见,因此许多问题亟待解决。
3.现有技术中通常采用开源的elk(集中式日志系统)方案或者zipkin系统(分布式跟踪系统)等本身的链路系统做相应的数据处理,其中,elk是elasticsearch、logstash与kibana三个组件的首字母的缩写,三个开源组件组合在一起就构成了一个完整的日志采集、处理与查询解决方案,然而利用现有的技术进行数据处理时,通常会面临两个问题,第一是在进行数据处理时,其处理的数据需要符合系统标准,但是在微服务系统中,各个子系统是异构化的,异构化系统指的是不同架构的系统。因异构的存在导致无法做到数据的完全标准化,并且如果要实现数据的完全标准化则需要对链路系统进行对应的改造,而系统改造的难度是相当大的;第二是对数据进行标准化会影响服务的性能,对于某些系统来说只需要关注其本身子系统关联的服务即可,而不需要跟踪每一条详细日志,因为详细跟踪每一条日志会增大数据上报的复杂度,进而影响到服务本身的性能。


技术实现要素:

4.本技术提出了一种数据监控方法、装置及电子设备及存储介质,可以改善上述问题。
5.一方面,本技术实施例提供了一种数据监控方法,该方法包括:接收第一监控子系统发送的目标数据;确定所述第一监控子系统发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常;若所述第一监控子系统发送的目标数据符合预设规则,则根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与所述第一监控子系统关联的第二监控子系统;输出与所述第二监控子系统关联的预警信息。
6.另一方面,本技术实施例提供了一种数据监控方法,其应用于全链路监控系统的第一监控子系统,全链路监控系统还包括报警子系统,该方法包括:当获取到业务请求时,执行业务请求,得到所述业务请求对应的链路数据;对链路数据进行标准化,得到目标数据;将目标数据发送至报警子系统,指示报警子系统确定目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常。
7.另一方面,本技术实施例提供了一种数据监控装置,其应用于全链路监控系统的
报警子系统,全链路监控系统还包括第一监控子系统,该装置包括:接收模块、第一确定模块、第二确定模块以及输出模块。其中,接收模块,用于接收第一监控子系统发送的目标数据。第一确定模块,用于确定第一监控子系统发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常。第二确定模块,用于若第一监控子系统发送的目标数据符合预设规则,则根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统关联的第二监控子系统。输出模块,用于输出与第二监控子系统关联的预警信息。
8.另一方面,本技术实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序配置用于执行上述的方法。
9.另一方面,本技术实施例提供了一种计算机可读存储介质,其上存储有程序代码,所述程序代码可被处理器调用执行上述的方法。
10.本技术提供的方案,在接收到第一监控子系统发送的目标数据时,报警子系统首先可以确定第一监控子系统发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常,如果第一监控子系统发送的目标数据符合预设规则,则报警子系统可以根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统关联的第二监控子系统,最后可以输出与第二监控子系统关联的预警信息。如此,报警子系统在确定第一监控子系统存在问题时,可以通过第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性获取与其关联的第二监控子系统,并输出与第二监控子系统关联的预警信息,通过该预警信息可以加快问题排查的进度,并且根据第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性本发明可以确定出与第一监控子系统关联的第二监控子系统,如此可以降低服务间的依赖度,且服务对底层服务的依赖也更少,其在一定程度上提高了问题排查的进度。
11.本技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
12.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1示出了本技术一实施例提供的一种数据监控方法的流程图。
14.图2示出了本技术一实施例提供的一种数据监控方法中告警信息显示示意图。
15.图3示出了本技术另一实施例提供的一种数据监控方法的流程图。
16.图4示出了本技术另一实施例提供的一种数据监控方法中步骤s220的流程图。
17.图5示出了本技术另一实施例提供的一种数据监控方法中步骤s220的其他流程图。
18.图6示出了本技术又一实施例提供的一种数据监控方法的流程图。
19.图7示出了本技术又一实施例提供的一种数据监控方法中步骤s330的流程图。
20.图8示出了本技术又一实施例提供的一种数据监控方法中数据聚类结果示意图。
21.图9示出了本技术另一实施例提供的一种数据监控方法的流程图。
22.图10示出了本技术另一实施例提供的一种数据监控方法中数据标识示例图。
23.图11示出了本技术又一实施例提供的一种数据监控方法的流程图。
24.图12示出了本技术实施例提供的一种数据监控方法的交互流程图。
25.图13示出了本技术实施例提供的一种数据监控方法中全链路监控系统的架构示例图。
26.图14示出了本技术实施例提供的一种数据监控装置的框图。
27.图15示出了本技术实施例提供的一种全链路监控系统的框图。
28.图16是本技术实施例的用于执行根据本技术实施例的数据监控方法的电子设备的框图。
29.图17是本技术实施例的用于保存或者携带实现根据本技术实施例的数据监控方法的程序代码的存储单元。
具体实施方式
30.为了使本技术领域的人员更好地理解本技术方案,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述。
31.在本技术实施例的一个应用场景中,报警子系统在确定第一监控子系统发送的目标数据符合预设规则时,其可以根据第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,获取与第一监控子系统关联的第二监控子系统,并输出与所述第二监控子系统关联的预警信息,通过该预警信息可以加快问题排查的进度。
32.请参照图1,图1示出了本技术一实施例提供的一种数据监控方法的流程示意图。该方法可以包括步骤s110至步骤s140。
33.步骤s110:接收第一监控子系统发送的目标数据。
34.作为一种方式,本技术实施例提供的数据监控方法可以应用于全链路监控系统的报警子系统,所述全链路监控系统还可以包括第一监控子系统,报警子系统可以接收第一监控子系统发送的目标数据,所述目标数据可以是不同日志数据,同时目标数据可以包括数据指标、网络指标、内存指标、cpu使用率包括、打开句柄数以及io读写的指标。其中,网络指标可以包括网络收包、出包、tcp、udp、丢包以及重传数量;内存指标可以包括虚拟内存以及free大小等;cpu使用率可以包括系统以及用户等的使用率。另外,目标数据还可以包括时钟校准信息、第一监控子系统的网络状态以及收发的tcp以及udp的包的数量等。另外,目标数据可以是第一监控子系统中的业务单元在执行某一业务请求所产生的数据。
35.可选地,第一监控子系统可以为业务逻辑系统,可以包括业务单元和监控单元,所述业务单元用于执行不同的业务请求,监控单元用于将业务单元获取的数据发送至报警子系统,常见的第一监控子系统可以有登录系统、外部玩家系统等,其中,外部玩家系统可以是游戏相关的系统,并且外部玩家系统不仅可以是平台型系统,而且也可以是客户端系统。以第一监控子系统为登陆系统为例,本技术实施例可以接收登录系统发送的目标数据,登录系统发送的目标数据可以是登录系统在运行时产生的数据,或者也可以是不同用户的登录信息,或者也可以是服务器调用所述登录系统所产生的数据等。
36.作为一种方式,报警子系统可以包括数据存储单元、告警单元、配置单元以及机器
学习单元,通过这些单元的相互配合报警子系统在接收到第一监控子系统发送的目标数据之后,才能更加快速有效的确定第一监控子系统是否有故障产生,其中,数据存储单元与第一监控子系统、第二监控子系统通过有线或者无线的方式连接,同时数据存储单元可以通过有线或者无线的方式与告警单元连接,而告警单元则可以通过有线或者无线的方式与机器学习单元连接。
37.作为另一种方式,第一监控子系统可以包括业务单元以及监控单元,所述第一监控子系统可以通过监控单元与报警子系统相连。换句话说,当第一监控子系统获取到目标数据后,可以通过监控单元将所述目标数据发送至报警子系统。
38.在另一些实施方式中,报警子系统在接收到第一监控子系统发送的目标数据的同时其也可以接收第一监控子系统发送的数据标识,该数据标识与所述目标数据对应,所述数据标识可以是所述目标数据对应的唯一标识,通过所述数据标识本技术实施例可以快速有效的确定出目标数据的产生路径,该数据标识也可以称为traceid标识,不同的目标数据对应的数据标识也不同。本发明实施例中,目标数据对应的数据标识可以是生成所述目标数据后,基于所述目标数据生成的,所述数据标识可以是在服务器调用所述第一监控子系统所产生的标识,即当服务器发送调取请求至第一监控子系统之后,会对应产生目标数据,以及该目标数据对应的数据标识。
39.本发明实施例中,第一监控子系统发送的所述目标数据对应的数据标识可以是traceid,其中,traceid可以是当前业务调用产生的位置id标识符,所述位置id标识符可以是一套执行路径的标识,也是一条线程的标识,即位置id标识符可以是服务器调用所述第一监控子系统所产生的标识,报警子系统通过利用该数据标识可以确定出所述目标数据产生的时间,以及其在产生过程中所经历的路径有哪些。换句话说,报警子系统通过利用所述数据标识可以查看目标数据完整的调用链,具体的,报警子系统可以通过数据标识查看目标数据产生的过程,即数据标识用于表示产生目标数据的上下文id,通过该数据标识电子设备可以确定出目标数据产生的足迹。例如,确定产生目标数据的耗时、确定目标数开始和结束的时间,以及目标数据从第一监控子系统发送到报警子系统所经历的路径等。
40.在一些实施方式中,数据标识产生的规则可以是机器ip+预留号+id产生的时间+自增序列+符号位,通过该规则便可以在获取到目标数据后生成到与其对应的数据标识,其中,机器ip可以是服务器ip;预留号可以是链路数据对应进程的字符串;id产生的时间可以是产生数据标识的时间;自增序列则可以是产生数据标识时自增的位数,不同的数据即使是产生时间很相近,因为自增序列的存在,其对应的数据标识也不相同,如数据a先产生,则其对应的自增序列为3,而数据b相较数据a后产生,则其对应的自增序列为4,本技术实施例中自增序列可以是从1000涨到9000,或者也可以是其他序列;符号位可以用于表示目标数据的正负。另外,报警子系统在获取到目标数据后可以根据所述数据标识对所述目标数据进行存储,并且在调用所述目标数据时,本发明实施例也可以根据所述数据标识对目标数据中包含的异常进行排查等。
41.作为一种方式,报警子系统可以利用云存储对其获取的目标数据进行存储,云存储(cloud storage)是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,云计算是一种计算模式,它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服务。提供资源的网络被称为“云”。“云”中
的资源在使用者看来是可以无限扩展的,并且可以随时获取,按需使用,随时扩展,按使用付费。分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
42.通过上述介绍可以知道,报警子系统可以包括数据存储单元,在接收到第一监控子系统发送的目标数据之后,报警子系统可以利用所述数据存储单元将第一监控子系统发送的所述目标数据存储在所述数据存储单元的指定位置,该指定位置可以是所述数据存储单元根据所述目标数据属性或者是产生的时间对应配置的存储位置;该指定位置也可以是所述数据存储单元根据所述目标数据对应的数据标识对应配置的存储位置;该指定位置也可以是所述数据存储单元结合所述目标数据的属性和所述数据标识共同确定的存储位置,指定位置具体是如何获取的这里不进行明确限制。
43.在一些实施方式中,报警子系统的数据存储单元可以包括数据库,数据库可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。数据存储单元还可以包括数据库管理单元,数据库管理单元是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理单元可以依据它所支持的数据库模型来作分类,例如关系式、xml(extensible markup language,即可扩展标记语言);或依据所支持的计算机类型来作分类,例如服务器群集、移动电话;或依据所用查询语言来作分类,例;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。不论使用哪种分类方式,一些数据库管理单元能够跨类别,例如,同时支持多种查询语言
44.本发明实施例中,数据库可以是包括时序数据库,所述时序数据库可以是elasticsearch搜索服务器,elasticsearch是一个分布式、高扩展、高实时的搜索与数据分析引擎,其能方便的使大量数据具有搜索、分析和探索的能力。本发明实施例中,报警子系统的数据存储单元为了更好的对第一监控子系统、第二监控子系统等发送的数据进行存储,其可以每隔预设时间段创建一个数据存储模块,每个数据存储模块可以对应一个数据存储标识,这些数据存储模块可以是数据存储单元根据其接收的数据的相关属性创建的。本技术可以根据数据所产生的时间对应创建出不同的数据存储模块;本技术也可以根据数据对应的业务系统创建出不同的数据存储模块;或者也可以根据数据对应的功能创建出的不同的数据存储模块等。具体如何创建不同的数据存储模块,这里不进行明确限制,可以根据实际需求进行设置。通过将所述时序数据库切分成不同的数据存储模块,不仅可以方便数据的存储以及查找,而且有利于数据的分析,尤其是在利用机器学习进行数据分析时,将数据切分成不同模块的子数据可以更加有效的对机器学习模型进行训练。
45.在一些实施方式中,报警子系统将数据存储单元切分为不同的数据存储模块时,会对应为该数据存储模块配置一个身份标识,数据存储模块不同则对应的身份标识也不相同。例如,数据存储单元可以包括数据存储模块a、数据存储模块b以及数据存储模块c,数据存储模块a对应的身份标识可以是es node1,数据存储模块b对应的身份标识可以是es node2,数据存储模块c对应的身份标识则可以是es node3等。
46.步骤s120:确定所述第一监控子系统发送的目标数据是否符合预设规则。
47.在一些实施方式中,在接收到第一监控子系统发送的目标数据之后,报警子系统可以利用告警单元确定第一监控子系统发送的目标数据是否符合预设规则,其中,预设规则用于表征所述第一监控子系统发生异常。所述异常可以是第一监控子系统的错误码个数大于错误阈值,或者是数据在传输时的延时大于延时阈值,或者也可以是数据在传输时发生丢包以及超时等异常,具体是哪种异常这里不进行明确限制,可以根据实际情况进行设置。
48.作为一种方式,如果第一监控子系统发送的目标数据符合预设规则,则根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统对应的第二监控子系统,即进入步骤s130。如果第一监控子系统发送的目标数据不符合预设规则,则重新接收第一监控子系统发送的下一个目标数据,即进入步骤s110。
49.本发明实施例中,预设规则可以是用于判断目标数据是否包含错误数据或者问题数据的规则,其可以是用户预先设置好的,也可以是报警子系统根据第一监控子系统的属性确定的。作为一种方式,报警子系统在获取到第一监控子系统发送的目标数据时,可以检测在收到目标数据的预设时间段内,是否接收到用户输入的第一测试规则,如果接收到则将用户输入的该第一测试规则作为预设规则。
50.作为另一种方式,如果在接收到目标数据的预设时间段内,未接收到用户输入的第一测试规则,则确定用户是否基于所述第一监控子系统预先输入第二测试规则,如果用户基于所述第一监控子系统预先输入了第二测试规则,则将该第二测试规则作为预设规则,其中,第二测试规则又可以称为历史测试规则,其可以是用户预先配置的测试规则。
51.作为另一种方式,如果报警子系统既未接收到第一测试规则,也未接收到第二测试规则,则可以获取该目标数据的属性,并基于该目标数据的属性获取第三测试规则,所述第三测试规则也可以是默认测试规则,默认测试规则和目标数据的属性可以通过一一对应的方式存储于所述报警子系统中。当获取到目标数据的属性后,即可确定出该属性对应的第三测试规则,而后将所述第三测试规则作为预设规则。另外,预设规则也可以是根据目标数据的数据标识确定的,目标数据的数据标识不相同则对应的预设规则也不相同。报警子系统可以结合上述多种方式来确定预设规则,也可以仅选择其中一种作为预设规则,具体如何确定预设规则这里不进行明确限制,可以根据实际需求进行设置。
52.在另一些实施方式中,在确定第一监控子系统发送的目标数据符合预设规则时,报警子系统可以根据报警规则输出告警信息。其中,报警规则可以是用户预先设置的报警规则,其可以包括报警的间隔时间,如在确定第一监控子系统发送的目标数据符合预设规则时,报警子系统则可以每隔1小时报警一次;报警规则也可以包括报警的平台,如在确定第一监控子系统发送的目标数据符合预设规则时,报警子系统可以指示微信、短信或者邮件等至少一个平台输出预警信息;报警规则也可以包括报警的次数,如在确定第一监控子系统发送的目标数据符合预设规则时,报警子系统可以指示报警平台在一天内输出5个同样的报警信息,以方便用户尽快发现并解决问题。
53.为了更好的理解告警信息的输出形式,本发明实施例给出了如图2所示的告警信息显示示例图,从图2可以看出告警信息可以包括告警的类型、告警所属的业务、告警发生的时间、告警的对象、告警的维度以及告警的内容等。例如,图2中告警的类型为高星级业务
逻辑层调用量突增突降告警发生告警;告警所属的业务为新终端游戏sdk;告警发生的时间2020年10月16日17:22;告警的对象为逻辑层分业务接口返回码;告警维度为cmdid[10332],appid[1104466820];告警的内容是(当前值(209322.0)-前一时刻值(81876.0))的绝对值》=(前一时刻值(81876.0)*(100.0)%+(4000.0))告警。
[0054]
步骤s130:根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与所述第一监控子系统关联的第二监控子系统。
[0055]
在一些实施方式中,报警子系统在确定第一监控子系统发送的目标数据符合预设规则时,其可以根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统关联的第二监控子系统。本技术实施例中,第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性可以包括相互依存和制约、协同与竞争的关系。例如,第一监控子系统的第一目标数据主要是依靠第二监控子系统的第二目标数据获取的,那么第一目标数据和第二目标数据之间的关联性就比较大,此时第一监控子系统和第二监控子系统则是相互关联的。又如,第一监控子系统的第一目标数据与第二监控子系统的第二目标数据之间相互独立且互不影响,此时第一目标数据和第二目标数据之间的关联性则较小。
[0056]
在一些实施方式中,第二监控子系统也可以属于全链路监控系统,即全链路监控系统可以包括多个监控子系统,每个所述监控子系统均具有其特有的功能,且这些监控子系统之间可能也存在着一定的关联,可以根据关联程度来对各监控子系统进行划分,如可以划分为强关联子系统和弱关联子系统。当两个监控子系统属于强关联子系统时,两个监控子系统之间的关联度大于第一关联阈值;当两个监控子系统属于弱关联子系统时,两个监控子系统的关联度小于第二关联阈值。监控子系统之间的关联度可以是用户根据经验值确定的,如用户根据经验值确定第一监控子系统和第二监控子系统之间的关联比较紧密,此时则可以将第一监控子系统和第二监控子系统之间的关联设置为强关联。另外,监控子系统之间的关联度也可以是通过机器学习的聚类算法获取的。
[0057]
作为一种方式,与第一监控子系统关联的第二监控子系统可以为多个,本发明实施例可以将强关联的第一监控子系统和第二监控子系统按照预设关系存储于数据库中,当确定第一监控子系统后,报警子系统可以根据数据库中预先存储的关系确定出与第一监控子系统关联的第二监控子系统。作为另一种方式,报警子系统也可以将第一监控子系统发送的目标数据输入至机器学习模型,利用所述机器学习模型确定与所述第一监控子系统关联的第二监控子系统,所述机器学习模型用于预先根据多个监控子系统的样本数据集之间的关联性确定各个监控子系统之间的关联性,进而确定出第二监控子系统。
[0058]
本发明实施例中,第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性可以通过第一监控子系统的目标数据与其他监控子系统的数据之间相互依赖程度来确定,如第一监控子系统的目标数据主要是依赖第二监控子系统的目标数据获取的,此时,第一监控子系统的目标数据与第二监控子系统的数据之间是强关联的,当获取到第一监控子系统发送的目标数据与其他监控子系统发送的数据之间的关联性之后,本发明实施就可以基于该关联性获取到与第一监控子系统关联的第二监控子系统,即本技术可以通过关联性从其他监控子系统中查找出与第一监控子系统关联的第二监控子系统。另外,本发明实施例也可以根据第一监控子系统的目标数据对应的数据标识与其他监控子系统发
送的目数据的数据标识之间的关联性,确定出与第一监控子系统关联的第二监控子系统,即系统之间的数据标识越接近则系统之间的关联性越大。
[0059]
需要说明的是,第二监控子系统也可以是属于第一监控子系统,此时的第一监控子系统指的是第一目标监控子单元,即第一监控子系统可以包括多个第一监控子单元,当确定目标数据来自于第一目标监控子单元时,确定第一目标监控子单元的目标数据是否符合预设规则,若第一目标监控子单元的目标数据符合预设规则,报警子系统则可以确定第一监控子系统中是否存在与第一目标监控子单元关联的其他监控子单元,如果存在则将确定的监控子单元作为第二监控子系统。综上,第一监控子系统和第二监控子系统可以是整体的监控子系统,也可以是监控子系统中包括的监控子单元。
[0060]
步骤s140:输出与所述第二监控子系统关联的预警信息。
[0061]
在一些实施方式中,根据第一监控子系统的目标数据与其他监控子系统的数据之间的关联性确定出与第一监控子系统关联的第二监控子系统后,报警子系统可以输出与第二监控子系统关联的预警信息。通过上述介绍可以知道,第一监控子系统发送的目标数据若符合预设规则,则表示第一监控子系统很可能发生了故障,此时为了加快故障定位的速度,报警子系统可以获取与第一监控子系统具有强关联的第二监控子系统,并输出与第二监控子系统关联的预警信息。因为第二监控子系统与第一监控子系统是具有强关联关系的。因此,在确定第一监控子系统发送的目标数据符合预设规则,即目标数据存在问题时,表示第二监控子系统发生故障的可能性也比较大,通过输出与第二监控子系统关联的预警信息在一定程度上可以加快问题定位的速度,如此也可以实现对第二监控子系统问题的预测。本发明实施例中,输出预警信息的界面上可以包括预警的类型、预警所属的业务、预警发生的时间、预警的对象、预警的维度以及预警的内容等。另外,为了方便用户在接收到预警信息后更清楚的了解预警信息,输出预警信息的界面上还可以包括“查看详情”的控件,用户通过触发该控件可以对预警信息相关的其他信息进行更详细的了解。
[0062]
在另一些实施方式中,在确定出与第一监控子系统关联的预警信息时,报警子系统也可以确定是否接收到用户输入的预警规则。其中,预警规则可以是用户预先设置的规则,其可以包括预警的间隔时间,如在确定出第二监控子系统时,报警子系统则可以每隔1小时输出一个预警信息;预警规则也可以包括预警的平台,如在确定出第二监控子系统时,报警子系统可以指示微信、短信或者邮件等至少一个平台输出预警信息;预警规则也可以包括输出预警的次数,如在确定出第二监控子系统时,报警子系统可以指示报警平台在一天内输出5个同样的预警信息,以方便用户尽快发现并解决问题。
[0063]
作为另一种方式,为了使用户可以尽快的发现预警信息,在确定输出预警的次数时,报警子系统也可以输出强度不同的预警信息,如第一次可以通过微信平台输出预警信息,第二次可以通过微信平台和邮件平台输出预警信息,第三次则可以通过微信平台、邮件平台以及短信平台输出预警信息等。通过不断递增的提醒方式本发明实施例可以使用户尽快注意到预警。另外,为了避免影响到用户的使用体验,在采用递增的提醒方式前可以先确定预警信息的重要程度,若预警信息的重要程度很高则可以采用不断递增的方式输出预警信息,若预警信息的重要程度不高,则可以不采用递增的提醒方式。
[0064]
本发明实施例提供的数据监控方法在接收到第一监控子系统发送的目标数据时,首先可以确定第一监控子系统发送的目标数据是否符合预设规则,如果第一监控子系统发
送的目标数据符合预设规则,则根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统关联的第二监控子系统,最后可以输出与第二监控子系统关联的预警信息。如此,报警子系统在确定第一监控子系统存在问题时,可以通过第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性获取与其关联的第二监控子系统,并输出与第二监控子系统关联的预警信息,通过该预警信息可以加快问题排查的进度。另外,本发明实施例通过采用不同的预警规则可以使预警信息能够被用户尽快发现,以提高问题解决的效率。
[0065]
请参照图3,图3示出了本技术另一实施例提供的一种数据监控方法的流程示意图,该方法可以应用于全链路监控系统的报警子系统,所述全链路监控系统还包括第一监控子系统。该方法可以包括步骤s210至步骤s240。
[0066]
步骤s210:接收所述第一监控子系统发送的目标数据。
[0067]
步骤s210上述实施例已进行了详细介绍,这里就不再进行赘述。
[0068]
步骤s220:确定所述第一监控子系统发送的目标数据是否符合预设规则。
[0069]
在一些实施方式中,报警子系统在获取到第一监控子系统发送的目标数据后,可以确定所述第一监控子系统发送的目标数据是否符合预设规则。通过上述介绍可以知道,预设规则用于表征所述第一监控子系统发生异常,即预设规则主要是用于判断目标数据中是否包含问题数据的规则,或者说预设规则是通过不同维度判断目标数据是否包含错误数据或者问题数据的规则。本发明实施例中,预设规则可以是用户预先配置的,并且报警子系统可以从不同维度确定目标数据是否符合预设规则,如可以从错误码维度确定第一监控子系统是否发生故障,或者也可以从延时维度确定第一监控子系统是否发生故障。其中,错误码可以是报警子系统指定错误标识,或者也可以是错误数值。
[0070]
作为一种方式,请参阅图4,步骤s220可以包括步骤s221至步骤s222。
[0071]
步骤s221:统计预设时间段内所述目标数据中错误码的个数。
[0072]
在一些实施方式中,获取到第一监控子系统发送的目标数据后,报警子系统可以统计预设时间段内所述目标数据中错误码的个数,其中,预设时间段可以是用户预先配置的,其可以是1分钟、1小时或者是一天等。目标数据可以包括多个子目标数据,而这些子目标数据中有一些是错误数据,有一些则是标准数据,本实施例统计的错误码的个数可以是目标数据中错误数据的个数。例如,在1分钟内,目标数据中有5个子目标数据有错误,此时的错误码个数即为5。
[0073]
在另一些实施方式中,一个子目标数据中也可能会存在多个错误,故为了更准确的错误码进行统计,本发明实施例中的错误码的个数也可以是预设时间段内目标数据中所有错误的个数。例如,在1分钟内,目标数据中有8个错误,此时的错误码个数即为8。本发明实施例在统计到预设时间段内目标数据中错误码的个数后,报警子系统可以确定该错误码的个数是否大于错误阈值,如果大于,则确定目标数据符合预设规则,即进入步骤s222。
[0074]
步骤s222:当所述错误码的个数大于错误阈值时,确定所述目标数据符合预设规则。
[0075]
在一些实施方式中,错误阈值可以是用户预先配置的,也可以是根据经验值设置的。预设时间段不同,则对应的错误阈值也不相同,如预设时间段为1秒时,对应的错误阈值可以为10,又如预设时间段为3秒时,对应的错误阈值则可以为25次等。错误阈值具体如何
设置这里不进行明确限制。在另一些实施方式,当确定错误码的个数小于或者等于错误阈值时,报警子系统也可以从延时维度确定目标数据是否符合预设规则,具体请参阅图5,通过图5可以看出步骤s220还可以包括步骤s223至步骤s224。
[0076]
步骤s223:获取每个所述子链路数据对应的延时,并确定所述延时是否位于目标延时区间。
[0077]
本发明实施例中,目标数据可以包括多个子链路数据,报警子系统在获取到第一监控子系统发送的所述多个子链路数据后,其可以获取每个所述子链路数据对应的延时,并确定所述延时是否位于目标延时区间。其中,子链路数据对应的延时可以是子链路数据从输入至第一监控子单元到输出至所述第一监控子单元所消耗的时间,第一监控子单元是用于处理链路数据的单元。
[0078]
在一些实施方式中,在获取到每个子链路数据对应的延时后,报警子系统可以确定子链路数据对应的延时是否位于目标延时区间,若所述延时位于目标延时区间,则表示所述目标数据符合预设规则,即进入步骤s224。
[0079]
本发明实施例中,目标延时区间指的是最大的延时区间,若子链路数据的延时位于所述目标延时区间或者是超出所述目标延时区间,则表示子链路数据的延时太大,不符合数据生成的正常规则,此时则表明目标数据很有可能发生异常。另外,目标延时区间可以是用户根据不同的第一监控子单元对应设置的,即不同的第一监控子单元其对应的目标延时区间也可能不相同。如,第一监控子单元的目标延时区间可以是51ms-100ms,而第二监控子单元的目标延时区间则可以为82ms-130ms。
[0080]
步骤s224:若所述延时位于目标延时区间,则确定所述目标数据符合预设规则。
[0081]
在另一些实施方式中,报警子系统也可以统计所述延时位于所述目标延时区间的个数,并确定该个数是否大于数量阈值;若大于数量阈值,则确定所述目标数据符合预设规则。例如,报警子系统统计到目标数据中的多个链路子数据的延时分布在1ms-10ms、11ms-20ms、21ms-50ms以及51ms-100ms,其中,51ms-100ms为目标延时区间,而后确定出位于51ms-100ms区间的链路子数据超过的所有链路子数据的30%,即目标数据中有30%的子链路数据的延时位于51ms-100ms,此时即可确定目标数据符合预设规则。
[0082]
在另一些实施方式中,报警子系统也可以从请求维度的角度出发来确定第一监控子系统发送的目标数据是否符合预设规则,其中,请求维度指的是第一监控子单元在预设时间段内容接收到指定请求的个数。换句话说,报警子系统可以确定所述目标数据中某一类型的请求的最大值是否大于请求阈值,若大于,则表明第一监控子系统发送的目标数据符合预设规则。例如,第一监控子单元a在1秒内接收到的请求是110次,而请求阈值是100次,此时则表示第一监控子单元a可能发生异常,即表明目标数据符合预设规则。
[0083]
在一些实施方式中,报警子系统可以先确定预设时间段内目标数据中错误码的个数是否大于错误阈值,然后确定每个子链路数据对应的延时是否位于目标延时区间,最后再确定目标数据中某一类型的请求的最大值是否大于请求阈值;或者也可以先确定每个子链路数据对应的延时是否位于目标延时区间,然后确定预设时间段内目标数据中错误码的个数是否大于错误阈值,最后再确定目标数据中某一类型的请求的最大值是否大于请求阈值。具体先确定哪个规则后确定哪个规则,这里不进行明确限制,可以根据实际情况进行选择。同时,本发明实施例可以选择上述多个规则的任意组合来确定目标数据是否符合预设
规则,也可以只选择其中一个规则来确定目标数据是否符合预设规则。
[0084]
步骤s230:根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与所述第一监控子系统关联的第二监控子系统。
[0085]
步骤s240:获取所述第二监控子系统对应的第二目标数据,若所述第二监控子系统对应的第二目标数据符合预设规则,则输出与所述第二监控子系统关联的预警信息。
[0086]
在一些实时方式中,报警子系统在确定出与第一监控子系统对应的第二监控子系统时,其可以获取所述第二监控子系统对应的第二目标数据,并在该第二目标数据符合预设规则时,输出与第二监控子系统关联的预警信息,此时第一监控子系统对应的目标数据可以为第一目标数据。其中,预设规则和第一监控子系统所涉及的规则类似,这里就不进行详细赘述了。在另一些实施方式中,报警子系统在未获取到数据标识时,也可以根据第一监控子系统的名称或者数据等获取到与其关联的第二监控子系统。
[0087]
本发明实施例提供的数据监控方法在接收到第一监控子系统发送的目标数据时,首先可以确定第一监控子系统发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常,如果第一监控子系统发送的目标数据符合预设规则,则报警子系统可以根据第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统关联的第二监控子系统,最后可以输出与第二监控子系统关联的预警信息。如此,报警子系统在确定第一监控子系统存在问题时,可以第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性获取与其关联的第二监控子系统,并输出与第二监控子系统关联的预警信息,通过该预警信息可以加快问题排查的进度。另外,本发明实施例利用不同维度的数据来确定第一监控子系统发送的目标数据是否符合预设规则,其在一定程度上可以提高预警信息输出的准确性,同时可以提高数据确认的灵活性。
[0088]
请参照图6,图6示出了本技术又一实施例提供的一种数据监控方法的流程示意图,该方法可以应用于全链路监控系统的报警子系统,所述全链路监控系统还包括第一监控子系统。该方法可以包括步骤s310至步骤s340。
[0089]
步骤s310:接收所述第一监控子系统发送的目标数据。
[0090]
步骤s320:确定所述第一监控子系统发送的目标数据是否符合预设规则。
[0091]
步骤s330:将所述目标数据输入至机器学习模型,利用所述机器学习模型确定与所述第一监控子系统关联的第二监控子系统。
[0092]
在一些实施方式中,机器学习模型用于预先根据多个监控子系统的样本数据集之间的关联性确定各个监控子系统之间的关联性,报警子系统为了更加快速有效的实现问题的排查,其可以将目标数据输入机器学习模型,并利用该机器学习模型获取与第一监控子系统关联的第二监控子系统。换句话说,报警子系统还可以包括机器学习单元,机器学习模型配置在该机器学习单元上,所述机器学习单元可以与上述告警单元连接。
[0093]
作为一种方式,请参阅图7,步骤s330可以包括步骤s331至步骤s333。
[0094]
步骤s331:获取多个监控子系统的样本数据集,并利用数据过滤规则对所述多个监控子系统的历史数据进行过滤,得到多个监控子系统的样本数据集。
[0095]
在一些实施方式中,报警子系统可以获取多个监控子系统的样本数据集,并通过所述多个监控子系统的样本数据集对机器学习模型进行训练,利用多个监控子系统的样本数据集可以对机器学习模型进行不断更新。通过上述介绍可以知道,第一监控子系统、第二
监控子系统等会因为业务的执行对应产生不同的数据,并且不同时间段第一监控子系统、第二监控子系统等产生的数据也是不相同,为了使机器学习模型能够更准确的获取到第二监控子系统,本发明实施例可以每隔预设时间段获取最新的样本数据集来对机器学习模型进行更新。
[0096]
在另一些实施方式中,报警子系统的告警单元在确定第一监控子系统或者第二监控子系统发送的目标数据符合预设规则时,可以将其对应的目标数据作为多个监控子系统的样本数据集进行存储,而后在对机器学习模型进行更新的时候,报警子系统可以将其预先存储的多个监控子系统的样本数据集输入至机器学习模型,进而可以实现对机器学习模型的更新。
[0097]
综上所述,获取到多个监控子系统的历史目标数据后,报警子系统可以利用数据过滤规则对所述多个监控子系统的历史数据进行过滤,得到所述多个监控子系统的样本数据集。具体的,本发明实施例可以从每个所述监控子系统的所述多个历史数据中选出数据错误量大于错误阈值的历史数据,并将所述数据错误量是否大于错误阈值的所述历史数据作为该监控子系统的样本数据集。另外,需要说明的是,样本数据集不仅可以包括历史目标数据,其也可以包括与历史目标数据对应的数据标识,数据标识和历史目标数据可以通过一一对应的方式存储于报警子系统,即多个历史目标数据和么历史目标数据对应的数据标识构成样本数据集,通过利用数据标识和历史目标数据对机器学习模型进行训练可以提高关联系统获取的准确性。
[0098]
步骤s332:利用所述多个监控子系统的样本数据集对所述机器学习模型进行训练,得到更新后的所述机器学习模型。
[0099]
本发明实施例中,不同的样本数据集对应的数据标签可能相同也可能不相同,为了更好的对机器学习模型进行更新,报警子系统在获取到多个监控子系统的样本数据集后,可以对多个监控子系统的样本数据集执行打标签操作,其中,标签可以样本数据集对应业务系统的名称。例如,内部服务器潘多拉系统a,其对应的标签命名可以为pandora_sys_a。另外,样本数据集对应的标签也可以是样本数据集对应的数据标识(traceid)。可见,本发明实施例可以通过利用数据标识来实现对目标数据的标记,进而可以使训练的机器学习模型能够更加准确的获取到关联的系统。
[0100]
在一些实施方式中,获取到多个样本数据集后,报警子系统可以将所述多个样本数据集输入至关机器学习模型,以通过对所述机器学习模型的训练来获取到最新的机器学习模型。本发明实施例可以利用聚类算法来获取到与第一监控子系统关联的第二监控子系统,聚类算法是指机器学习中各个相似的数据集计算的算法。
[0101]
作为一个具体的实施方式,获取到多个样本数据集后,报警子系统可以随机初始化这些数据各自的中心点,所述中心点是每个所述样本数据集向量长度相同的位置,报警子系统可以先确定多个监控子系统的样本数据集里面中心数据的数量。换句话说,在获取到多个监控子系统的样本数据集后,报警子系统可以随机从多个样本数据集中选择出预设数量个中心数据,而后基于这些中心数据对多个监控子系统的样本数据集中的其他样本数据集进行划分。在此基础上,本发明实施例可以计算每个样本数据集到中心数据的距离,样本数据集距离哪个中心数据最近就将其划分到哪一类中,计算公式如下:
[0102][0103]
其中,x可以待划分样本数据集,y可以是中心数据,xi可以是第一样本数据集对应的具体数值,yi可以是第二样本数据集对应的具体数值,n指的是目标训练集中样本数据集的数量。
[0104]
然后,报警子系统可以基于计算结果重新确定中心数据,重复上述步骤,直到每一类中心在每次迭代后变化不大,则结束迭代。另外,本发明实施例也可以多次随机初始化中心数据,然后将运行结果最终的聚类结果。为了更清楚理解数据聚类的结果,本发明实施例给出了如图8所示的示意图,图8中的301、302以及303可以用于表示不同种类的数据,301可以是第一类数据,302可以是第二类数据,303则可以是第三类数据,同一类别下的数据可以称作是关联数据,这些关联数据对应的系统也可以称作是关联的系统,而不同类别中的数据则不是关联数据,通过图8可以看出同一种类的数据之间的距离较近,而不同种类下的数据之间的距离则较远。例如,第一监控子系统产产生的第一目标数据与第二监控子系统产生的第二目标数据同属于301,此时表明第一监控子系统与第二监控子系统之间是相互关联的,即第一监控子系统与第二监控子系统之间的关联度大于关联度阈值;又如,第一监控子系统产生的第一目标数据属于301,而第二监控子系统产生的第二目标数据属于302,此时表明第一目标数据与第二目标数据之间的关联性较小,故第一监控子系统和第二监控子系统之间不是相互关联的。
[0105]
在一些实施方式中,样本数据集可以包括业务数据,业务数据可以是第一监控子系统在执行某一业务的过程中所产生的数据,其可以包括错误码,延时等各个维度的数据,利用业务数据实现对机器学习模型的更新,此时的机器学习模型可以通过业务数据对不同业务进行划分。作为另一种方式,样本数据集也可以包括基础数据,基础数据可以是业务系统对应的环境相关参数,即基础数据可以包括操作系统的详细数据,如cpu使用率、包量大小等。本发明实施例可以分别利用业务数据和基础数据对机器学习进行训练,而后根据统一聚类下系统的相关权重系数计算出每个监控子系统之间的关联程度,即获取到每个子系统的错误趋势。
[0106]
步骤s340:输出与所述第二监控子系统关联的预警信息。
[0107]
本发明实施例提供的数据监控方法在接收到第一监控子系统发送的目标数据时,首先可以确定第一监控子系统发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常,如果第一监控子系统发送的目标数据符合预设规则,则根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统关联的第二监控子系统,最后可以输出与第二监控子系统关联的预警信息。如此,报警子系统在确定第一监控子系统存在问题时,可以通过第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性获取与其关联的第二监控子系统,并输出与第二监控子系统关联的预警信息,通过该预警信息可以加快问题排查的进度。同时,本发明实施例通过利用机器引入机器学习可以对历史数据进行训练,进而可以预测全链路监控系统中的调用关系和依赖关系。另外,本发明实施例通过利用机器学习可以更加快速有效的获取到与第一监控子系统关联的第二监控子系统,其在一定程度上可以使问题排查更加智
能化,即在一个监控子系统出现问题时,能及时预测相关联的系统是否会出现问题。
[0108]
请参照图9,图9示出了本技术另一实施例提供的一种数据监控方法的流程示意图,该方法可以应用于全链路监控系统的第一监控子系统,所述全链路监控系统还包括报警子系统。该方法可以包括步骤s410至步骤s430。
[0109]
步骤s410:当获取到业务请求时,执行所述业务请求,得到所述业务请求对应的链路数据。
[0110]
本发明实施例中,第一监控子系统可以包括监控单元和业务单元,其中,监控单元可以是agent监控接口,agent是以服务为单位的每个单元的上报数据的通道,其可以包括每个监控子系统的服务数据,agent对应的数据采用异构化,如支持http+json,tcp+json等,异构化数据指的是不同格式的数据,即异构化数据具有多样化。
[0111]
作为一种方式,第一监控子系统可以通过所述监控单元与报警系统进行连接,第一监控子系统对应的业务单元在获取到业务请求时可以执行对应业务操作,在此基础上会产生该业务请求对应的链路数据,并对所述链路数据进行标准化,得到目标数据,即进入步骤s420。另外,业务请求可以是用户输入的请求命令,也可以是其他系统调用第一监控子系统所产生的调用命令等。
[0112]
步骤s420:对所述链路数据进行标准化,得到目标数据。
[0113]
在一些实施方式中,第一监控子系统中的监控单元在获取到链路数据后,其也可以对该链路数据进行标准化,得到目标数据。通过上述介绍可以知道,全链路监控系统中业务很多,如果各个业务没有统一的数据收集的地方,将会造成数据散落在各个系统中,同时会造成数据规整不统一,也就无法做到统一的全链路监控系统,所以本发明实施例通过利用监控单元(agent)对链路数据进行标准化,其在一定程度上可以统一所有不同类型的数据。数据标准化的规则可以是用户预先配置的,不同的监控子系统对应的监控单元所采用的数据标准化操作是相同的。例如,第一监控子系统a包括监控单元a和业务单元a,第二监控子系统b包括监控单元b和业务单元b,当监控单元a获取到业务单a对应的执行数据a后,其可以采用数据标准化准则o对数据a进行标准化,同时当监控单元b获取到业务单b对应的执行数据b后,其可以采用数据标准化准则o对数据b进行标准化。可以看出,第一监控子单元a和第二监控子单元在进行数据标准化时所采用的标准化规则是相同,如此便可以实现对数据的统一。
[0114]
在另一些实施方式中,第一监控子系统的监控单元在确定业务单元执行完对应的业务请求后,可以生成与链路数据对应的数据标识(traceid)、ip地址以及sdk版本等。数据标识可以是调用当前业务所产生的位置id标识符,通过该数据标识报警子系统可以确定出所述目标数据产生的时间,以及其在产生过程中所经历的路径有哪些。换句话说,报警子系统通过利用所述数据标识可以查看目标数据完整的调用链,而当目标数据在调用过程中出现问题,则通过所述数据标识可以在第一时间定为到问题现场。综上,数据标识可以用于获取关联系统,如获取到第一监控子系统对应的数据标识后,报警子系统可以将所述数据标识输入至机器学习网络,以此获取到与所述第一监控子系统对应的第二监控子系统。
[0115]
在另一些实施方式中,为了避免生成的数据标识之间存在冲突,第一监控子系统在获取到链路数据之后可以通过利用监控单元生成与该链路数据对应的数据标识,具体的,通过第一监控子系统首先可以获取所述链路数据对应机器的ip字符串,作为第一字符
串,然后获取所述链路数据对应进程的字符串,作为第二字符串;确定所述链路数据产生的时间,将该时间对应的字符串作为第三字符串;基于所述第一字符串、第二字符串、第三字符串、自增号以及预设符号生成所述链路数据对应的数据标识。作为另一种方式,第三字符串可以为42比特,用于表示所述目标数据对应的毫秒数,所述自增号为15比特,用于作为毫秒内的流水号。
[0116]
在一个具体的实施方式中,第一字符串可以是4字节字符串;链路数据对应进程的第二字符串可以是一个long行数据组成的6字节字符串,其中,long型的id使用的是预留6bit数据;第三字符串可以是42bit的毫秒数组成的字符串;自增号可以是15bit毫秒内的流水号,意味着每个节点在每毫秒可以产生2^15个traceid,即本发明实施例在一毫秒内可以产生32768个数据,如此在一定程度上可以避免产生数据标识发生冲突。为了更好的理解数据标识的产生过程,本发明实施例给出了如图10所示的数据标识示意图。从图10可以看出每个数据标识可以包括4个字节的机器ip、6bit为0的预留字节、42bit毫秒字节以及15bit的自增号,最后还有一个符号位,该符号位为0。第一监控子系统在获取到所数据标识后,可以将该数据标识与目标数据一起传输至报警子系统,以指示报警子系统利用所述数据标识和目标数据对机器学习模型进行更新。
[0117]
步骤s430:将所述目标数据发送至所述报警子系统,指示所述报警子系统确定所述目标数据是否符合预设规则。
[0118]
本发明实施例提供的数据监控方法当获取到业务请求时,第一监控子系统可以对应执行该业务请求,得到所述业务请求对应的链路数据,然后对该链路数据进行标准化,以此得到目标数据,最后第一监控系统可以将其获取的目标数据发送到报警子系统,并指示该报警子系统确定目标数据是否符合预设规则。本发明通过利用第一监控子系统可以实现对链路数据的标准化,且实现方式简单易操作,更符合用户的实际需求。另外,本发明实施例通过获取毫秒数生成数据标识,其在一定程度上可以避免生成数据发生冲突,并且本发明实施例通过简单有效的方式可以实现对数据的标准化,进而可以使不同系统下的数据能够得到统一。
[0119]
请参照图11,图11示出了本技术又一实施例提供的一种数据监控方法的流程示意图,该方法可以应用于全链路监控系统的第一监控子系统,所述全链路监控系统还包括报警子系统。该方法可以包括步骤s510至步骤s540。
[0120]
步骤s510:当获取到业务请求时,执行所述业务请求,得到所述业务请求对应的链路数据。
[0121]
步骤s520:对所述链路数据进行标准化,得到目标数据。
[0122]
在一些实施方式中,第一监控子系统在获取到目标数据后,其可以确定是否接收到数据上传指令,该数据上传指令用于指示第一监控子系统发送器所产生的所有目标数据至报警子系统,当第一监控子系统接收到数据上传指令时,根据该数据上传指令将目标数据发送至报警子系统,即进入步骤s530。当第一监控子系统未接收到数据上传指令时,确定第一监控子系统是否为指定类型的业务系统,如果属于指定类型的业务系统,则将目标数据和数据标识发送到报警子系统,即进入步骤s540。
[0123]
步骤s530:当接收到数据上传指令时,根据所述数据上传指令获取所述目标数据,并将所述目标数据发送至所述报警子系统。
[0124]
本发明实施例中,数据上传指令可以是用户通过报警子系统的配置单元预先输入的,也可以是用户在确定第一监控子系统执行业务请求时,所输入的数据上传指令,第一监控子系统在接收到该数据上传指令时,其可以将执行业务请求所产生的数据均上传至报警子系统。配置单元可以分别与第一监控子系统的监控单元以及报警子系统的告警单元、机器学习单元连接,用户可以通过该配置单元下发数据上传指令至第一监控子系统的监控单元,该监控单元接收到数据上传指令后,即可将其产生的目标数据发送至报警子系统的数据存储单元。
[0125]
步骤s540:当未接收到所述数据上传指令时,确定所述第一监控子系统是否为指定类型的业务系统,若属于指定类型的业务系统,则将所述目标数据发送至所述报警子系统。
[0126]
在一些实施方式中,指定类型的业务系统可以是用户根据业务系统的功能设置的,指定类型的业务系统在全链路监控系统中所起的作用是非常重要的,其也可以是故障发生机率比较的业务系统。当确定第一监控子系统是指的类型的业务系统时,本发明实施例同样也可以将第一监控子系统根据业务请求所产生的目标数据均上传至报警子系统。其中,目标数据可以包括第一监控子系统的名称、当前正确数、错误数、cpu以及内存等数据。
[0127]
作为另一种方式,目标数据可以包括异常数据,如果第一监控子系统不属于指定类型的业务系统,则可以仅将目标数据中的异常数据发送至所述报警子系统,其中,异常数据可以是第一监控子系统的错误量、错误码等相关信息。换句话说,在确定未接收到数据上传指令且第一监控子系统不属于指定类型的业务系统时,本发明实施例可以仅上传目标数据中的异常数据,而非异常数据则不需要上传,即正常的日志数据不需要发送至报警子系统,所述异常数据也可以称为标准数据。
[0128]
在另一些实施方式中,为了更好的实现数据的上传第一监控子系统可以根据报警子系统的配置单元发送的数据上传规则来对应发送目标数据。第一监控子系统在确定发送的数据为目标数据时,其可以确定是否接收到用户通过配置单元输入的数据上传类型的配置指令,如果接收到,则根据配置单元传输的配置指令上传数据。里如,用户针对目标数据a输入的配置指令是“按照udp包发送数据”,此时,第一监控子系统则可以按照udp包发送数据。如果未接收到用户输入的配置指令,本发明实施例则可以确定第一监控子系统是否为指定类型的第一监控子系统,所述指定类型的第一监控子系统指的是对安全性要求比较高的系统,若第一监控子系统为指定类型的第一监控子系统,则按照tcp的方式发送数据。例如,第一监控子系统为支付类型的系统,此时,就可以通过tcp方式上报数据。
[0129]
本发明实施例提供的数据监控方法当获取到业务请求时,第一监控子系统可以对应执行该业务请求,得到所述业务请求对应的链路数据,然后对该链路数据进行标准化,以此得到目标数据,最后第一监控系统可以将其获取的目标数据和该目标数据对应的数据标识发送到报警子系统,并指示该报警子系统确定目标数据是否符合预设规则。本发明通过利用第一监控子系统可以实现对链路数据的标准化,且实现方式简单易操作,更符合用户的实际需求。另外,本发明实施例通过利用监控单元对目标数据进行选择性发送,其在一定程度上可以提高全链路监控系统的性能,即避免上传不必要的数据。
[0130]
请参照图12,图12示出了本技术一实施例提供的一种数据监控方法的交互流程示意图,该方法可以应用于全链路监控系统,所述全链路监控系统包括第一监控子系统、第二
监控子系统和报警子系统。该方法可以包括步骤s610至步骤s660。
[0131]
步骤s610:当获取到业务请求时,利用所述第一监控子系统执行所述业务请求,得到所述业务请求对应的链路数据。
[0132]
步骤s620:对所述链路数据进行标准化,得到目标数据。
[0133]
步骤s630:利用所述第一监控子系统将所述目标数据发送至所述报警子系统。
[0134]
步骤s640:利用所述报警子系统确定所述第一监控子系统发送的目标数据是否符合预设规则。
[0135]
步骤s650:若所述第一监控子系统发送的目标数据符合预设规则,则根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与所述第一监控子系统关联的第二监控子系统。
[0136]
步骤s660:利用所述报警子系统输出与所述第二监控子系统关联的预警信息。
[0137]
为了更清楚的理解第一监控子系统、第二监控子系统和报警子系统的关系,本发明实施例给出了如图13所示的系统架构图,通过图13可以看出全链路监控系统可以包括第一监控子系统810、第二监控子系统830以及报警子系统820。第一监控子系统810可以包括监控单元811和业务单元812,监控单元811在业务单元812获取到目标数据后可以为其对应配置数据标识,而后其可以将目标数据发送至报警子系统820中的数据存储单元821。另外,全链路监控及系统还包括第二监控子系统830,所述第二监控子系统同样可以包括监控单元831和业务单元832,第二监控子系统830的与报警子系统的关系类似,这里就不进行一一赘述了。
[0138]
在一些实施方式中,报警子系统820的数据存储单元821在获取到监控子系统发送的目标数据后,其可以对目标数据进行切分存储,如此可以方便数据的分析与管理。另外,数据存储单元821可以与监控单元822通过有线或者无线的方式连接,将数据存储单元821存储的目标数据发送至预警单元/报警单元822后,预警单元/报警单元822可以确定目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常,若符合预设规则,则输出预警信息。
[0139]
在另一些实施方式中,当预警单元/报警单元822确定目标数据符合预设条件后,其可以将该目标数据作为历史数据发送至机器学习单元823,以实现对机器学习单元823中机器学习模型的更新。同时预警单元/报警单元822也可以将目标数据发送至机器学习单元823,以通过该机器学习单元823获取与第一监控子系统810关联的第二监控子系统830,并输出预警信息。另外,全链路监控系统也可以通过配置单元824下发不同的配置信息至第一监控子系统810、第二监控子系统830或者是告警单元822和机器学习平台823,以方便用户对全链路监控系统进行更好的控制。
[0140]
本发明实施例提供的数据监控方法通过结合报警子系统、第一监控子系统以及第二监控子系统可以更快的实现错误的定位,具体的,首先第一监控子系统在获取到业务请求时,其可以对应执行该业务请求,得到所述业务请求对应的链路数据,同时第一监控子系统还可以对该链路数据进行标准化,以此得到目标数据,在此基础上第一监控子系统可以将获取的目标数据发送到报警子系统,报警子系统接收到目标数据后,首先可以确定所述第一监控子系统发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常,若第一监控子系统发送的目标数据符合预设规则,报警子系统则可以根
据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与第一监控子系统关联的第二监控子系统,最后可以输出与所述第二监控子系统关联的预警信息。本发明通过结合第一监控子系统和报警子系统不仅可以实现对链路数据的标准化,且可以通过第一监控子系统对第二监控子系统进行预警,从而可以提高问题排查的效率。
[0141]
请参阅图14,其示出了本技术实施例提供的一种数据监控装置的结构框图。该装置700可以包括:接收模块710、第一确定模块720、第二确定模块730以及输出模块740。
[0142]
其中,接收模块710,用于接收所述第一监控子系统发送的目标数据。
[0143]
第一确定模块720,用于确定所述第一监控子系统发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统发生异常。
[0144]
可选的,第一确定模块720还用于统计预设时间段内所述目标数据中错误码的个数,当所述错误码的个数大于错误阈值时,确定所述目标数据符合预设规则。
[0145]
可选的,目标数据包括多个子链路数据,第一确定模块720还用于获取每个所述子链路数据对应的延时,并确定所述延时是否位于目标延时区间;若所述延时位于目标延时区间,则确定所述目标数据符合预设规则。
[0146]
可选的,第一确定模块720还用于统计所述延时位于所述目标延时区间的个数,并确定该个数是否大于数量阈值;若大于数量阈值,则确定所述目标数据符合预设规则。
[0147]
可选的,第一确定模块720还用于将所述目标数据输入至机器学习模型,利用所述机器学习模型确定与所述第一监控子系统关联的第二监控子系统,所述机器学习模型用于预先根据多个监控子系统的样本数据集之间的关联性确定各个监控子系统之间的关联性。
[0148]
可选的,第一确定模块720还用于获取多个监控子系统的历史数据,并利用数据过滤规则对所述多个监控子系统的历史数据进行过滤,得到所述多个监控子系统的样本数据集。
[0149]
可选的,第一确定模块720还用于获取每个所述监控子系统的每个所述历史数据对应的数据错误量,从每个所述监控子系统的所述多个历史数据中选出数据错误量大于错误阈值的历史数据,并将所述数据错误量是否大于错误阈值的所述历史数据作为该监控子系统的样本数据集。
[0150]
第二确定模块730,用于若所述第一监控子系统发送的目标数据符合预设规则,则根据所述第一监控子系统的目标数据与其他监控子系统发送的数据之间的关联性,确定与所述第一监控子系统关联的第二监控子系统。
[0151]
输出模块740,用于输出与所述第二监控子系统关联的预警信息。
[0152]
可选的,第一监控子系统发送的目标数据可以为第一目标数据,输出模块740还用于获取所述第二监控子系统对应的第二目标数据,若所述第二监控子系统对应的第二目标数据符合预设规则,则输出与所述第二监控子系统关联的预警信息。
[0153]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0154]
请参阅图15,其示出了本技术实施例提供的一种全链路监控系统的结构框图,全链路监控系统800包括第一监控子系统810、第二监控子系统830和报警子系统820。
[0155]
第一监控子系统810,用于当获取到业务请求时,执行所述业务请求,得到所述业务请求对应的链路数据,对所述链路数据进行标准化,得到目标数据,将所述目标数据发送
至所述报警子系统820。
[0156]
可选地,述目标数据是在预设时间段内运行所述第一监控子系统产生的所有数据,第一监控子系统810还用于当接收到数据上传指令时,根据所述数据上传指令获取所述目标数据,并将所述目标数据发送至所述报警子系统820;当未接收到所述数据上传指令时,确定所述第一监控子系统810是否为指定类型的业务系统,若属于指定类型的业务系统,则将所述目标数据发送至所述报警子系统820。
[0157]
可选地,第一监控子系统810还用于若所述第一监控子系统810不属于指定类型的业务系统,则将所述目标数据中的所述异常数据发送至所述报警子系统820。
[0158]
报警子系统820,用于确定所述第一监控子系统810发送的目标数据是否符合预设规则,所述预设规则用于表征所述第一监控子系统810发生异常,若所述第一监控子系统810发送的目标数据符合预设规则,则根据所述第一监控子系统810的目标数据与其他监控子系统发送的数据之间的关联性,确定与所述第一监控子系统810关联的第二监控子系统830,并利用所述报警子系统820输出与所述第二监控子系统830关联的预警信息。
[0159]
在本技术所提供的几个实施例中,所显示或讨论的模块相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0160]
另外,在本技术各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
[0161]
请参考图16,其示出了本技术实施例提供的一种电子设备900的结构框图。该电子设备900可以是上述的报警子系统。本技术中的电子设备900可以包括一个或多个如下部件:处理器910、存储器920、以及一个或多个程序,其中一个或多个程序可以被存储在存储器920中并被配置为由一个或多个处理器910执行,一个或多个程序配置用于执行如前述方法实施例所描述的方法。
[0162]
处理器910可以包括一个或者多个处理核。处理器910利用各种接口和线路连接整个电子设备900内的各个部分,通过运行或执行存储在存储器920内的指令、程序、代码集或指令集,以及调用存储在存储器920内的数据,执行电子设备900的各种功能和处理数据。可选地,处理器910可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器910可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器910中,单独通过一块通信芯片进行实现。
[0163]
存储器920可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory)。存储器920可用于存储指令、程序、代码、代码集或指令集。存储器920可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等。存储数据区还可以存储终端100在使用中所创建的数
据(比如待识别图像、编码信息)等。
[0164]
请参考图17,其示出了本技术实施例提供的一种计算机可读存储介质1000的结构框图。该计算机可读介质1000中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。
[0165]
计算机可读存储介质1000可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质800包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。计算机可读存储介质1000具有执行上述方法中的任何方法步骤的程序代码1010的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码1010可以例如以适当形式进行压缩。
[0166]
此外,本技术实施例还提供一种计算机程序产品或者计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质(如,1000)中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术上述实施例提供的数据监控方法。
[0167]
最后应说明的是:以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1