发明内容
本申请实施例提供了一种数据处理方法、***、计算机及可读存储介质,可以提高对数据处理的效率及数据采集的性能。
本申请实施例一方面提供了一种数据处理方法,应用于中央集群,该中央集群包括收发组件、协调写入组件及数据库组件,该方法包括:
通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;
基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;
基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;
将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。
本申请实施例一方面提供了一种数据处理装置,应用于中央集群,该中央集群包括收发组件、协调写入组件及数据库组件,该装置包括:
指标采集模块,用于通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;
数据推送模块,用于基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;
数据转换模块,用于基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据;
数据压缩模块,用于对转换指标数据进行归并处理,得到存储指标数据;
数据存储模块,用于将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。
其中,该收发组件包括指标代理组件及监控收集组件;指标代理组件集成有第一数据推送功能,监控收集组件集成有第二数据推送功能;
该指标采集模块,包括:
连接建立单元,用于通过收发组件所包括的指标代理组件,与边缘集群建立网络长连接;
指标采集单元,用于通过网络长连接接收边缘集群发送的采集指标数据;
该数据推送模块,包括:
第一推送单元,用于基于指标代理组件的第一数据推送功能,将采集指标数据推送至监控收集组件;
数据聚合单元,用于基于监控收集组件获取采集指标数据的指标信息,获取指标聚合属性及指标转换算法,对与指标聚合属性相匹配的指标信息所对应的采集指标数据,执行指标转换算法,得到预聚合指标数据;
第二推送单元,用于基于监控收集组件的第二数据推送功能,向协调写入组件发送远程写入请求,基于远程写入请求将预聚合指标数据推送至协调写入组件。
其中,该指标采集单元,包括:
数据接收子单元,用于通过网络长连接接收边缘集群发送的待处理指标数据;
数据归并子单元,用于基于指标代理组件获取待处理指标数据的指标属性标签,将具有相同的指标属性标签的待处理指标数据进行归并处理,得到采集指标数据;
该第一推送单元,包括:
队列缓存子单元,用于基于指标代理组件将采集指标数据缓存至待发送指标队列中;
队列推送子单元,用于通过指标代理组件的第一数据推送功能及待发送指标队列,将采集指标数据推送至监控收集组件。
其中,该指标采集模块,包括:
随机生成单元,用于通过收发组件与边缘集群中的服务端点建立连接,获取服务端点的端点信息,根据端点信息生成连接随机数;
连接匹配单元,用于获取连接建立范围,若连接随机数属于连接建立范围,则接收边缘集群中的服务端点发送的采集指标数据。
其中,该数据压缩模块,包括:
降采样单元,用于对转换指标数据进行降采样处理,得到降采样指标数据;
指标归并单元,用于获取转换指标数据的转换存储期限,将具有相同的转换存储期限的降采样指标数据进行归并处理,得到存储指标数据。
其中,数据库组件的数量为N,N为正整数;
该数据存储模块,包括:
哈希生成单元,用于获取存储指标数据的存储指标名称及存储指标属性标签,生成存储指标名称及存储指标属性标签对应的存储哈希值;
哈希存储单元,用于根据存储哈希值确定存储分片标识,将存储指标数据写入存储分片标识对应的目标数据库组件中;目标数据库组件属于N个数据库组件。
其中,该数据存储模块,包括:
冷热分离单元,用于基于数据库组件对存储指标数据进行冷热分析处理,得到存储指标数据中所包括的热指标数据及冷指标数据;
冷热存储单元,用于获取存储磁盘中的热数据存储区域及冷数据存储区域,将热指标数据写入热数据存储区域,将冷指标数据写入冷数据存储区域。
其中,该指标采集模块,包括:
指标筛选单元,用于通过收发组件接收边缘集群发送的初始指标数据,获取待采集指标类型,从初始指标数据中获取待采集指标类型对应的指标数据,得到采集指标数据。
其中,中央集群还包括指标查询组件;数据库组件的数量为N,N为正整数;该装置还包括:
指标查询模块,用于接收用户设备发送的指标查询信息,基于指标查询信息向指标查询组件发送指标查询请求;指标查询请求包括指标查询信息;
请求分片模块,用于基于指标查询组件解析指标查询信息,将指标查询请求拆分为M个分片查询请求;M为正整数;
组件确定模块,用于基于M个分片查询请求,从N个数据库组件中确定查询数据库组件;
分片获取模块,用于从查询数据库组件中获取M个分片查询请求分别对应的查询指标分片数据;
结果生成模块,用于将M个查询指标分片数据进行整合,得到指标查询结果,将指标查询结果发送至用户设备。
其中,中央集群还包括指标可视化组件;
该指标查询模块,包括:
信息接收单元,用于基于指标可视化组件的可视化组件地址,接收用户设备发送的指标查询信息;
语句获取单元,用于获取指标查询组件的查询组件地址,基于查询组件地址建立监控面板,从监控面板中获取指标查询语句;
请求发送单元,用于根据指标查询语句向指标查询组件发送指标查询请求。
其中,指标查询信息包括M个分片查询请求分别对应的分片查询指标名称及分片查询指标属性标签;
该组件确定模块,包括:
哈希确定单元,用于根据M个分片查询请求分别对应的分片查询指标名称及分片查询指标属性标签,获取M个分片查询请求分别对应的分片查询哈希值;
组件确定单元,用于获取M个分片查询哈希值分别对应的分片查询标识,根据M个分片查询标识,从N个数据库组件中确定k个查询数据库组件;k为小于或等于M的正整数。
其中,该结果生成模块,包括:
数据整合单元,用于将M个查询指标分片数据进行整合,得到指标查询数据;
结果生成单元,用于根据指标查询信息建立查询坐标,将查询坐标及指标查询数据进行组合,得到指标查询结果;
结果发送单元,用于将指标查询结果发送至用户设备,以使用户设备显示指标查询结果。
本申请实施例一方面提供了一种数据处理***,该数据处理***包括收发节点、协调写入节点及数据库节点;
收发节点,用于接收边缘集群发送的采集指标数据;收发节点中集成有数据推送功能;
收发节点,还用于基于数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入节点;
协调写入节点,用于将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;
协调写入节点,还用于将存储指标数据写入数据库节点中;
数据库节点,用于将存储指标数据写入存储磁盘。
本申请实施例一方面提供了一种计算机设备,包括处理器、存储器、输入输出接口;
处理器分别与存储器和输入输出接口相连,其中,输入输出接口用于接收数据及输出数据,存储器用于存储计算机程序,处理器用于调用该计算机程序,以使包含该处理器的计算机设备执行本申请实施例一方面中的数据处理方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行,以使得具有该处理器的计算机设备执行本申请实施例一方面中的数据处理方法。
本申请实施例一方面提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例一方面中的各种可选方式中提供的方法。
实施本申请实施例,将具有如下有益效果:
在本申请实施例中,方案应用于中央集群,该中央集群包括收发组件、协调写入组件及数据库组件。其中,本申请通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。通过以上过程,在中央集群中集成了收发组件、协调写入组件及数据库组件等,并在收发组件中集成数据推送功能,使得该收发组件可以对获取到的数据进行压缩,以减少数据量,并将压缩后的数据推送至协调写入组件,可以更为高效地实现数据的传输,有利于性能优化,同时将得到的存储指标数据写入数据库组件中,基于数据库组件的特性使得存储可扩展,提高数据的处理效率。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
可选的,本申请可以采用云技术及区块链技术等实现数据的传输及存储等。
其中,云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储***(以下简称存储***)是指通过集群应用、网格技术以及分布存储文件***等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储***。
目前,存储***的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件***上,文件***将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(ID,ID entity)等额外的信息,文件***将每个对象分别写入该逻辑卷的物理存储空间,且文件***会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件***能够根据每个对象的存储位置信息让客户端对数据进行访问。
存储***为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(RAID,Redundant Array of Independent Disk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。本申请可以基于上述的云存储技术实现对采集到的指标数据的存储。
可选的,由于在本申请中,包括中央集群及边缘集群,该边缘集群可以包括一个或至少两个服务端点,每个服务端点中可能会产生较多的指标数据,因此,本申请也可以基于大数据实现对指标数据的处理。其中,大数据(Big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
进一步地,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
本申请可以基于云技术及区块链技术,实现对指标数据的处理。本申请可以应用于云游戏领域,对云游戏所产生的指标数据进行监测,云游戏(Cloud gaming)又可称为游戏点播(gaming on demand),是一种以云计算技术为基础的在线游戏技术。云游戏技术使图形处理与数据运算能力相对有限的轻端设备(thin client)能运行高品质游戏。在云游戏场景下,游戏并不在玩家游戏终端,而是在云端服务器中运行,并由云端服务器将游戏场景渲染为视频音频流,通过网络传输给玩家游戏终端。玩家游戏终端无需拥有强大的图形运算与数据处理能力,仅需拥有基本的流媒体播放能力与获取玩家输入指令并发送给云端服务器的能力即可。可选的,本申请还可以应用于应用程序监测领域,监测应用程序中所产生的指标数据等,在此不做限制。其中,该应用程序可以是任意一种应用,如视频应用程序、文件编辑应用程序及音乐应用程序等。
在本申请实施例中,请参见图1,图1是本申请实施例提供的一种数据处理的网络交互架构图,本申请实施例可以由中央集群101实现。其中,该中央集群101可以是一种计算机设备,是指关联的应用程序所在的中央服务器组成的集群,可以部署与应用程序相关的服务,用于管理一个或多个边缘集群,可以管理各个边缘集群中的服务端点,可以向边缘集群提供服务,该中央集群101可以与边缘集群102进行数据交互,该边缘集群102可以包括一个或至少两个服务端点,如服务端点102a、服务端点102b及服务端点102c等,每个服务端点可以认为是一个边缘节点,其中,边缘集群102是指通过将服务部署到更靠近用户的机房/节点,部署服务的机房/节点称为服务端点或边缘节点,根据这些边缘节点组成的集群。中央集群101可以从任意一个服务端点中获取采集指标数据,该采集指标数据为服务端点中所产生的指标数据,或者是由服务端点监测到的指标数据。中央集群101可以对获取到的采集指标数据进行压缩处理及转换等,得到存储指标数据,并将该存储指标数据写入中央集群所包括的数据库组件中。进一步地,中央集群101可以接收用户设备(如用户设备103a、用户设备103b或用户设备103c等)发送的指标查询信息,基于该指标查询信息从数据库组件中获取到指标查询结果,将该指标查询结果发送至该用户设备。
具体的,请参见图2,图2是本申请实施例提供的一种数据处理架构图。如图2所示,该数据处理***包括中央集群201、边缘集群202及用户设备203,其中,该中央集群201包括收发组件2011、协调写入组件2012、数据库组件2013、指标查询组件2014及指标可视化组件2015,其中,该边缘集群202可以包括一个或至少两个服务端点。
进一步地,可以参见图3,图3是本申请实施例提供的一种数据处理场景示意图。如图3所示,中央集群301可以通过收发组件接收边缘集群302发送的采集指标数据,该收发组件中集成有数据推送功能,基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件。基于协调写入组件对预聚合指标数据进行格式转换,具体是将该预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据。进一步地,中央集群301可以将该存储指标数据写入数据库组件中,可以基于该数据库组件将存储指标数据写入存储磁盘。通过以上过程,在中央集群中集成了收发组件、协调写入组件及数据库组件等,并在收发组件中集成数据推送功能,使得该收发组件可以对获取到的数据进行压缩,以减少数据量,并将压缩后的数据推送至协调写入组件,可以更为高效地实现数据的传输,有利于性能优化,同时将得到的存储指标数据写入数据库组件中,基于数据库组件的特性使得存储可扩展,提高数据的处理效率。
进一步地,中央集群301可以接收用户设备303发送的指标查询信息,基于指标查询信息向指标查询组件发送指标查询请求,该指标查询请求包括指标查询信息。中央集群301可以基于指标查询组件解析指标查询信息,将指标查询请求拆分为M个分片查询请求,M为正整数。基于M个分片查询请求,从N个数据库组件中获取M个分片查询请求分别对应的查询指标分片数据,将M个查询指标分片数据进行整合,得到指标查询结果,将指标查询结果发送至用户设备303。
可以理解的是,本申请实施例中所提及的中央集群、边缘集群及用户设备均可以是一种计算机设备,其中,中央集群可以是由一个计算机设备或至少两个计算机设备组成,边缘集群可以是由一个计算机设备或至少两个计算机设备组成,本申请实施例中的计算机设备包括但不限于终端设备或服务器。换句话说,计算机设备可以是服务器或终端设备,也可以是服务器和终端设备组成的***。其中,以上所提及的终端设备可以是一种电子设备,包括但不限于手机、平板电脑、台式电脑、笔记本电脑、掌上电脑、车载设备、增强现实/虚拟现实(Augmented Reality/Virtual Reality,AR/VR)设备、头盔显示器、智能电视、可穿戴设备、智能音箱、数码相机、摄像头及其他具备网络接入能力的移动互联网设备(mobileinternet device,MID),或者火车、轮船、飞行等场景下的终端设备等。其中,以上所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式***,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、车路协同、内容分发网络(Content Delivery Network, CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可选的,本申请实施例中所涉及的数据可以存储在计算机设备中,或者可以基于云存储技术对该数据进行存储,在此不做限制。
进一步地,请参见图4,图4是本申请实施例提供的一种数据存储的方法流程图。如图4所示,该方法由中央集群实现,中央集群可以是一种计算机设备,该中央集群可以包括收发组件、协调写入组件及数据库组件等,具体的,该数据存储过程包括如下步骤:
步骤S401,通过收发组件接收边缘集群发送的采集指标数据。
在本申请实施例中,该收发组件中集成有数据推送功能,该边缘集群可以包括一个或至少两个服务端点,中央集群可以通过收发组件接收边缘集群中任意一个服务端点或任意多个(即至少两个)服务端点发送的采集指标数据。其中,该采集指标数据是指采集到的指标所对应的具体数据,该指标包括但不限于每秒的往返时延(Round-Trip Time,RTT)、丢包率及数据更新频率等,可以用于反映应用程序的性能,该采集指标数据是边缘集群中的一个服务端点或任意多个服务端点,从关联的用户设备(即使用应用程序的用户设备)中采集到的指标对应的数据,例如,针对指标“RTT”,边缘集群采集到该指标“RTT”对应的采集指标数据可以是“0.5秒”等。其中,该收发组件可以包括指标代理组件,中央集群可以通过该指标代理组件与边缘集群建立网络长连接,通过网络长连接接收边缘集群发送的采集指标数据。或者,该收发组件包括指标代理组件及监控收集组件,中央集群可以通过收发组件所包括的指标代理组件,与边缘集群建立网络长连接,通过网络长连接接收边缘集群发送的采集指标数据。其中,收发组件是指部署于中央集群,可以从边缘集群中获取数据,并将获取到的数据推送至中央集群中的其他组件的组件,即,该收发组件是指可以接收数据及推送数据的组件;该指标代理组件相当于一个接入网关,如MetricProxy组件,该指标代理组件可以接收边缘集群的传输控制协议(Transmission Control Protocol,TCP)连接,保持与边缘集群之间的连接和心跳,可以接收该边缘集群发送的指标数据,并可以将处理后的指标数据推送至中央集群中的其他组件(如监控收集组件等);该监控收集组件可以认为是集成有预聚合功能的组件,如Prometheus组件,可以接收指标代理组件的指标推送请求,获取指标代理组件推送的采集指标数据,对该采集指标数据进行预聚合处理,可选的,可以将获取到的数据缓存至该监控收集组件中。可选的,该网络长连接是指指标代理组件与边缘集群之间长时间保持的网络连接,可以发送多个数据包,如传输控制协议(TransmissionControl Protocol,TCP)长连接或超文本传输协议(Hypertext Transfer Protocol,HTTP)长连接等,在此不做限制,其中,可以通过心跳保持该网络长连接,具体的,以边缘集群中的一个服务端点为例,该服务端点与指标代理组件之间通过发送心跳数据包,保持服务端点与指标代理组件之间的网络长连接。可选的,由于HTTP长连接每次会有建链断链的开销,因此,为了减少建链断链等带来的开销,提高吞吐量,可以使用除HTTP长连接之外的长连接(如TCP长连接等)建立指标代理组件与边缘集群之间的网络长连接,换句话说,不同协议类型的长连接具有不同的特性,在建立指标代理组件与边缘集群建立网络长连接时,可以获取目标连接特性,获取该目标连接特性所对应的协议类型,基于该协议类型在指标代理组件与边缘集群之间建立网络长连接,其中,该目标连接特性是指根据需要达到的连接效果的需求所确定的特性。例如,若该目标连接特性为建链断链的开销小的特性,则可以将TCP确定为该目标连接特性所对应的协议类型,基于该协议类型在指标代理组件与边缘集群之间建立TCP长连接,使得指标代理组件与边缘集群之间的连接不会经常建链断链,可以减少该用于建链断链的开销;若该目标连接特性为连接维持开销较小的特性,则可以将HTTP确定为该目标连接特性所对应的协议类型,基于该协议类型在指标代理组件与边缘集群之间建立HTTP长连接,使得指标代理组件与边缘集群之间的连接在空闲时可以断开等,在此不做限制。其中,该指标代理组件相当于一个网络接入网关,可以接收边缘集群的网络连接(包括网络长连接及网络短连接等),可以保持与边缘集群之间的网络连接及心跳。
进一步地,中央集群可以通过网络长连接接收边缘集群发送的待处理指标数据;基于指标代理组件获取待处理指标数据的指标属性标签,将具有相同的指标属性标签的待处理指标数据进行归并处理,得到采集指标数据,其中,该指标属性标签用于表示该待处理指标数据对应的指标属性,可以是该待处理指标数据自身的属性标签,如该待处理指标数据对应的单位属性标签(如时间属性标签、距离属性标签或速率属性标签等)等,也可以是该待处理指标数据的关联对象的属性标签,例如,该待处理指标数据是对应用程序等进行监测得到的指标数据,该待处理指标数据的指标属性标签可以是该应用程序在产生待处理指标数据时关联的用户的属性标签,如年龄标签或性别标签等,在此不做限制。边缘集群可以获取待处理指标数据,以及待处理指标数据的指标信息,该指标信息可以包括f个指标属性信息,包括但不限于待处理指标数据的一个或至少两个标签类型的指标属性标签、指标名称及指标采集时间等,f为正整数;边缘集群将获取到的待处理指标数据及该待处理指标数据的指标信息发送至指标代理组件。可选的,边缘集群可以获取应用程序中所产生的应用数据,对该应用数据进行打点处理,得到待处理指标数据,该打点处理是指对应用程序中所产生的应用数据进行整理,也就是将获取到的应用数据中的指标信息及指标数据等进行关联处理。其中,边缘集群可以获取目标指标所对应的待处理指标数据,该目标指标包括但不限于每秒的往返时延(Round-Trip Time,RTT)、丢包率及数据更新频率等。其中,该待处理指标数据可以通过图表、文本或列表等进行表示,如下表1所示:
表1
如上表1所示,表1是待处理指标数据及该待处理指标数据的指标信息的一种表现形式,表1表示中央集群基于指标代理组件接收到待处理指标数据,该待处理指标数据的数量为d个,d为正整数,d个待处理指标数据包括指标数据1、指标数据2及指标数据3等,其中,指标数据1的指标名称为RTT,指标属性标签为“属性标签a1及属性标签b1等”,指标采集时间为采集时间1,…;指标数据2的指标名称为RTT,指标属性标签为“属性标签a2及属性标签b1等”,指标采集时间为采集时间1,…;指标数据3的指标名称为丢包率,指标属性标签为“属性标签a1及属性标签b2等”,指标采集时间为采集时间2,…;指标数据4的指标名称为丢包率,指标属性标签为“属性标签a2及属性标签b1等”,指标采集时间为采集时间1,…。可选的,该待处理指标数据可以通过“<指标名称>{<指标属性标签>=<待处理指标数据>,…}”的格式进行表示,也就是该待处理指标数据可以是以指标名称进行分组表示的,例如,表1中的待处理指标数据可以表示为“<RTT>{<属性标签a1,属性标签b1…>=<指标数据1>,<属性标签a2,属性标签b1…>=<指标数据2>…};<丢包率>{<属性标签a1,属性标签b2…>=<指标数据3>,<属性标签a2,属性标签b1…>=<指标数据4>…}”。其中,指标名称一般用于反映被监控样本的含义,例如,http_request_total用于表示当前***接收到的HTTP请求总量;指标属性标签用于表示当前样本(即待处理指标数据)的特征维度,通过这些维度可以对样本数据进行过滤及聚合等处理。
进一步地,中央集群可以基于指标代理组件获取待处理指标数据的指标属性标签,将具有相同的指标属性标签的待处理指标数据进行归并处理,得到采集指标数据,例如,该指标属性标签包括年龄属性标签及性别属性标签,将具有相同的年龄属性标签及性别属性标签的待处理指标数据进行归并处理,得到采集指标数据,减少指标数据的存储量。其中,以表1中的待处理指标数据为例,得到的采集指标数据可以参见表2所示:
表2
如表1可知,指标数据2与指标数据4具有相同的指标属性标签“属性标签a2及属性标签b1”,将待处理指标数据中的指标数据2及指标数据4进行归并处理,得到采集指标数据,该采集指标数据可以参见表2所示。可选的,中央集群可以基于指标名称及指标属性标签对待处理指标数据进行归并处理,即,将具有相同的指标名称及指标属性标签的待处理指标数据进行归并处理,得到采集指标数据,此时,由于指标数据2及指标数据4的指标名称不同,因此,不会对该指标数据2及指标数据4进行归并处理,该采集指标数据可以通过“<指标名称>{<指标属性标签>=<待处理指标数据,…>,…}”进行表示,其中,“<待处理指标数据,…>”表示一组具有相同的指标名称及指标属性标签的待处理指标数据,在这一情况下,采集指标数据可以如表3所示:
表3
可选的,中央集群可以获取集群资源状态,若该集群资源状态为集群资源充足状态,则中央集群可以直接接收边缘集群中的服务端点发送的采集指标数据;若该集群资源状态为集群资源缺乏状态,则中央集群可以生成边缘集群中的服务端点对应的连接随机数,基于该连接随机数获取该服务端点所发送的采集指标数据。具体的,中央集群可以通过收发组件与边缘集群中的服务端点建立连接,获取服务端点的端点信息,根据端点信息生成连接随机数,该连接随机数是一个用于表示服务端点与中央集群建立连接的随机数,其中,该连接随机数位于随机数区间内的一个随机数,该随机数区间是基于连接建立范围所确定的,也就是说,中央集群可以根据端点信息生成一个位于随机数区间内的连接随机数,用于表示中央集群是否接收该服务端点发送的指标数据。该端点信息可以包括服务端点的端点标识、端点内存空间及端点传输带宽等,中央集群可以根据端点信息中的一个或任意多个元素生成连接随机数。例如,中央集群可以直接采用随机数生成函数,对端点信息中的一个或任意多个元素进行处理,生成连接随机数,如随机函数(rand函数)或随机种子函数(srand)等;或者,中央集群可以获取端点信息中的一个或任意多个元素对应的元素哈希值,对该元素哈希值进行取余计算,得到连接随机数,可选的,可以从元素哈希值中获取指定位置范围处的哈希值,对指定位置范围处的哈希值进行取余计算,得到连接随机数等,在此不做限制。其中,收发组件可以包括指标代理组件,或者可以包括指标代理组件及监控收集组件,两种情况下,中央集群均是通过收发组件中的指标代理组件与边缘集群中的服务端点建立连接,生成连接随机数。可选的,中央集群可以根据端点信息生成连接随机数,或者可以根据端点信息及***网络时间生成连接随机数,或者可以根据端点信息的哈希值生成连接随机数等,在此不做限制。进一步地,获取连接建立范围,其中,该连接建立范围可以认为是一种随机数阈值范围,用于实现百分比丢弃请求,使得中央集群可以对位于连接建立范围的随机数所对应的服务端点发送的指标数据进行处理,对位于连接建立范围外的随机数所对应的服务端点发送的指标数据进行丢弃,具体的,若连接随机数属于连接建立范围,则接收边缘集群中的服务端点发送的采集指标数据;若连接随机数不属于连接建立范围,则获取接收到的边缘集群中的服务端点所发送的历史指标数据,丢弃该历史指标数据,即,丢弃与该连接随机数对应的服务端点相关联的所有指标数据,以保障指标数据的完整性,可选的,可以向边缘集群中的服务端点发送指标推送失败消息。举例来说,中央集群可以基于指标接收比例确定连接建立范围,假定该指标接收比例为70%,该连接随机数的范围为1~100,则该连接建立范围为1~100中的任意连续的70%的数,例如该连接建立范围可以是1~70,即,中央集群可以生成一个位于1~100的该服务端点对应的连接随机数,若该连接随机数属于1~70,则接收边缘集群中的服务端点发送的采集指标数据;若连接随机数不属于1~70,则丢弃与边缘集群中的服务端点所关联的指标数据,可选的,可以向边缘集群中的服务端点发送指标推送失败消息。例如,存在服务端点A及服务端点B,假定服务端点A对应的连接随机数属于连接建立范围,服务端点B对应的连接随机数不属于连接建立范围,则中央集群可以获取该服务端点B所发送的历史指标数据,丢弃该服务端点B所发送的历史指标数据。其中,当服务端点对应的连接随机数不属于连接建立范围时,中央集群可以只丢弃该服务端点发送的历史指标数据,而保持与该服务端点之间的网络连接。通过该过程,可以使得中央集群接收每个服务端点的指标数据的概率相同,同时,可以对各个服务端点按照百分比进行丢弃,使得中央集群的集群资源状态为集群资源缺乏状态时,可以在一定程度上减少需要处理的指标数据,提高中央集群的资源利用效率。
可选的,中央集群可以基于边缘集群的指标推送量,接收边缘集群中的服务端点发送的采集指标数据,其中,该指标推送量是指边缘集群推送到中央集群的指标数据的总量,即,边缘集群推送到中央集群的指标数据所占的资源数量。具体的,中央集群可以监测边缘集群的指标推送量,若该指标推送量小于或等于指标处理量阈值,则中央集群可以接收边缘集群中的服务端点发送的采集指标数据。若该指标推送量大于指标处理量阈值,则表示中央集群接收到的指标数据的数据量超过自己可以处理的最大数据量,可以对获取到的指标数据进行筛选,具体的,可以基于上述中央集群可以通过收发组件与边缘集群中的服务端点建立连接,获取服务端点的端点信息,根据端点信息生成连接随机数,基于连接随机数确定是否接收采集指标数据的过程,以减少中央集群需要进行处理的指标数据的数据量,减少中央集群的资源压力。
可选的,中央集群还可以通过收发组件接收边缘集群发送的初始指标数据,获取待采集指标类型,从初始指标数据中获取待采集指标类型对应的指标数据,得到采集指标数据,其中,该初始指标数据可以认为是由边缘集群直接发送的指标数据。其中,该待采集指标类型用于表示指标代理组件需要接收的指标数据的类型。具体的,中央集群可以通过收发组件接收边缘集群发送的初始指标数据,得到待采集指标类型,从初始指标数据中获取待采集指标类型对应的指标数据,得到待处理指标数据,对待处理指标数据进行归并处理,得到采集指标数据。其中,本申请中的各个指标数据是指中央集群从边缘集群中获取到指标数据后,在不同的组件中进行处理后得到的不同阶段的指标数据,也就是说,不同的指标数据的名称用于表示指标数据在不同阶段,经过不同处理后得到的指标数据的名称。
可选的,为了减少客户端(即边缘集群中的服务端点)接入的复杂性,可以将指标交互逻辑封装成一个指标静态库(lib),该静态数据库会默认收集边缘集群所获取到的各种指标数据,而有些指标类型的指标数据是不必要的,中央集群可以基于待采集指标类型对获取到的初始指标数据进行筛选,以去掉不相关的指标数据,从而减少数据量,减少指标代理组件对指标数据的推送压力。
步骤S402,基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件。
在本申请实施例中,预聚合是指若指标属性标签组合的指标数据的数据量较大,在查询并聚合该指标属性标签对应的指标数据时,会耗时较大,预聚合是指在对指标数据写入前或写入后对该指标属性标签对应的指标数据进行聚合计算,存储为另一个指标名称,以减少查询耗时,并节省资源。其中,该指标数据是指本申请中需要进行预聚合处理的指标数据,如采集指标数据等。
其中,若该收发组件包括指标代理组件,即该指标代理组件集成有数据推送功能,则中央集群可以基于指标代理组件的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件。若该收发组件包括指标代理组件及监控收集组件,则该指标代理组件集成有第一数据推送功能,监控收集组件集成有第二数据推送功能,中央集群可以基于指标代理组件的第一数据推送功能,将采集指标数据推送至监控收集组件。指标代理组件可以自由推送采集指标数据,有利于性能优化。基于监控收集组件获取采集指标数据的指标信息,获取指标聚合属性及指标转换算法,对与指标聚合属性相匹配的指标信息所对应的采集指标数据,执行指标转换算法,得到预聚合指标数据。其中,该指标聚合属性及指标转换算法可以是提前预设的,存储于监控收集组件中。由上述表1至表3所示,指标数据在各个组件中进行传输时会携带对应的指标信息。
其中,该指标聚合属性可以是指标属性标签中的任意一个或任意多个标签类型的指标属性标签,也可以是f个指标属性信息中的任意一个或任意多个指标属性信息,具体的,可以对具有相同的指标聚合属性的采集指标数据执行指标转换算法,得到预聚合指标数据及该预聚合指标数据对应的预聚合指标名称,该指标转换算法可以是均值算法、极大值算法、极小值算法或出现次数最多的统计算法等,在此不做限制,可选的,可以将指标聚合属性及指标转换算法等称为指标预聚合规则,该指标预聚合规则可以根据实际需求进行更新。举例来说,存在一组指标名称为RTT的采集指标数据,假定指标聚合属性为指标属性标签中的性别属性标签,该指标转换算法为均值算法,获取到第一性别属性标签对应的采集指标数据有“1,2,1,0.5”,第二性别属性标签对应的采集指标数据有“2,3,2,3”,对与指标聚合属性相匹配的指标信息所对应的采集指标数据,执行指标转换算法,得到预聚合指标数据,可以得到第一性别属性标签对应的预聚合指标数据为“(1+2+1+0.5)/4=1.125”,第二性别属性标签对应的预聚合指标数据为“(2+3+2+3)/4=2.5”,进一步地,可以获取到第一性别属性标签对应的预聚合指标名称,如“第一性别RTT均值”,以及第二性别属性标签对应的预聚合指标名称,如“第二性别RTT均值”。进一步地,基于监控收集组件的第二数据推送功能,向协调写入组件发送远程写入请求,基于远程写入请求将预聚合指标数据推送至协调写入组件,其中,可以基于监控收集组件对预聚合指标数据进行存储,并基于远程写入请求将预聚合指标数据旁路推送至协调写入组件。
其中,在基于指标代理组件的第一数据推送功能,将采集指标数据推送至监控收集组件时,中央集群可以基于指标代理组件将采集指标数据缓存至待发送指标队列中;通过指标代理组件的第一数据推送功能及待发送指标队列,将采集指标数据推送至监控收集组件。可选的,若采集指标数据的数据量大于或等于数据推送阈值,则基于该数据推送阈值对待发送指标队列中的采集指标数据进行拆分,得到至少两个采集指标数据组,基于第一数据推送功能将至少两个采集指标数据组并行发送(period push)至监控收集组件;若采集指标数据的数据量小于数据推送阈值,则直接通过指标代理组件的第一数据推送功能及待发送指标队列,将采集指标数据推送至监控收集组件,从而提高对指标数据的推送效率。其中,该监控收集组件可以接收指标代理组件的指标推送请求,基于该指标推送请求将接收到的采集指标数据写入指标代理组件,并对该采集指标数据进行预聚合处理,得到预聚合指标数据,将该预聚合指标数据周期性推送至协调写入组件。
步骤S403,基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据。
在本申请实施例中,中央集群可以基于协调写入组件接收监控收集组件发送的远程写入请求,基于该远程写入请求将预聚合指标数据转换成具有目标存储格式的转换指标数据,其中,该目标存储格式是指中央集群中的数据库组件所支持存储的数据格式,例如,假定该数据库组件为M3DB,则该数据库组件对应的目标存储格式为m3格式。进一步地,基于协调写入组件对转换指标数据进行降采样处理,得到降采样指标数据,其中,可以对转换指标数据进行周期性降采样处理,或者可以根据数据库组件对应的降采样方式对转换指标数据进行降采样处理,如m3对应的降采样方式;获取转换指标数据的转换存储期限,将具有相同的转换存储期限的降采样指标数据进行归并处理,得到存储指标数据,其中,该转换存储期限可以是指该转换指标数据的采集时间或产生时间(该转换指标数据对应的采集指标数据的产生时间)等。
步骤S404,将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。
在本申请实施例中,该数据库组件的数量为N,N为正整数。在将存储指标数据写入数据库组件中时,中央集群可以基于协调写入组件获取存储指标数据的存储指标名称及存储指标属性标签,生成存储指标名称及存储指标属性标签对应的存储哈希值,其中,在对指标数据进行预聚合处理、归并处理或转换处理等时,会对指标数据的指标名称及指标属性标签等指标信息进行同步处理。进一步地,根据存储哈希值确定存储分片标识,将存储指标数据写入存储分片标识对应的目标数据库组件中;目标数据库组件属于N个数据库组件。
可选的,可以基于数据库组件对存储指标数据进行冷热分析处理,得到存储指标数据中所包括的热指标数据及冷指标数据,其中,热指标数据是指需要被频繁访问的在线类指标数据,冷指标数据是指不经常访问的指标数据;获取存储磁盘中的热数据存储区域及冷数据存储区域,将热指标数据写入热数据存储区域,将冷指标数据写入冷数据存储区域。通过对存储指标数据进行冷热分析处理,实现对存储指标数据的冷热分离,可以使得该存储指标数据的存储更为规律,便于更好地管理指标数据,可以对不使用的存储指标数据进行清理,从而减少数据库组件的资源使用量。
进一步地,请参见图5,图5是本申请实施例提供的一种数据查询的方法流程图。如图5所示,该方法由中央集群实现,中央集群可以是一种计算机设备,该中央集群还可以包括指标查询组件等,具体的,该数据查询过程包括如下步骤:
步骤S501,接收用户设备发送的指标查询信息,基于指标查询信息向指标查询组件发送指标查询请求。
在本申请实施例中,该中央集群还可以包括指标查询组件,其中,该数据库组件的数量为N,N为正整数。中央集群可以基于指标查询信息向指标查询组件发送指标查询请求,该指标查询请求包括所述指标查询信息。其中,该中央集群还包括指标可视化组件。具体的,中央集群可以基于指标可视化组件的可视化组件地址,接收用户设备发送的指标查询信息;获取指标查询组件的查询组件地址,基于查询组件地址建立监控面板,从监控面板中获取指标查询语句;根据指标查询语句向指标查询组件发送指标查询请求。
具体的,可以参见图6,图6是本申请实施例提供的一种指标查询场景示意图。如图6所示,中央集群可以基于指标可视化组件的可视化组件地址,接收用户设备601发送的指标查询信息,基于该指标查询信息建立监控面板603,基于该监控面板603生成指标查询信息对应的指标查询语句,根据指标查询语句向指标查询组件604发送指标查询请求。
可选的,该指标查询语句也可以是由用户设备生成的。具体的,用户设备可以获取指标可视化组件的可视化组件地址,访问该可视化组件地址,显示可视化组件访问页面,基于该可视化组件访问页面获取指标查询组件的查询组件地址,建立监控面板,获取该监控面板中所配置的查询参数,根据该查询参数生成指标查询语句,基于该指标查询语句向指标可视化组件发送指标查询请求,中央集群基于该指标可视化组件向指标查询组件发送该指标查询请求。
其中,该指标查询语句可以认为是一种查询表达式,该指标查询语句的语句类型是根据数据库组件所确定的,例如,该数据库组件为M3DB组件,则该指标查询语句的语句类型可以是普罗米修斯查询语言类型(PrometheusQuery Language,PromQL)等。
步骤S502,基于指标查询组件解析指标查询信息,将指标查询请求拆分为M个分片查询请求。
在本申请实施例中,中央集群可以基于指标查询组件解析指标查询信息,将该指标查询请求拆分为M个分片查询请求,具体可以根据指标查询信息中所包括的查询指标名称及查询指标属性标签,将指标查询请求拆分为M个分片查询请求,M为正整数。
步骤S503,基于M个分片查询请求,从N个数据库组件中确定查询数据库组件,从查询数据库组件中获取M个分片查询请求分别对应的查询指标分片数据。
在本申请实施例中,中央集群基于M个分片查询请求,并行向数据库组件发起查询,该指标查询信息包括M个分片查询请求分别对应的分片查询指标名称及分片查询指标属性标签。具体的,中央集群可以在指标查询组件中,根据M个分片查询请求分别对应的分片查询指标名称及分片查询指标属性标签,获取M个分片查询请求分别对应的分片查询哈希值;获取M个分片查询哈希值分别对应的分片查询标识,根据M个分片查询标识,从N个数据库组件中确定k个查询数据库组件;k为小于或等于M的正整数。其中,该分片查询哈希值对应的哈希算法与上述图4中的存储哈希值对应的哈希算法相同。进一步地,中央集群可以基于指标查询组件,从k个查询数据库组件中获取M个分片查询请求分别对应的查询指标分片数据(即M个查询指标分片数据),将M个查询指标分片数据发送至指标可视化组件。
步骤S504,将M个查询指标分片数据进行整合,得到指标查询结果,将指标查询结果发送至用户设备。
在本申请实施例中,中央集群可以基于指标可视化组件,将M个查询指标分片数据进行整合,得到指标查询数据;根据指标查询信息建立查询坐标,将查询坐标及指标查询数据进行组合,得到指标查询结果,其中,该指标查询结果可以是由查询坐标与指标查询数据组合得到的图标数据或曲线坐标等,也可以是由指标查询信息及指标查询数据组成的数据等;将指标查询结果发送至用户设备,以使用户设备显示指标查询结果,使得用户设备可以直观地展示查询到的指标查询结果,提高指标数据查询的效果。可选的,若该指标查询语句也可以是由用户设备生成的,则用户设备还可以在监控面板中显示指标查询结果。
上述图4至图5是本申请所提供的一种数据处理过程,包括对指标数据的采集存储及查询等过程,具体的,该方案应用于中央集群,该中央集群包括收发组件、协调写入组件及数据库组件。其中,本申请通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。通过以上过程,在中央集群中集成了收发组件、协调写入组件及数据库组件等,并在收发组件中集成数据推送功能,使得该收发组件可以对获取到的数据进行压缩,以减少数据量,并将压缩后的数据推送至协调写入组件,可以更为高效地实现数据的传输,有利于性能优化,同时将得到的存储指标数据写入数据库组件中,基于数据库组件的特性使得存储可扩展,提高数据的处理效率。
进一步地,可以参见图7,图7是本申请实施例提供的一种数据处理***的架构示意图。如图7所示,该数据处理***包括收发节点、协调写入节点及数据库节点,其中,在图7所示的数据处理***中,该收发节点包括指标代理节点及监控收集节点,该数据处理***是指中央集群对应的***。其中,该数据处理***中的各个节点是指上述中央集群中的各个组件分别对应的节点。其中,图7所示的数据处理***的结构中,对监控收集节点更新的成本(包括时间及精力等)较低,该监控收集节点支持预聚合处理的能力较强,可以提高对监控收集节点的更新效率及预聚合效率。
收发节点,用于接收边缘集群发送的采集指标数据;收发节点中集成有数据推送功能;
收发节点,还用于基于数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入节点;
协调写入节点,用于将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;
协调写入节点,还用于将存储指标数据写入数据库节点中;
数据库节点,用于将存储指标数据写入存储磁盘。
具体的,该边缘集群可以包括一个或至少两个服务端点(Service),该服务端点可以认为是边缘节点,在服务端点与指标代理节点之间建立网络长连接,基于该网络长连接,各个服务端点均可以向指标代理节点批量发送(batch send)采集指标数据。指标代理节点创建一个协程池/线程池,接收采集指标数据,可以将大数据量的采集指标数据切分为多个小请求,将拆分得到的小请求并行推送至监控收集节点,例如,指标代理节点接收到采集指标数据,该采集指标数据的数量为100万个,对采集指标数据进行切分,得到100个小请求,每个小请求包括1万个采集指标数据,基于协程池/线程池将多个小请求并行推送至监控收集节点。其中,该指标代理节点可以是Metric Proxy***,该监控收集节点可以是普罗米修斯(Prometheus)***,该Prometheus提供了一系列的工具集,方便监测和查询服务和应用内部的运行状态。
进一步地,监控收集节点可以向协调写入节点远程写入预聚合指标数据,具体的,监控收集节点可以对接收到的采集指标数据进行预聚合处理,得到多个预聚合指标数据,还可以对预聚合指标数据进行拆分,得到至少两个预聚合推送请求,基于至少两个预聚合推送请求,将预聚合指标数据并行推送至协调写入组件中。可选的,可以对监控收集节点的节点参数进行更新,该节点参数包括但不限于监控收集节点的数据缓存时间及垃圾收集(Garbage Collection,GC)参数等,例如,减少数据缓存时间,该数据缓存时间是指监控收集节点对接收到的指标数据的保留时长,通过减少数据缓存时间,减少监控收集节点的空间占用率,提高监控收集节点的运行效率;还可以调整GC参数,例如,将GC参数置为30,则当检测到第(i+1)次为采集指标数据等分配的内存,比第i次为采集指标数据等分配的内存超过30%,则触发GC功能,进行垃圾收集,以释放监控收集节点的内存,进而提高监控收集节点的运行效率,i为正整数。
其中,该Prometheus***可以参见图8,图8是本申请实施例提供的一种监控收集节点的架构图。如图8所示,监控收集节点可以监测服务发现(Service Discovery),发现需要监控的服务(targets)列表,基于抓取发现服务(Scrape Discovery)功能监控服务,可以基于抓取管理器(Scrape Manager)监控服务的变化,更新抓取服务,并可以基于服务列表抓取指标数据,可选的,该服务列表可以用于表示监控收集节点需要监控的服务端点,监控收集节点可以基于服务列表对获取到的采集指标数据进行筛选。进一步地,该监控收集节点还可以包括读写代理组件,用于读/写数据,其中,监控收集节点可以进行本地存储及远程存储,监控收集节点的本地存储是通过从该监控收集节点的本地磁盘中读/写数据实现的,远程存储是通过从远程读取端点中进行远程读取数据,从远程写入端点中远程写入数据实现的。具体的,监控收集节点可以基于该读写代理组件,对接收到的采集指标数据进行存储,还可以基于该读写代理组件对本地磁盘或远程读取端点中存储的数据进行获取并处理等。进一步地,该监控收集节点在抓取管理器中集成第二数据推送功能,具体的,是在抓取管理器中集成推送接口,基于该推送接口实现第二数据推送功能,将针对采集指标数据进行处理得到的预聚合指标数据推送至协调写入节点,使得监控收集节点可以自由控制指标数据的推送时间及推送规格等,即,监控收集节点可以基于需要,在任意一个时间点实现对预聚合指标数据推送至协调写入组件,同时可以以任意的数据量及推送方式实现对预聚合指标数据的推送,例如,对预聚合指标数据进行全量推送(即数据量为预聚合指标数据的全部),或者进行拆分推送(即数据量为预聚合指标数据拆分后对应的数据量)等;可以将预聚合指标数据并行推送至协调写入节点(即推送方式为并行推送方式),或者将预聚合指标数据串行推送至协调写入节点(即推送方式为串行推送方式)等。
进一步地,该协调写入节点可以是m3Coordinator***,该协调写入节点用于将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据,将存储指标数据写入数据库节点中,对该协调写入节点进行多子进程部署,利用多核,以提高吞吐量,该协调写入节点还可以集成写入工作池策略(writeWorkerPoolPolicy)参数,基于该参数使得协调写入节点可以根据压力增加协程池的大小,从而提高协调写入节点的工作性能。可选的,还可以在协调写入节点向数据库节点写入指标数据时,增加压缩选项,以减少协调写入节点写入到数据库节点的数据量,减少协调写入组件由于出包量过大造成机器打挂(即机器僵住或死机等)的情况,进一步提高协调写入节点的性能。该数据库节点,用于将存储指标数据写入存储磁盘。
其中,该数据处理***还可以包括指标可视化节点及指标查询节点。
指标可视化节点,用于接收用户设备发送的指标查询信息,基于指标查询信息向指标查询节点发送指标查询请求;指标查询请求包括指标查询信息;
指标查询节点,用于解析指标查询信息,将指标查询请求拆分为M个分片查询请求;M为正整数;
该指标查询节点,还用于基于M个分片查询请求,从N个数据库节点中确定查询数据库节点,从查询数据库节点中获取M个分片查询请求分别对应的查询指标分片数据,将M个查询指标分片数据发送至指标可视化节点;
该指标可视化节点,用于将M个查询指标分片数据进行整合,得到指标查询结果,将指标查询结果发送至用户设备。
进一步地,可以参见图9,图9是本申请实施例提供的另一种数据处理***架构示意图。如图9所示,该数据处理***包括收发节点、协调写入节点、数据库节点、指标查询节点及指标可视化节点等,其中,该收发节点包括指标代理节点。其中,数据处理***将协调写入节点集成至指标代理节点中,以减少性能损耗,减轻运维成本。其中,在图9所示的数据处理***的架构中,指标代理节点在获取到采集指标数据,对采集指标数据进行预聚合处理,得到预聚合指标数据,将该预聚合指标数据推送至协调写入节点,即图7中的监控收集节点所实现的功能,在图9所示架构中,是由指标代理节点所实现的。
其中,本申请可以应用于云游戏领域,也可以是对任意一个应用程序进行指标数据采集的场景。举例来说,可以参见图10,图10是本申请实施例提供的一种云游戏部署场景示意图。如图10所示,云游戏架构中存在一个或至少两个边缘集群,每个边缘集群动态启动和销毁h个实例,h为正整数该实例受中央集群的服务进行总体调度和资源分配等,每个实例与应用服务进行交互,该应用服务可以是应用程序服务(Application,App)、H5服务或电脑网页(PC Web)服务等。其中,每个实例中可以包括调度模块、安卓容器模块、音视频编码模块及流媒体传输模块等,其中,该流媒体传输模块可以根据用户实际的网络状态,实时调整流控策略。中央集群可以通过监控该流媒体传输模块的性能和状态,得到云游戏所产生的指标数据,即,各个用户在使用该云游戏时所产生的指标数据,其中,目标指标还可以包括网络连接指标、流控策略有效性指标及线上卡顿指标等,该网络连接指标对应的指标数据包括但不限于行动热点(wifi)、第二代无线通信技术(The 2nd Generation,2G)、第三代移动通信技术(3rd Generation,3G)及***移动通信***(Fourth GenerationCommunications System,4G)等。
通过本申请中的方案,可以获取边缘集群发送的采集指标数据,并对采集指标数据进行处理后存储至数据库节点中,用户设备可以通过查询该数据库节点中的指标数据,得到云游戏或应用程序等的运行情况,进而对云游戏或应用程序等进行优化。
具体的,以云游戏为例,中央集群可以从边缘节点获取采集指标数据,该采集指标数据可以包括但不限于游戏卡顿频率指标、游戏帧传输速率指标、游戏数据同步时延指标及游戏渲染速率指标等指标所对应的指标数据,基于上述图4所示的各个步骤,中央集群通过包含的组件将该采集指标数据进行处理,得到存储指标数据,将存储指标数据写入数据库组件中。当用户设备需要获取该云游戏相关的指标数据时,可以向中央集群发送指标查询信息,中央集群通过执行图5中所示的各个步骤,获取到指标查询结果,将该指标查询结果发送至用户设备。用户设备可以基于该指标查询结果确定云游戏的运行状态,若该指标查询结果所指示的云游戏的运行状态为游戏异常状态,则可以从指标查询结果中获取出现异常的指标数据,可以基于异常的指标数据对云游戏进行优化处理,使得该云游戏可以更好地满足用户需求,提高云游戏的运行效率及运行效果等。其中,用户设备可以预设有合理指标数据范围,将获取到的指标查询结果与合理指标数据范围进行对比,若指标查询结果属于合理指标数据范围,则确定该指标查询结果所指示的云游戏的运行状态为游戏正常状态;若指标查询结果中存在不属于合理指标数据范围的数据,则确定该指标查询结果所指示的云游戏的运行状态为游戏异常状态。其中,该合理指标数据范围用于表示云游戏可以较好地满足用户游戏需求时,应该具备的指标数据所属的范围,例如,假定游戏帧传输速率指标对应的合理指标数据范围为0.5秒/帧以下,若指标查询结果中的游戏帧传输速率的值小于0.5秒/帧,则确定该指标查询结果所指示的云游戏的运行状态为游戏正常状态;若指标查询结果中的游戏帧传输速率的值大于或等于0.5秒/帧,则确定该指标查询结果所指示的云游戏的运行状态为游戏异常状态,用户设备可以对云游戏进行优化,例如,更新游戏设备之间的数据传输算法,或者,压缩游戏设备之间传输的数据包等,以提高游戏帧传输速率。
进一步地,请参见图11,图11是本申请实施例提供的一种数据处理装置示意图。该数据处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码等),例如该数据处理装置可以为一个应用软件;该装置可以用于执行本申请实施例提供的方法中的相应步骤。如图11所示,该数据处理装置1100可以用于图4所对应实施例中的计算机设备,具体的,该装置可以包括:指标采集模块11、数据推送模块12、数据转换模块13、数据压缩模块14及数据存储模块15。
指标采集模块11,用于通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;
数据推送模块12,用于基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;
数据转换模块13,用于基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据;
数据压缩模块14,用于对转换指标数据进行归并处理,得到存储指标数据;
数据存储模块15,用于将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。
其中,该收发组件包括指标代理组件及监控收集组件;指标代理组件集成有第一数据推送功能,监控收集组件集成有第二数据推送功能;
该指标采集模块11,包括:
连接建立单元111,用于通过收发组件所包括的指标代理组件,与边缘集群建立网络长连接;
指标采集单元112,用于通过网络长连接接收边缘集群发送的采集指标数据;
该数据推送模块12,包括:
第一推送单元121,用于基于指标代理组件的第一数据推送功能,将采集指标数据推送至监控收集组件;
数据聚合单元122,用于基于监控收集组件获取采集指标数据的指标信息,获取指标聚合属性及指标转换算法,对与指标聚合属性相匹配的指标信息所对应的采集指标数据,执行指标转换算法,得到预聚合指标数据;
第二推送单元123,用于基于监控收集组件的第二数据推送功能,向协调写入组件发送远程写入请求,基于远程写入请求将预聚合指标数据推送至协调写入组件。
其中,该指标采集单元112,包括:
数据接收子单元1121,用于通过网络长连接接收边缘集群发送的待处理指标数据;
数据归并子单元1122,用于基于指标代理组件获取待处理指标数据的指标属性标签,将具有相同的指标属性标签的待处理指标数据进行归并处理,得到采集指标数据;
该第一推送单元121,包括:
队列缓存子单元1211,用于基于指标代理组件将采集指标数据缓存至待发送指标队列中;
队列推送子单元1212,用于通过指标代理组件的第一数据推送功能及待发送指标队列,将采集指标数据推送至监控收集组件。
其中,该指标采集模块11,包括:
随机生成单元113,用于通过收发组件与边缘集群中的服务端点建立连接,获取服务端点的端点信息,根据端点信息生成连接随机数;
连接匹配单元114,用于获取连接建立范围,若连接随机数属于连接建立范围,则接收边缘集群中的服务端点发送的采集指标数据。
其中,该数据压缩模块14,包括:
降采样单元141,用于对转换指标数据进行降采样处理,得到降采样指标数据;
指标归并单元142,用于获取转换指标数据的转换存储期限,将具有相同的转换存储期限的降采样指标数据进行归并处理,得到存储指标数据。
其中,数据库组件的数量为N,N为正整数;
该数据存储模块15,包括:
哈希生成单元151,用于获取存储指标数据的存储指标名称及存储指标属性标签,生成存储指标名称及存储指标属性标签对应的存储哈希值;
哈希存储单元152,用于根据存储哈希值确定存储分片标识,将存储指标数据写入存储分片标识对应的目标数据库组件中;目标数据库组件属于N个数据库组件。
其中,该数据存储模块15,包括:
冷热分离单元153,用于基于数据库组件对存储指标数据进行冷热分析处理,得到存储指标数据中所包括的热指标数据及冷指标数据;
冷热存储单元154,用于获取存储磁盘中的热数据存储区域及冷数据存储区域,将热指标数据写入热数据存储区域,将冷指标数据写入冷数据存储区域。
其中,该指标采集模块11,包括:
指标筛选单元115,用于通过收发组件接收边缘集群发送的初始指标数据,获取待采集指标类型,从初始指标数据中获取待采集指标类型对应的指标数据,得到采集指标数据。
其中,中央集群还包括指标查询组件;数据库组件的数量为N,N为正整数;该装置还包括:
指标查询模块16,用于接收用户设备发送的指标查询信息,基于指标查询信息向指标查询组件发送指标查询请求;指标查询请求包括指标查询信息;
请求分片模块17,用于基于指标查询组件解析指标查询信息,将指标查询请求拆分为M个分片查询请求;M为正整数;
组件确定模块18,用于基于M个分片查询请求,从N个数据库组件中确定查询数据库组件;
分片获取模块19,用于从查询数据库组件中获取M个分片查询请求分别对应的查询指标分片数据;
结果生成模块20,用于将M个查询指标分片数据进行整合,得到指标查询结果,将指标查询结果发送至用户设备。
其中,中央集群还包括指标可视化组件;
该指标查询模块16,包括:
信息接收单元161,用于基于指标可视化组件的可视化组件地址,接收用户设备发送的指标查询信息;
语句获取单元162,用于获取指标查询组件的查询组件地址,基于查询组件地址建立监控面板,从监控面板中获取指标查询语句;
请求发送单元163,用于根据指标查询语句向指标查询组件发送指标查询请求。
其中,指标查询信息包括M个分片查询请求分别对应的分片查询指标名称及分片查询指标属性标签;
该组件确定模块18,包括:
哈希确定单元181,用于根据M个分片查询请求分别对应的分片查询指标名称及分片查询指标属性标签,获取M个分片查询请求分别对应的分片查询哈希值;
组件确定单元182,用于获取M个分片查询哈希值分别对应的分片查询标识,根据M个分片查询标识,从N个数据库组件中确定k个查询数据库组件;k为小于或等于M的正整数。
其中,该结果生成模块20,包括:
数据整合单元20a,用于将M个查询指标分片数据进行整合,得到指标查询数据;
结果生成单元20b,用于根据指标查询信息建立查询坐标,将查询坐标及指标查询数据进行组合,得到指标查询结果;
结果发送单元20c,用于将指标查询结果发送至用户设备,以使用户设备显示指标查询结果。
本申请实施例提供了一种数据处理装置,该装置可以运行于中央集群中,通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。通过以上过程,在中央集群中集成了收发组件、协调写入组件及数据库组件等,并在收发组件中集成数据推送功能,使得该收发组件可以对获取到的数据进行压缩,以减少数据量,并将压缩后的数据推送至协调写入组件,可以更为高效地实现数据的传输,有利于性能优化,同时将得到的存储指标数据写入数据库组件中,基于数据库组件的特性使得存储可扩展,提高数据的处理效率。
参见图12,图12是本申请实施例提供的一种计算机设备的结构示意图。如图12所示,本申请实施例中的计算机设备可以包括:一个或多个处理器1201、存储器1202和输入输出接口1203。该处理器1201、存储器1202和输入输出接口1203通过总线1204连接。存储器1202用于存储计算机程序,该计算机程序包括程序指令,输入输出接口1203用于接收数据及输出数据,如用于中央集群与边缘集群之间进行数据交互,或者用于中央集群与用户设备之间进行数据交互,或者用于中央集群中的各个组件之间进行数据交互;处理器1201用于执行存储器1202存储的程序指令。
其中,该处理器1201可以执行如下操作:
通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;
基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;
基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;
将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。
在一些可行的实施方式中,该处理器1201可以是中央处理单元 (centralprocessing unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器 (digitalsignal processor,DSP)、专用集成电路 (application specific integrated circuit,ASIC)、现成可编程门阵列 (field-programmable gate array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1202可以包括只读存储器和随机存取存储器,并向处理器1201和输入输出接口1203提供指令和数据。存储器1202的一部分还可以包括非易失性随机存取存储器。例如,存储器1202还可以存储设备类型的信息。
具体实现中,该计算机设备可通过其内置的各个功能模块执行如该图4中各个步骤所提供的实现方式,具体可参见该图4中各个步骤所提供的实现方式,在此不再赘述。
本申请实施例通过提供一种计算机设备,包括:处理器、输入输出接口、存储器,通过处理器获取存储器中的计算机程序,执行该图4中所示方法的各个步骤,进行数据处理操作。本申请实施例实现了通过收发组件接收边缘集群发送的采集指标数据;收发组件中集成有数据推送功能;基于收发组件中的数据推送功能,对采集指标数据进行预聚合处理,得到预聚合指标数据,将预聚合指标数据推送至协调写入组件;基于协调写入组件将预聚合指标数据转换成具有目标存储格式的转换指标数据,对转换指标数据进行归并处理,得到存储指标数据;将存储指标数据写入数据库组件中,基于数据库组件将存储指标数据写入存储磁盘。通过以上过程,在中央集群中集成了收发组件、协调写入组件及数据库组件等,并在收发组件中集成数据推送功能,使得该收发组件可以对获取到的数据进行压缩,以减少数据量,并将压缩后的数据推送至协调写入组件,可以更为高效地实现数据的传输,有利于性能优化,同时将得到的存储指标数据写入数据库组件中,基于数据库组件的特性使得存储可扩展,提高数据的处理效率。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序适于由该处理器加载并执行图4中各个步骤所提供的数据处理方法,具体可参见该图4中各个步骤所提供的实现方式,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,计算机程序可被部署为在一个计算机设备上执行,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
该计算机可读存储介质可以是前述任一实施例提供的数据处理装置或者该计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行图4中的各种可选方式中所提供的方法,实现了在中央集群中集成了收发组件、协调写入组件及数据库组件等,并在收发组件中集成数据推送功能,使得该收发组件可以对获取到的数据进行压缩,以减少数据量,并将压缩后的数据推送至协调写入组件,可以更为高效地实现数据的传输,有利于性能优化,同时将得到的存储指标数据写入数据库组件中,基于数据库组件的特性使得存储可扩展,提高数据的处理效率。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在该说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。