一种运行指标数据的处理方法及系统与流程

文档序号:29963534发布日期:2022-05-11 09:43阅读:142来源:国知局
一种运行指标数据的处理方法及系统与流程

1.本发明涉及数据处理技术领域,具体涉及一种运行指标数据的处理方法及系统。


背景技术:

2.在云运维工作中,需要周期性地采集大量监控对象的运行指标数据,将所采集的运行指标数据存储到易于查询的媒介上,以利用运行指标数据监控各个监控对象的运行状况。
3.目前通常采用单一数据集存储各个监控对象的运行指标数据。但是,随着云计算技术和行业的发展,云的规模越来越大,用于存储运行指标数据的单一数据集也越来越臃肿,导致从单一数据集中查询运行指标数据的效率较低且时效性较差。


技术实现要素:

4.有鉴于此,本发明实施例提供一种运行指标数据的处理方法及系统,以解决现有存储运行指标数据的方式存在的查询运行指标数据的效率较低且时效性较差等问题。
5.为实现上述目的,本发明实施例提供如下技术方案:
6.本发明实施例第一方面公开一种运行指标数据的处理方法,所述方法包括:
7.采集到待存储的第一运行指标数据时,确定所述第一运行指标数据的采集时间所处的目标时间区间,所述目标时间区间为按照指定时间粒度所划分的时间区间;
8.在存储组件中不存在所述目标时间区间对应的第一存储方案的情况下,确定所述第一存储方案为默认的存储方案,以及确定所述目标时间区间的下一个时间区间的第二存储方案为所述默认的存储方案,其中,存储方案用于在指定数据库中创建包含至少一个索引的索引集,所述索引具有指定容量,所述索引用于存储指定监控对象的预设指标类型的运行指标数据;
9.将所述第一存储方案和所述第二存储方案保存到所述存储组件中,及将所述第一运行指标数据存储到所述第一存储方案对应的索引集的索引中;
10.在存储组件中存在所述目标时间区间对应的第一存储方案的情况下,将所述第一运行指标数据存储到所述第一存储方案对应的索引集的索引中,以及执行以下步骤;
11.所述以下步骤包括:
12.若所述存储组件中不存在所述目标时间区间的下一个时间区间对应的第二存储方案,利用所述目标时间区间的上一个时间区间的第三存储方案及所述第三存储方案对应的索引集,构建所述第二存储方案并将其存储到所述存储组件中。
13.优选的,存储组件包含磁盘和缓存;
14.将所述第一存储方案和所述第二存储方案保存到所述存储组件中的过程,包括:
15.将所述第一存储方案和所述第二存储方案在磁盘中进行持久化保存,并以哈希表的形式在缓存中备份所述第一存储方案和所述第二存储方案;
16.其中,所述哈希表中的键为监控对象和指标类型,所述哈希表中的值为索引。
17.优选的,将所述第一运行指标数据存储到所述第一存储方案对应的索引集的索引中的过程,包括:
18.以所述第一运行指标数据对应的监控对象和指标类型为键,对所述缓存中所述第一存储方案对应的索引集包含的索引进行查询,确定得到相应的第一目标索引;
19.将所述第一运行指标数据存储到所述指定数据库中的所述第一目标索引。
20.优选的,若所述存储组件中不存在所述目标时间区间的下一个时间区间对应的第二存储方案,利用所述目标时间区间的上一个时间区间的第三存储方案及所述第三存储方案对应的索引集,构建所述第二存储方案并将其存储到所述存储组件中,包括:
21.若所述存储组件中不存在所述目标时间区间的下一个时间区间对应的第二存储方案,利用所述目标时间区间的上一个时间区间的第三存储方案对应的索引集中存储的数据总量,结合所述指定容量,确定所述下一个时间区间内需创建的索引的数量;
22.解析所述第三存储方案对应的索引集中存储的运行指标数据的分布情况;
23.利用所述分布情况和所述下一个时间区间内需创建的索引的数量,构建所述第二存储方案并将其存储到所述存储组件中。
24.优选的,所述方法还包括:
25.在所述存储组件中,查询构建时间大于预设时长的存储方案;
26.将构建时间大于预设时长的存储方案从所述存储组件中删除,以及将构建时间大于预设时长的存储方案对应的索引集从所述指定数据库中删除。
27.优选的,所述方法还包括:
28.在接收到第一查询请求时,解析所述第一查询请求至少得到待查询监控对象、待查询指标类型和待查询时间范围;
29.在所述磁盘中若查询到所述待查询时间范围所涵盖的至少一个时间区间对应的第四存储方案,以所述待查询监控对象和所述待查询指标类型为键,对所述缓存中所述第四存储方案对应的索引集包含的索引进行查询,确定得到相应的第二目标索引;
30.向所述指定数据库中的所述第二目标索引发送第二查询请求,获取并输出指标数据结果,所述指标数据结果至少包含:所述待查询监控对象在所述待查询时间范围内的第二运行指标数据,所述第二运行指标数据的指标类型为所述待查询指标类型。
31.本发明实施例第二方面公开一种运行指标数据的处理系统,所述系统包括:
32.第一确定单元,用于采集到待存储的第一运行指标数据时,确定所述第一运行指标数据的采集时间所处的目标时间区间,所述目标时间区间为按照指定时间粒度所划分的时间区间;
33.第二确定单元,用于在存储组件中不存在所述目标时间区间对应的第一存储方案的情况下,确定所述第一存储方案为默认的存储方案,以及确定所述目标时间区间的下一个时间区间的第二存储方案为所述默认的存储方案,其中,所述默认的存储方案用于在指定数据库中创建包含至少一个索引的索引集,所述索引具有指定容量,所述索引用于存储指定监控对象的预设指标类型的运行指标数据;
34.存储单元,用于将所述第一存储方案和所述第二存储方案保存到所述存储组件中,及将所述第一运行指标数据存储到所述第一存储方案对应的索引集的索引中;
35.所述存储单元还用于:在存储组件中存在所述目标时间区间对应的第一存储方案
的情况下,将所述第一运行指标数据存储到所述第一存储方案对应的索引集的索引中,以及执行构建单元;
36.所述构建单元,用于若所述存储组件中不存在所述目标时间区间的下一个时间区间对应的第二存储方案,利用所述目标时间区间的上一个时间区间的第三存储方案及所述第三存储方案对应的索引集,构建所述第二存储方案并将其存储到所述存储组件中。
37.优选的,存储组件包含磁盘和缓存;
38.用于将所述第一存储方案和所述第二存储方案保存到所述存储组件中的所述存储单元,具体用于:将所述第一存储方案和所述第二存储方案在磁盘中进行持久化保存,并以哈希表的形式在存储组件缓存中备份所述第一存储方案和所述第二存储方案;其中,所述哈希表中的键为监控对象和指标类型,所述哈希表中的值为索引。
39.优选的,用于将所述第一运行指标数据存储到所述第一存储方案对应的索引集的索引中的所述存储单元,具体用于:以所述第一运行指标数据对应的监控对象和指标类型为键,对所述缓存中所述第一存储方案对应的索引集包含的索引进行查询,确定得到相应的第一目标索引;将所述第一运行指标数据存储到所述指定数据库中的所述第一目标索引。
40.优选的,所述构建单元包括:
41.确定模块,用于若所述存储组件中不存在所述目标时间区间的下一个时间区间对应的第二存储方案,利用所述目标时间区间的上一个时间区间的第三存储方案对应的索引集中存储的数据总量,结合所述指定容量,确定所述下一个时间区间内需创建的索引的数量;
42.解析模块,用于解析所述第三存储方案对应的索引集中存储的运行指标数据的分布情况;
43.构建模块,用于利用所述分布情况和所述下一个时间区间内需创建的索引的数量,构建所述第二存储方案并将其存储到所述存储组件中。
44.基于上述本发明实施例提供的一种运行指标数据的处理方法及系统,该方法为:采集到待存储的第一运行指标数据时,确定第一运行指标数据的采集时间所处的目标时间区间;在存储组件中不存在目标时间区间对应的第一存储方案的情况下,确定第一存储方案为默认的存储方案,以及确定目标时间区间的下一个时间区间的第二存储方案为默认的存储方案;将第一存储方案和第二存储方案保存到存储组件中,及将第一运行指标数据存储到第一存储方案对应的索引集的索引中;在存储组件中存在第一存储方案的情况下,将第一运行指标数据存储到第一存储方案对应的索引集的索引中,若存储组件中不存在目标时间区间的下一个时间区间对应的第二存储方案,利用目标时间区间的上一个时间区间的第三存储方案及第三存储方案对应的索引集,构建第二存储方案并将其存储到存储组件中。采用本方案,按照指定时间粒度划分时间区间,每个时间区间都构建相应的存储方案,其中,根据历史的时间区间的存储方案及其对应的索引集构建新的存储方案。基于存储方案在指定数据库中创建包含至少一个索引的索引集,每个索引具有指定容量。在获取到待存储的运行指标数据时,按照采集时间确定相应的存储方案,再将获取到的运行指标数据存储到所确定的存储方案对应的索引中。将运行指标数据进行分布化存储,提高查询运行指标数据的效率和时效性。
附图说明
45.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
46.图1为本发明实施例提供的一种运行指标数据的处理方法的流程图;
47.图2为本发明实施例提供的查询运行指标数据的流程图;
48.图3为本发明实施例提供的一种运行指标数据的处理方法的原理架构图;
49.图4为本发明实施例提供的一种运行指标数据的处理系统的结构框图。
具体实施方式
50.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
51.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
52.由背景技术可知,在云运维工作中,需要周期性地采集大量监控对象的运行指标数据,目前通常采用单一数据集存储各个监控对象的运行指标数据。但是,伴随着云的规模越来越大,用于存储运行指标数据的单一数据集也越来越臃肿,导致从单一数据集中查询运行指标数据的效率较低且时效性较差。
53.因此,本发明实施例提供一种运行指标数据的处理方法及系统,按照指定时间粒度划分时间区间,每个时间区间都构建相应的存储方案,其中,根据历史的时间区间的存储方案及其对应的索引集构建新的存储方案。基于存储方案在指定数据库中创建包含至少一个索引的索引集,每个索引具有指定容量。在获取到待存储的运行指标数据时,按照待存储的运行指标数据的采集时间确定相应的存储方案,再将获取到的运行指标数据存储到所确定的存储方案对应的索引中。将运行指标数据进行分布化存储,以提高查询运行指标数据的效率和时效性。
54.参见图1,示出了本发明实施例提供的一种运行指标数据的处理方法的流程图,该处理方法包括:
55.步骤s101:采集到待存储的第一运行指标数据时,确定第一运行指标数据的采集时间所处的目标时间区间。
56.需要说明的是,预先确定指定时间粒度,并基于指定时间粒度划分多个时间区间,该指定时间粒度可以是秒、分钟、小时或天等粒度,在本方案中,对于指定时间粒度不做具体限定,可根据实际需求设定相应的指定时间粒度;时间区间的起始点和终止点均为时间戳。目标时间区间为按照指定时间粒度所划分的时间区间。
57.在具体实现步骤s101的过程中,在采集到待存储的第一运行指标数据时,根据该第一运行指标数据中的采集时间字段,确定该第一运行指标数据的采集时间;再确定该采集时间处于哪一个时间区间内,该采集时间所处于的时间区间即为目标时间区间。
58.可以理解的是,第一运行指标数据为从某一监控对象中采集到的某一指标类型的运行指标数据。
59.步骤s102:确定存储组件中是否存在目标时间区间对应的第一存储方案。在存储组件中不存在目标时间区间对应的第一存储方案的情况下,执行步骤s103和步骤s104;在存储组件中存在目标时间区间对应的第一存储方案的情况下,执行步骤s105,以及执行步骤s106至步骤s107。
60.需要说明的是,由上述内容可知,预先按照指定时间粒度划分时间区间,所划分的每个时间区间都需要构建相应的存储方案,即每个存储方案需构建一个存储方案。存储方案用于在指定数据库中创建包含至少一个索引的索引集,该索引具有指定容量,该索引用于存储指定监控对象的预设指标类型的运行指标数据。
61.可以理解的是,由于运行指标数据具有时序特性,因此预先按照指定时间粒度划分时间区间,每个时间区间需构建相应的存储方案并基于存储方案在指定数据库中创建索引集。对于某一时间区间,将采集时间处于该时间区间内的运行指标数据存储在该时间区间对应的索引集中;每过一个时间区间都需建立新的索引集(基于所构建的存储方案建立);例如:假设当前时间区间为sn,sn的上一个时间区间为s
n-1
,sn的下一个时间区间为s
n+1
,sn、s
n-1
和sn都需建立索引集。
62.为更好理解以下步骤s102和以下各步骤中的内容,先对前述所提及的指定数据库、索引和存储方案的具体内容进行解释说明。
63.关于指定数据库和索引的说明:
64.指定数据库可以是时序数据库,例如指定数据库可以是elasticsearch(es)也可以是influxdb;指定数据库中的索引可以用来存储运行指标数据,在指定数据库为es的情况下,索引可以是es索引。索引集由至少一个索引构成,索引集中的每个索引用于存储指定监控对象的预设指标类型的运行指标数据;也就是说,索引集中的每个索引可用于存储特定范围内的运行指标数据,即每个索引可存储某些监控对象的某些指标类型的运行指标数据。
65.可以理解的是,为保证从索引中查询运行指标数据的效率,需要规定每个索引的容量为指定容量,索引的容量具体是指:索引能够存储的数据的上限数量。例如:假设索引在存储一亿条以下运行指标数据时,索引具有较高的查询效率,因此可将索引的容量设置为c=100000000,c即为前述提及的指定容量。在实际应用中,指定容量的具体数值可以根据实际需求进行设置,在此不做限定。
66.关于存储方案的说明:
67.存储方案用于在指定数据库中创建索引集;存储方案定义了索引集包含的索引的数量,以及定义了索引集中每个索引用于存储哪些监控对象的哪些指标类型的运行指标数据;也就是说,在根据存储方案创建索引集之后,索引集中的每个索引可用于存储指定监控对象的预设指标类型的运行指标数据。
68.存储方案的具体内容为:利用背包算法(仅举例),将不同监控对象的运行指标数
据分配到i个容量为c(即指定容量)的索引中进行存储,其中,优先将来自同一监控对象的运行指标数据分配到同一索引中进行存储,此种分配方式在查询运行指标数据时可以有效降低查询次数。
69.由于监控对象以及需采集的运行指标数据会随着实际需求(如监控系统的实际需求)的改变而改变,因此每次新建索引集之前都需要先构建存储方案,再根据存储方案来创建索引集。
70.需要说明的是,所有已经构建好的存储方案均需要保存到存储组件中;存储组件至少包含磁盘和缓存,该缓存可以是内存缓存也可以是旁挂式缓存组件(如redis)。具体而言,将所构建的存储方案在磁盘中进行持久化保存,并以哈希表(键值对哈希表)的形式在缓存中备份所构建的存储方案。
71.可以理解的是,由于存储方案定义了索引集中各个索引用于存储哪些监控对象的哪些指标类型的运行指标数据,对于缓存中备份的存储方案对应的哈希表,该哈希表中的键(key)为监控对象和指标类型,该哈希表中的值(value)为索引。也就是说,对于某一待存储的运行指标数据,在确定采集时间所处于的时间区间对应的存储方案后,将该运行指标数据对应的监控对象和指标类型作为key对缓存中与该存储方案对应的索引进行查询,即可查询到与该key对应的value;将该运行指标数据存储至指定数据库中与查询到的value对应的索引。通过哈希表的形式将存储方案保存到缓存中,可以缩小查询索引的范围,进而能够快速且高效的确定运行指标数据需要存储在哪一索引。
72.需要说明的是,存储方案定义了索引集中各个索引用于存储哪些监控对象的哪些指标类型的运行指标数据,但在实际应用中,一方面,在配置采集某一监控对象的新的指标类型的运行指标数据时,此时需要更新存储到存储组件中的存储方案,将新的指标类型的运行指标数据存储到该监控对象对应的索引中,更新存储方案后即可确定新的指标类型的运行指标数据存储到哪一索引中;另一方面,在存储方案对应的索引集中预留一个索引,在配置采集新的监控对象的运行指标数据时,此时需要更新存储到存储组件中的存储方案,将新的监控对象的运行指标数据存储到所预留的索引中。
73.以上内容是关于指定数据库、索引和存储方案的说明。
74.在具体实现步骤s102的过程中,在存储组件中进行查询,确定存储组件中是否存在目标时间区间对应的第一存储方案。若在存储组件中未查询到目标时间区间对应的第一存储方案,则表示目前处于初始化运行阶段,即目标时间区间为所划分的第一个时间区间,执行步骤s103和步骤s104。若在存储组件中查询到目标时间区间对应的第一存储方案,执行步骤s105,以及执行步骤s106至步骤s107。
75.步骤s103:在存储组件中不存在目标时间区间对应的第一存储方案的情况下,确定第一存储方案为默认的存储方案,以及确定目标时间区间的下一个时间区间的第二存储方案为默认的存储方案。
76.在具体实现步骤s103的过程中,在存储组件中不存在目标时间区间对应的第一存储方案的情况下,将预先构建的默认的存储方案作为目标时间区间对应的第一存储方案,即确定第一存储方案为默认的存储方案。与此同时,确定目标时间区间的下一个时间区间的第二存储方案为默认的存储方案,相当于预先构建第二存储方案;后续在采集到采集时间处于目标时间区间的下一个时间区间内的运行指标数据时,可以直接利用第二存储方案
对所采集的运行指标数据进行存储,以避免影响数据的正常写入。
77.在一些具体实施例中,可以基于默认的存储方案在指定数据库中创建包含至少一个索引的索引集;需要说明的是,由于在初始化运行阶段所采集的运行指标数据的数量通常小于一个索引所具备的指定容量,因此基于默认的存储方案所创建的索引集可以只包含一个索引(仅举例)。基于默认的存储方案所创建的索引集只包含一个索引时,确定第一存储方案为默认的存储方案后,可以将所有监控对象都作为新的监控对象,此时将所有采集得到的运行指标数据存储到第一存储方案对应的一个索引中。需要说明的是,前述提及的基于默认的存储方案所创建的索引集中索引的数量,仅仅用于示例说明,基于默认的存储方案所创建的索引集中索引的数量也可以是多个,在此不做具体限定。
78.例如:假设第一存储方案为p0,第二存储方案为p1,在存储组件中不存在p0的情况下,确定p0为默认的存储方案,以及确定p1为默认的存储方案,基于默认的存储方案所创建的索引集中索引的数量i=1。
79.步骤s104:将第一存储方案和第二存储方案保存到存储组件中,及将第一运行指标数据存储到第一存储方案对应的索引集的索引中。
80.由上述内容可知,在构建存储方案之后,需要将构建的存储方案保存到存储组件中,在具体实现步骤s104的过程中,存储组件包含磁盘和缓存,将第一存储方案和第二存储方案在磁盘中进行持久化保存,并以哈希表的形式在缓存中备份第一存储方案和第二存储方案,该哈希表中的键为监控对象和指标类型,该哈希表中的值为索引。
81.以第一运行指标数据对应的监控对象和指标类型为键,对缓存中第一存储方案对应的索引集包含的索引进行查询,确定得到相应的第一目标索引(或者说获取得到第一目标索引的名字)。即将第一运行指标数据对应的监控对象和指标类型作为key,对缓存中第一存储方案对应的索引集包含的索引进行查询,查询与该key对应的value,查询到的value对应的索引即为第一目标索引。将第一运行指标数据存储到指定数据库中的第一目标索引。
82.步骤s105:在存储组件中存在目标时间区间对应的第一存储方案的情况下,将第一运行指标数据存储到第一存储方案对应的索引集的索引中。
83.在具体实现步骤s105的过程中,在存储组件中存在目标时间区间对应的第一存储方案的情况下,以第一运行指标数据对应的监控对象和指标类型为键,对缓存中第一存储方案对应的索引集包含的索引进行查询,确定得到相应的第一目标索引(或者说获取得到第一目标索引的名字)。即将第一运行指标数据对应的监控对象和指标类型作为key,对缓存中第一存储方案对应的索引集包含的索引进行查询,查询与该key对应的value,查询到的value对应的索引即为第一目标索引。将第一运行指标数据存储到指定数据库中的第一目标索引。
84.步骤s106:判断存储组件中是否存在目标时间区间的下一个时间区间对应的第二存储方案。若存储组件中不存在目标时间区间的下一个时间区间对应的第二存储方案,执行步骤s107;若存储组件中存在目标时间区间的下一个时间区间对应的第二存储方案,结束流程。
85.需要说明的是,在将第一运行指标数据存储到第一存储方案对应的索引集的索引时,为保证后续流程中数据的正常写入,需要预先构建目标时间区间的下一个时间区间对
应的第二存储方案。在具体实现步骤s106的过程中,判断存储组件中是否存在目标时间区间的下一个时间区间对应的第二存储方案。若存储组件中不存在第二存储方案,执行步骤s107以构建第二存储方案。若存储组件中存在第二存储方案,则表示已经预先构建了第二存储方案,结束流程。
86.可以理解的是,由于存储方案的构建过程可能会滞后于运行指标数据的写入,因此上述提及的判断存储组件中是否存在第二存储方案具体是指:判断存储组件中是否存在已经生成的第二存储方案,或者,判断存储组件中是否存在正在生成的第二存储方案。在存储组件中存在已经生成的第二存储方案或者存在正在生成的第二存储方案时,即可指示存储组件中存在第二存储方案。
87.步骤s107:利用目标时间区间的上一个时间区间的第三存储方案及第三存储方案对应的索引集,构建第二存储方案并将其存储到存储组件中。
88.在具体实现步骤s107的过程中,若存储组件中不存在目标时间区间的下一个时间区间对应的第二存储方案,利用目标时间区间的上一个时间区间的第三存储方案对应的索引集中存储的数据总量,结合索引的指定容量,确定目标时间区间的下一个时间区间内需创建的索引的数量。
89.具体而言,假设目标时间区间为sn,目标时间区间的上一个时间区间为s
n-1
,目标时间区间的下一个时间区间为s
n+1
;第一存储方案为pn,第三存储方案为p
n-1
,第二存储方案为p
n+1
;利用公式(1)确定s
n+1
需创建的索引的数量i
n+1

