数据监控方法、系统、设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据监控方法、系统、设备及存储介质。
背景技术
近年来,由于区块链具有去中心化、开放性、独立性、安全性和匿名性的特征,被广泛应用到各行各业。去中心化是指区块链技术不依赖额外的第三方管理机构或硬件设施,通过分布式核算和存储,各个节点实现了信息自我验证、传递和管理。开放性是指,除了交易各方的私有信息被加密外,区块链的数据对所有人开放,任何人都可以通过公开的接口查询区块链数据和开发相关应用。独立性是指,基于协商一致的规范和协议(类似哈希算法等数学算法),整个区块链系统中的所有节点能够在系统内自动安全地验证、交换数据,不需要任何人为的干预。安全性是指,只要不能掌控全部数据节点的51%,就无法肆意操控修改网络数据,这使区块链本身变得相对安全,避免了主观人为的数据变更。匿名性是指单各区块节点的身份信息不需要公开或验证,信息传递可以匿名进行。
当前,对区块链系统进行监控的方式是基于软件开发工具包(SDK)的单次查询,该监控方式需要读取保存至区块链系统中每个数据后,筛选需要监控的指标所对应的数据,这就导致监控效率低,开销大,并且,由于频繁访问区块链系统,导致区块链系统本身性能变差,以及,由于需要将区块链中的每笔数据读出,导致数据安全性降低。
发明内容
本申请提供了一种数据监控方法、系统、设备及存储介质,用以解决区块链监控效率低,影响区块链系统性能,导致数据安全性降低的问题。
第一方面,本申请实施例提供了一种数据监控方法,应用于区块链节点的客户端,包括:
根据预先存储的需要被监控的指标,在不同的采集时间从所述区块链节点中采集所述被监控的指标的数据;
保存所述采集时间与所述被监控的指标的数据之间的对应关系。
可选地,相邻所述采集时间之间的差值为固定值。
第二方面,本申请实施例提供了一种数据监控方法,包括:
第一级数据存储服务器读取区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系;
所述第一级数据存储服务器根据所述对应关系,以所述采集时间为索引保存所述被监控的指标的数据。
可选地,所述第一级数据存储服务器读取区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系,包括:
所述第一级数据存储服务器获取所述第一级数据存储服务器的第一权限,相对应的区块链节点的客户端的第二权限;
所述第一级数据存储服务器从具有第二权限的区块链的客户端中,读取采集时间与被监控的指标的数据之间的对应关系。
可选地,所述第一级数据存储服务器根据所述对应关系,以所述采集时间为索引保存所述被监控的指标的数据之后,所述方法还包括包括:
与至少一个所述第一级数据存储服务器相关联的第二级数据存储服务器,从每个相关联的所述第一数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系;
第i级数据存储服务器,从相关联的至少一个第i-1级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系,其中,3≤i≤M,第M级数据存储服务器的个数为1。
可选地,第M级数据存储服务器,从相关联的至少一个第M-1级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系之后,所述方法还包括:
所述第M级数据存储服务器按照采集时间的先后顺序对所述被监控的指标的数据进行排序后,以所述采集时间为索引保存所述被监控的指标的数据。
可选地,所述第M级数据存储服务器按照采集时间的先后顺序对所述被监控的指标的数据进行排序后,以所述采集时间为索引保存所述被监控的指标的数据之后,所述方法还包括:
所述第M级数据存储服务器将以所述采集时间为索引保存的所述被监控的指标的数据,写入区块链节点中。
第三方面,本申请实施例提供了一种数据监控系统,区块链节点的客户端以及第一级数据存储服务器;
所述区块链节点的客户端,用于根据预先存储的需要被监控的指标,在不同的采集时间从所述区块链节点中采集所述被监控的指标的数据,保存所述采集时间与所述被监控的指标的数据之间的对应关系;
所述第一级数据存储服务器,用于读取所述区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系,根据所述对应关系,以所述采集时间为索引保存所述被监控的指标的数据。
可选地,所述第一级数据存储服务器具体用于:
获取所述第一级数据存储服务器的第一权限,相对应的区块链节点的客户端的第二权限;
从具有第二权限的区块链的客户端中,读取采集时间与被监控的指标的数据之间的对应关系。
可选地,所述数据监控系统中还包括与至少一个所述第一数据存储服务器相关联的第二数据存储服务器,以及第三至第M级数据存储服务器;
所述第二级数据存储服务器用于:从每个相关联的所述第一级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系;
第i级数据存储服务器用于:从相关联的至少一个第i-1级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系,其中,3≤i≤M,第M级数据存储服务器的个数为1。
可选地,所述第M级数据存储服务器还用于:
按照采集时间的先后顺序对所述被监控的指标的数据进行排序后,以所述采集时间为索引保存所述被监控的指标的数据。
可选地,所述第M级数据存储服务器还用于:
以所述采集时间为索引保存所述被监控的指标的数据之后,将以所述采集时间为索引保存的所述被监控的指标的数据,写入区块链节点中。
第四方面,本申请实施例提供了一种电子设备,包括:处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中所存储的程序,实现第一方面所述的数据监控方法,或者,实现第二方面所述的数据监控方法。
第五方面,本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第一方面所述的数据监控方法,或者,实现第二方面所述的数据监控方法。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:本申请实施例提供的该方法,区块链节点的客户端根据预先存储的需要被监控的指标,在不同的采集时间从区块链节点中采集被监控的指标的数据,从而只需要采集预先存储的需要被监控的指标的数据即可,无需读取区块链系统中的每个数据,降低了区块链监控的开销,提高了区块链监控效率,并且在一定程度上保证了区块链系统中数据的安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中应用于区块链节点的客户端的数据监控方法流程示意图;
图2为本申请实施例中应用于数据存储服务器的数据监控方法流程示意图;
图3为本申请实施例中数据监控系统架构示意图;
图4为本申请实施例中另一数据监控系统架构示意图;
图5为本申请实施例中另一数据监控系统架构示意图;
图6为本申请实施例中电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请第一实施例中提供一种数据监控方法,该方法应用于区块链节点的客户端,可以是在区块链系统的每个区块链节点上均部署该客户端的程序,也可以是在区块链系统的部分区块链节点上部署该客户端的程序。不管是哪种情况,对于任意一个区块链节点的客户端而言,如图1所示,该客户端作为辅助组件进行数据监控的具体过程如下:
步骤101,根据预先存储的需要被监控的指标,在不同的采集时间从区块链节点中采集被监控的指标的数据。
一个具体实施例中,每相邻的两个采集时间之间的差值为固定值,即周期性从区块链节点中采集被监控的指标的数据。
步骤102,保存采集时间与被监控的指标的数据之间的对应关系。
一个具体实施例中,在每次采集被监控的指标的数据时,记录采集时间和采集到的该数据。
本申请实施例中,区块链节点的客户端通过周期性拉取需要被监控的指标的数据,来代替频繁且高开销的单次指标查询,从而只需要采集预先存储的需要被监控的指标的数据即可,无需读取区块链系统中的每个数据,降低了区块链监控的开销,提高了区块链监控效率,并且在一定程度上保证了区块链系统中数据的安全性。
本申请第二实施例中提供了一种数据监控方法,应用于数据存储服务器组中的各数据存储服务器,该数据存储服务器组中包括第一级数据存储服务器,或者,包括第一数据存储服务器和第二数据存储服务器,或者,包括第一级至第M级数据存储服务器。如图2所示,进行数据监控的具体过程如下:
步骤201,第一级数据存储服务器读取区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系。
其中,第一级数据存储服务器与区块链节点的客户端之间建立通信连接。
一个具体实施例中,部署多个第一级数据存储服务器,预先配置每个第一级数据存储服务器的权限与客户端的权限之间的对应关系,某个第一级数据存储服务器允许从相应权限的客户端中读取数据,以保障数据安全性。具体地,第一级数据存储服务器获取该第一级数据存储服务器的第一权限,相对应的区块链节点的客户端的第二权限;该第一级数据存储服务器从具有第二权限的区块链的客户端中,读取采集时间与被监控的指标的数据之间的对应关系。
步骤202,第一级数据存储服务器根据该对应关系,以采集时间为索引保存该被监控的指标的数据。
一个具体实施例中,在区块链的N个节点上均安装客户端的程序,且一个或多个区块链的节点对应一个第一级数据存储服务器,共部署T个第一级数据存储服务器,一个第一级数据存储服务器从所对应的一个或多个区块链的节点中读取采集时间与被监控的指标的数据之间的对应关系。
一个具体实施例中,在T个第一级数据存储服务器的上层,可以部署S个第二级数据存储服务器,一个第二级数据存储服务器与一个或多个第一级数据存储服务器通信连接。具体地,第一级数据存储服务器根据所读取的对应关系,以采集时间为索引保存被监控的指标的数据之后,与至少一个第一级数据存储服务器相关联的第二级数据存储服务器,从每个相关联的第一级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系。
当然,根据需要,在S个第二级数据存储服务器的上层,还可以部署R个第三级数据存储服务器,一个第三级数据存储服务器与一个或多个第二级数据存储服务器通信连接,以此类推,共部署M级数据存储服务器。第i级数据存储服务器,从相关联的至少一个第i-1级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系,其中,3≤i≤M,第M级数据存储服务器的个数为1。具体地,第三级数据存储服务器从所关联的一个或多个第二级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系。以此类推,还可以部署第四级数据存储服务器、第五级数据存储服务器等,直至,所有从区块链中读取的被监控的指标的数据均被集中保存到一个数据存储服务器为止。
一个具体实施例中,第M级数据存储服务器从第M-1级数据存储服务器所获取的是所有客户端的采集时间和被监控的指标的数据,通过对获取的所有客户端的采集时间和被监控的指标的数据进行聚合,得到完整的被监控的指标的数据,具体地,按照采集时间的先后顺序对被监控的指标的数据进行排序后,以采集时间为索引保存被监控的指标的数据。
一个具体实施例中,为了进一步保证监控的区块链的数据的安全性,第M级数据存储服务器将以采集时间为索引保存的被监控的指标的数据,写入区块链节点中。
本申请实施例中,数据存储服务器可以采用Prometheus数据库等,以时间轴为索引的数据库,以能够直接建立采集时间与采集的被监控的指标的数据之间的对应关系。因为Prometheus数据库支持求和、百分比、计数等多种运算语句和正则匹配的语法,在Prometheus数据中增加判断条件,即可进行权限过滤,使得该Prometheus数据库所在的数据存储服务器仅读取相应权限的客户端的数据,以及使得能够对从不同的客户端中读取的数据进行聚合,提高数据的可读性。同时,由于Prometheus数据库不对数据进行解析,仅收集程序本身生成或者返回的数据,杜绝了从监控侧探知用户数据或者敏感信息的可能,也大大增加了用户数据的安全性。
本申请实施例中,通过区块链节点的客户端直接从该区块链的节点中采集被监控的指标的数据,例如交易频率、区块链网络下的数据吞吐量、通道内区块数量变化、区块链系统整体在各个时间点的负载情况和使用程度的对比等等。在收集的过程中,数据存储服务器的配置字段对客户端中的数据进行统一拉取,如此,监控过程即可跳过SDK环节,减轻了用户在开发SDK期间所需消耗的时间,同时提高数据的可靠性,直接从区块链节点或者专门的采集组件中获取指标数据,降低密集场景时的延迟。
基于同一构思,本申请第三实施例中提供了一种数据监控系统,如图3所示,该系统主要包括区块链节点的客户端301以及第一级数据存储服务器302。其中,区块链节点的客户端301的功能可参见第一实施例的相关描述,第一级数据存储服务器302的功能可参见第二实施例的相关描述。
具体地,区块链节点的客户端301,用于根据预先存储的需要被监控的指标,在不同的采集时间从所述区块链节点中采集所述被监控的指标的数据,保存所述采集时间与所述被监控的指标的数据之间的对应关系;
所述第一级数据存储服务器302,用于读取所述区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系,根据所述对应关系,以所述采集时间为索引保存所述被监控的指标的数据。
一个具体实施例中,所述第一级数据存储服务器302具体用于:
获取所述第一级数据存储服务器的第一权限,相对应的区块链节点的客户端的第二权限;
从具有第二权限的区块链的客户端中,读取采集时间与被监控的指标的数据之间的对应关系。
一个具体实施例中,如图4所示,该数据监控系统中还包括与至少一个所述第一数据存储服务器相关联的第二数据存储服务器302,以及第三至第M级数据存储服务器302;
所述第二级数据存储服务器302用于:从每个相关联的所述第一级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系;
第i级数据存储服务器302用于:从相关联的至少一个第i-1级数据存储服务器中,读取已经保存的区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系,其中,3≤i≤M,第M级数据存储服务器的个数为1。
一个具体实施例中,所述第M级数据存储服务器302还用于:
按照采集时间的先后顺序对所述被监控的指标的数据进行排序后,以所述采集时间为索引保存所述被监控的指标的数据。
一个具体实施例中,所述第M级数据存储服务器302还用于:
以所述采集时间为索引保存所述被监控的指标的数据之后,将以所述采集时间为索引保存的所述被监控的指标的数据,写入区块链节点中。
一个具体实施例中,如图5所示,部署在被监控的区块链系统中的客户端301,与采用Prometheus数据库的数据存储服务器302建立通信连接,数据存储服务器302与区块链系统501的节点N连接。客户端301根据预先存储的需要被监控的指标,在不同的采集时间从所述区块链节点中采集所述被监控的指标的数据,保存所述采集时间与所述被监控的指标的数据之间的对应关系。该数据存储服务器302读取所述区块链节点的客户端301中,采集时间与被监控的指标的数据之间的对应关系,根据所述对应关系,以所述采集时间为索引保存所述被监控的指标的数据。并且,该数据存储服务器302将以所述采集时间为索引保存所述被监控的指标的数据保存至区块链系统501中。
该具体实施例中,通过外置的客户端和数据存储服务器,提供用户关心的需要监控的各个性能指标的具体数据,将单次、重复率高的查询行为精简为统一的周期性的更新动作,统一由Prometheus数据库根据用户配置文件中设置的心跳间隔(即采集被监控的指标的数据的周期)对被监控的指标的数据进行拉取,降低查询对业务框架带来的负担。
应用中,根据需要数据存储服务器还可以对采集到的指标的数据,以折线图、百分比图或柱状图的形式,统计采集到的指标的变化规律。
基于同一构思,本申请实施例中还提供了一种电子设备,如图6所示,该电子设备主要包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601、通信接口602和存储器603通过通信总线604完成相互间的通信。其中,存储器603中存储有可被至处理器601执行的程序,处理器601执行存储器603中存储的程序,实现如下步骤:根据预先存储的需要被监控的指标,在不同的采集时间从所述区块链节点中采集所述被监控的指标的数据;保存所述采集时间与所述被监控的指标的数据之间的对应关系。或者,读取区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系;根据所述对应关系,以所述采集时间为索引保存所述被监控的指标的数据。
上述电子设备中提到的通信总线604可以是外设部件互连标准(PeripheralComponent Interconnect,简称PCI)总线或扩展工业标准结构(Extended IndustryStandard Architecture,简称EISA)总线等。该通信总线604可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口602用于上述电子设备与其他设备之间的通信。
存储器603可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器601的存储装置。
上述的处理器601可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,当该计算机程序在计算机上运行时,使得计算机执行上述实施例中所描述的:根据预先存储的需要被监控的指标,在不同的采集时间从所述区块链节点中采集所述被监控的指标的数据;保存所述采集时间与所述被监控的指标的数据之间的对应关系。或者,读取区块链节点的客户端中,采集时间与被监控的指标的数据之间的对应关系;根据所述对应关系,以所述采集时间为索引保存所述被监控的指标的数据。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。该计算机可以时通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、微波等)方式向另外一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带等)、光介质(例如DVD)或者半导体介质(例如固态硬盘)等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。