90.i
n+1
=t
n-1
/c+1(1)
91.在公式(1)中,t
n-1
为指定数据库中与p
n-1
对应的索引集所存储的数据总量,c为索引的指定容量。
92.在确定得到目标时间区间的下一个时间区间内需创建的索引的数量之后,从采集时间、监控对象和运行指标数据三个维度,解析第三存储方案对应的索引集中存储的运行指标数据的分布情况,并通过背包算法对该分布情况进行纠偏;利用纠偏后的分布情况和目标时间区间的下一个时间区间内需创建的索引的数量,构建第二存储方案p
n+1
并将p
n+1
存储到存储组件中。需要说明的是,将第二存储方案存储到存储组件中的方式,可参见上述步骤s104中的内容,在此不再赘述。
93.进一步需要说明的是,由于目标时间区间内已存储的运行指标数据可能并不完整,且第一存储方案所涉及的索引正处于写入大量运行指标数据的状态,因此目标时间区间内已存储的运行指标数据不足以用于分析以构建下一时间区间的第二存储方案;故,利用目标时间区间的上一个时间区间的第三存储方案对应的索引集中存储的运行指标数据,来作为构建第二存储方案的依据;此处第三存储方案对应的索引集中存储的运行指标数据相当于历史数据。
94.由上述内容可知,存储组件(磁盘和缓存)中存储了各个时间区间对应的存储方案,为节约存储组件和指定数据库的资源,需要定期清除存储组件和指定数据库中的数据。具体而言,在存储组件中,查询构建时间大于预设时长的存储方案;将构建时间大于预设时长的存储方案从存储组件中删除,以及将构建时间大于预设时长的存储方案对应的索引集从指定数据库中删除。
95.需要说明的是,构建时间大于预设时长的存储方案及其对应的索引集可以认为是
过期数据,过期数据通常不再具有业务意义;因此需对各个存储方案进行管理;具体而言,定期清除存储组件中构建时间大于预设时长的存储方案,以及定期清除指定数据库中构建时间大于预设时长的存储方案对应的索引集。
96.例如:假设指定数据库为es,确定距当前时间大于预设时长的存储方案;向es发送删除请求,将距当前时间大于预设时长的存储方案涉及的索引删除;以及将距当前时间大于预设时长的存储方案从磁盘和内存缓存中删除。
97.在本发明实施例中,按照指定时间粒度划分时间区间,每个时间区间都构建相应的存储方案,其中,根据历史的时间区间的存储方案及其对应的索引集构建新的存储方案。基于存储方案在指定数据库中创建包含至少一个索引的索引集,每个索引具有指定容量。在获取到待存储的运行指标数据时,按照待存储的运行指标数据的采集时间确定相应的存储方案,再将获取到的运行指标数据存储到所确定的存储方案对应的索引中。将运行指标数据进行分布化存储,提高查询运行指标数据的效率和时效性。
98.以上内容是关于存储运行指标数据的相关内容,相应的,本发明实施例还提供了相应的查询运行指标数据的内容,请参照图2,示出了本发明实施例提供的查询运行指标数据的流程图,包括以下步骤:
99.步骤s201:在接收到第一查询请求时,解析第一查询请求至少得到待查询监控对象、待查询指标类型和待查询时间范围。
100.需要说明的是,用于查询运行指标数据的查询请求中携带了监控对象、指标类型和时间范围。在具体实现步骤s201的过程中,在通过指标数据查询接口(api)接收到第一查询请求时,解析该第一查询请求至少得到待查询监控对象、待查询指标类型和待查询时间范围。其中,第一查询请求可以由客户端发送。
101.需要说明的是,待查询时间范围涵盖至少一个预先划分的时间区间,即可查询1个或多个时间区间内采集到的某一监控对象(即待查询监控对象)的某一指标类型(即待查询指标类型)的运行指标数据。
102.步骤s202:确定磁盘中是否能查询到待查询时间范围所涵盖的至少一个时间区间对应的第四存储方案。在磁盘中若未能查询到第四存储方案,结束流程;在磁盘中若能查询到第四存储方案,执行步骤s203和步骤s204。
103.在具体实现步骤s202的过程中,确定待查询时间范围所涵盖的至少一个时间区间,并在磁盘中查询待查询时间范围所涵盖的时间区间对应的第四存储方案。若未能在磁盘中查询到第四存储方案,则表示第四存储方案已经过期或者还未被构建。若能在磁盘中查询到第四存储方案,执行步骤s203和步骤s204。
104.需要说明的是,第四存储方案已经过期具体是指:第四存储方案的构建时间大于预设时长,此时已经在磁盘和缓存中将第四存储方案删除。
105.步骤s203:以待查询监控对象和待查询指标类型为键,对缓存中第四存储方案对应的索引集包含的索引进行查询,确定得到相应的第二目标索引。
106.由上述内容可知,待查询时间范围涵盖至少一个预先划分的时间区间,若能在磁盘中查询到第四存储方案,此时可查询到至少一个第四存储方案。在具体实现步骤s203的过程中,对于查询到的每个第四存储方案,以待查询监控对象和待查询指标类型为键,对缓存中第四存储方案对应的索引集包含的索引进行查询,确定得到相应的第二目标索引(或
者说获取得到第二目标索引的名字)。查询到的每个第四存储方案均可确定得到相应的第二目标索引。
107.可以理解的是,确定得到的所有第二目标索引,即为第一查询请求需查询的运行指标数据所涉及的索引。
108.步骤s204:向指定数据库中的第二目标索引发送第二查询请求,获取并输出指标数据结果。
109.在具体实现步骤s204的过程中,向指定数据库中的第二目标索引发送第二查询请求,以获取得到指标数据结果,该指标数据结果至少包含:待查询监控对象在待查询时间范围内的第二运行指标数据(如指标值),第二运行指标数据的指标类型为待查询指标类型。
110.例如:假设第一查询请求需查询一台虚拟机在过去30分钟内的cpu使用率,以及假设按照分钟划分时间区间,此时待查询监控对象为该虚拟机,待查询指标类型为cpu使用率,待查询时间范围为30分钟;通过上述步骤s201至步骤s204中的方式,可从指定数据库中查询得到30条指示cpu使用率的运行指标数据。
111.在获取到指标数据结果之后,可通过预设方式输出该指标数据结果,例如:将指标数据结果反馈给客户端进行展示。
112.在本发明实施例中,在接收到第一查询请求时,以待查询监控对象和待查询指标类型为键对缓存中第四存储方案对应的索引进行查询,即可快速确定需查询的运行指标数据所涉及的第二目标索引。向指定数据库中的第二目标索引发送第二查询请求,获取并输出指标数据结果,提高查询运行指标数据的效率和时效性。
113.结合图1和图2中的内容,请参照图3,图3为本发明实施例提供的一种运行指标数据的处理方法的原理架构图;其中,指标数据采集100用于采集运行指标数据,调用数据访问层300中的“数据写入”功能将所采集的运行指标数据写入指定数据库400中相应的索引集的索引,指定数据库400为elasticsearch;在查询运行指标数据时,指标数据展现200调用数据访问层300中的“数据查询”功能从指定数据库400中查询得到指标数据结果,并展现指标数据结果,功能从指定数据库400中至少包含了多个索引集;数据访问层300中的“存储方案生成和维护”的具体实现方式,可参见上述本发明实施例图1中关于构建和管理存储方案的相关内容,在此不再赘述。
114.与上述本发明实施例提供的一种运行指标数据的处理方法相对应,参见图4,本发明实施例还提供了一种运行指标数据的处理系统的结构框图,该处理系统包括:第一确定单元401、第二确定单元402、存储单元403和构建单元404;
115.第一确定单元401,用于采集到待存储的第一运行指标数据时,确定第一运行指标数据的采集时间所处的目标时间区间,目标时间区间为按照指定时间粒度所划分的时间区间。
116.第二确定单元402,用于在存储组件中不存在目标时间区间对应的第一存储方案的情况下,确定第一存储方案为默认的存储方案,以及确定目标时间区间的下一个时间区间的第二存储方案为默认的存储方案,其中,默认的存储方案用于在指定数据库中创建包含至少一个索引的索引集,索引具有指定容量,索引用于存储指定监控对象的预设指标类型的运行指标数据。
117.存储单元403,用于将第一存储方案和第二存储方案保存到存储组件中,及将第一
运行指标数据存储到第一存储方案对应的索引集的索引中。
118.在具体实现中,存储组件包含磁盘和缓存;用于将第一存储方案和第二存储方案保存到存储组件中的存储单元403,具体用于:将第一存储方案和第二存储方案在磁盘中进行持久化保存,并以哈希表的形式在存储组件缓存中备份第一存储方案和第二存储方案;其中,哈希表中的键为监控对象和指标类型,哈希表中的值为索引。
119.存储单元403还用于:在存储组件中存在目标时间区间对应的第一存储方案的情况下,将第一运行指标数据存储到第一存储方案对应的索引集的索引中,以及执行构建单元404。
120.在具体实现中,用于将第一运行指标数据存储到第一存储方案对应的索引集的索引中的存储单元403,具体用于:以第一运行指标数据对应的监控对象和指标类型为键,对缓存中第一存储方案对应的索引集包含的索引进行查询,确定得到相应的第一目标索引;将第一运行指标数据存储到指定数据库中的第一目标索引。
121.构建单元404,用于若存储组件中不存在目标时间区间的下一个时间区间对应的第二存储方案,利用目标时间区间的上一个时间区间的第三存储方案及第三存储方案对应的索引集,构建第二存储方案并将其存储到存储组件中。
122.优选的,结合图4示出的内容,构建单元404包括:确定模块、解析模块和构建模块,各个模块的执行原理如下:
123.确定模块,用于若存储组件中不存在目标时间区间的下一个时间区间对应的第二存储方案,利用目标时间区间的上一个时间区间的第三存储方案对应的索引集中存储的数据总量,结合指定容量,确定下一个时间区间内需创建的索引的数量。
124.解析模块,用于解析第三存储方案对应的索引集中存储的运行指标数据的分布情况。
125.构建模块,用于利用分布情况和下一个时间区间内需创建的索引的数量,构建第二存储方案并将其存储到存储组件中。
126.优选的,结合图4示出的内容,该处理系统还包括:
127.第一查询单元,用于在存储组件中,查询构建时间大于预设时长的存储方案;
128.删除单元,用于将构建时间大于预设时长的存储方案从存储组件中删除,以及将构建时间大于预设时长的存储方案对应的索引集从指定数据库中删除。
129.在本发明实施例中,按照指定时间粒度划分时间区间,每个时间区间都构建相应的存储方案,其中,根据历史的时间区间的存储方案及其对应的索引集构建新的存储方案。基于存储方案在指定数据库中创建包含至少一个索引的索引集,每个索引具有指定容量。在获取到待存储的运行指标数据时,按照采集时间确定相应的存储方案,再将获取到的运行指标数据存储到所确定的存储方案对应的索引中。将运行指标数据进行分布化存储,提高查询运行指标数据的效率和时效性。
130.优选的,结合图4示出的内容,该处理系统还包括:
131.解析单元,用于在接收到第一查询请求时,解析第一查询请求至少得到待查询监控对象、待查询指标类型和待查询时间范围。
132.第二查询单元,用于在磁盘中若查询到待查询时间范围所涵盖的至少一个时间区间对应的第四存储方案,以待查询监控对象和待查询指标类型为键,对缓存中第四存储方
案对应的索引集包含的索引进行查询,确定得到相应的第二目标索引;
133.请求单元,用于向指定数据库中的第二目标索引发送第二查询请求,获取并输出指标数据结果,指标数据结果至少包含:待查询监控对象在待查询时间范围内的第二运行指标数据,第二运行指标数据的指标类型为待查询指标类型。
134.在本发明实施例中,在接收到第一查询请求时,以待查询监控对象和待查询指标类型为键对缓存中第四存储方案对应的索引进行查询,即可快速确定需查询的运行指标数据所涉及的第二目标索引。向指定数据库中的第二目标索引发送第二查询请求,获取并输出指标数据结果,提高查询运行指标数据的效率和时效性。
135.综上所述,本发明实施例提供一种运行指标数据的处理方法及系统,采用本方案,按照指定时间粒度划分时间区间,每个时间区间都构建相应的存储方案,其中,根据历史的时间区间的存储方案及其对应的索引集构建新的存储方案。基于存储方案在指定数据库中创建包含至少一个索引的索引集,每个索引具有指定容量。在获取到待存储的运行指标数据时,按照采集时间确定相应的存储方案,再将获取到的运行指标数据存储到所确定的存储方案对应的索引中。将运行指标数据进行分布化存储,提高查询运行指标数据的效率和时效性。
136.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
137.专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
138.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1