1.本技术涉及系统运维技术领域,尤其涉及一种实验报告的自动生成方法及装置。
背景技术:2.混沌工程,是一种提高技术架构弹性能力的复杂技术手段,通过混沌工程实验可以确保系统的可用性,混沌工程旨在将故障扼杀在襁褓之中,也就是在故障造成中断之前将它们识别出来,通过主动制造故障,测试系统在各种压力下的行为,识别并修复故障问题,避免造成严重后果。
3.现阶段混沌工程实验的实施方法为:在实验过程中,实验人员需额外关注监控平台的指标动态,并结合个人经验对实验事件进行反馈、记录或采取故障恢复操作;在实验结束后,实验人员通过手工笔记、截图等方式记录实验过程,整理形成实验报告,完成一次混沌工程实验。
4.但在实际混沌工程实验过程中,监控平台和压测平台的指标繁多且持续变化,实验完成后人为填写实验报告效率低,无法在实验过程中精准且全面地记录关键指标和相关图表,对实验经验的积累和系统的迭代效率都会产生不利的影响。
技术实现要素:5.有鉴于此,本技术的目的在于至少提供一种实验报告的自动生成方法,通过识别目标项实验数据及其对应的数据图表,自动生成实验报告,从而在全面记录实验数据的同时提高实验报告生成效率。
6.本技术主要包括以下几个方面:
7.第一方面,本技术实施例提供一种实验报告的自动生成方法,包括:运行目标混沌实验;从针对目标混沌实验设置的监控工具获取混沌实验运行过程中的各项实验数据;在目标混沌实验结束之后,从监控工具获取针对目标混沌实验所形成的仪表板界面图像;利用预先训练好的深度学习模型,从仪表板界面图像中分割出至少一个目标项实验数据对应的目标数据图表;将各项实验数据与至少一个目标数据图表分别填充到预设实验报告模板的对应内容区域,以形成与目标混沌实验对应的目标实验报告。
8.在一种可能的实施方式中,目标混沌实验中被预先注入了至少一个故障,监控工具包括故障指标监控工具和压测指标监控工具,实验数据包括至少一个目标故障指标数据以及多个目标压测指标数据,每个目标故障指标数据对应目标混沌实验中被预先注入的一个故障,其中,通过以下方式获取混沌实验运行过程中的各项实验数据:从故障指标监控工具获取在混沌实验运行过程中与被预先注入的至少一个故障所对应的目标故障指标数据;从压测指标监控工具获取用于监控混沌实验运行过程的多个目标压测指标数据。
9.在一种可能的实施方式中,仪表板界面包括从故障指标监控工具获取的故障指标仪表板界面图像,以及从压测指标监控工具获取的压测指标仪表板界面图像,其中,利用预先训练好的深度学习模型,从仪表板界面图像中分割出至少一个目标项实验数据对应的目
标数据图表的步骤包括:将从故障指标监控工具获取的故障指标仪表板界面图像输入预先训练好的深度学习模型,对故障指标仪表板界面图像进行图像分割处理,以获得至少一个待处理故障数据图表;识别每个待处理故障数据图表中的图文信息,确定与每个目标故障指标数据对应的目标故障数据图表;将从压测指标监控工具获取的压测指标仪表板界面图像输入预先训练好的深度学习模型,对压测指标仪表板界面图像进行图像分割处理,以获得至少一个待处理压测数据图表;识别每个待处理压测数据图表中的图文信息,确定与每个目标压测指标数据对应的目标压测数据图表。
10.在一种可能的实施方式中,预设实验报告模板包括故障指标数据区域和压测指标数据区域;将各项实验数据与至少一个目标数据图表分别填充到预设实验报告模板的对应内容区域,以形成与目标混沌实验对应的目标实验报告的步骤包括:将少一个目标故障指标数据及与每个目标故障指标数据对应的目标故障数据图表填充到故障指标数据区域;将多个目标压测指标数据及与每个目标压测指标数据对应的目标压测数据图表填充到压测指标数据区域。
11.在一种可能的实施方式中,预设实验报告模板还包括实验基础数据区域,自动生成方法还包括:从运行目标混沌实验的混沌工程实验平台获取与目标混沌实验相关的实验基础数据;将实验基础数据填充到实验基础数据区域。
12.在一种可能的实施方式中,预设实验报告模板还包括预警故障指标数据区域,针对每个目标故障指标数据,自动生成方法还包括:判断该目标故障指标数据是否满足预先设置的与该目标故障指标数据对应的第一预警条件;若该目标故障指标数据满足对应的第一预警条件,将该目标故障指标数据填充到预警故障指标数据区域;若该目标故障指标数据不满足对应的第一预警条件,将该目标故障指标数据填充到故障指标数据区域。
13.在一种可能的实施方式中,预警指标数据区域包括预警压测指标区域,针对每个目标压测指标数据,自动生成方法还包括:判断该目标压测指标数据是否满足预先设置的与该目标压测指标数据对应的第二预警条件;若该目标压测指标数据满足对应的第二预警条件,将该目标压测指标数据填充到预警压测指标数据区域;若该目标压测指标数据不满足对应的第二预警条件,将该目标压测指标数据填充到压测指标数据区域。
14.第二方面,本技术实施例还提供一种实验报告的自动生成装置,自动生成装置包括:实验运行模块,用于运行目标混沌实验;监控模块,用于从针对目标混沌实验设置的监控工具获取混沌实验运行过程中的各项实验数据;获取模块,在目标混沌实验结束之后,从监控工具获取针对目标混沌实验所形成的仪表板界面图像;分割模块,利用预先训练好的深度学习模型,从仪表板界面图像中分割出至少一个目标项实验数据对应的目标数据图表;报告生成模块,将各项实验数据与至少一个目标数据图表分别填充到预设实验报告模板的对应内容区域,以形成与目标混沌实验对应的目标实验报告。
15.第三方面,本技术实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过所述总线进行通信,所述机器可读指令被所述处理器运行时执行上述第一方面或第一方面中任一种可能的实施方式中所述的实验报告的自动生成方法的步骤。
16.第四方面,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述第一方面或第一方
面中任一种可能的实施方式中所述的实验报告的自动生成的步骤。
17.本技术实施例提供的一种实验报告的自动生成方法,自动生成方法包括:运行目标混沌实验;从针对目标混沌实验设置的监控工具获取混沌实验运行过程中的各项实验数据;在目标混沌实验结束之后,从监控工具获取针对目标混沌实验所形成的仪表板界面图像;利用预先训练好的深度学习模型,从仪表板界面图像中分割出至少一个目标项实验数据对应的目标数据图表;将各项实验数据与至少一个目标数据图表分别填充到预设实验报告模板的对应内容区域,以形成与目标混沌实验对应的目标实验报告。本技术通过识别目标项实验数据及其对应的数据图表,自动生成实验报告,从而在全面记录实验数据的同时提高实验报告生成效率。
18.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
19.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
20.图1示出了本技术实施例所提供的一种实验报告的自动生成方法的流程图;
21.图2示出了本技术实施例提供的一种实验报告的自动生成装置的结构示意图;
22.图3示出了本技术实施例所提供的一种电子设备的结构示意图。
具体实施方式
23.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,应当理解,本技术中的附图仅起到说明和描述的目的,并不用于限定本技术的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本技术中使用的流程图示出了根据本技术的一些实施例实现的操作。应当理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本技术内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
24.另外,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的全部其他实施例,都属于本技术保护的范围。
25.现阶段混沌工程实验的实施方法为
26.在实验过程中,实验人员需额外关注监控平台的指标动态,并结合个人经验对实验事件的结果进行反馈、记录或采取相应的故障恢复操作;;在实验结束后,实验人员通过手工笔记、截图等方式记录实验过程,整理形成实验报告,完成一次混沌工程实验。
27.由此可见,现有技术在混沌工程实验过程中,一方面,由于监控平台的指标繁多且
持续变化,人为关注各项指标的变化常常会出现手忙脚乱的显现,且难免会出现漏关注,导致无法有针对性地观察和识别先要关注的关键指标信息,对人员的经验能力有一定要求。
28.另一方面,实验结束后,人为填写实验报告效率过低,且由于无法在实验过程中精准且全面地记录关键指标和相关图表,实验报告中也会出现信息纰漏,这对实验经验的积累和系统的迭代效率都会产生不利的影响。
29.基于此,本技术实施例提供了一种实验报告的自动生成方法及其装置,通过识别目标项实验数据及其对应的数据图表,自动生成实验报告,从而在全面记录实验数据的同时提高实验报告生成效率,具体如下
30.请参阅图1,图1示出了本技术实施例所提供的一种实验报告的自动生成方法的流程图。如图1所示,本技术实施例提供的自动生成方法,包括以下步骤:
31.s100、运行目标混沌实验。
32.在一具体实施例中,可以通过混沌工程实验平台运行目标混沌实验,具体的,混沌工程实验平台预先设置有至少一个混沌实验,实验人员可以选择想要执行的目标混沌实验并运行,这里,目标混沌实验中被预先注入了至少一个故障,针对目标混沌实验中的每个故障,均预先设置了与该故障对应的故障参数,在目标混沌实验运行过程中,会通过混沌工具和故障注入探针,按照每个故障对应的故障参数,分别将各故障注入对应的服务中。
33.在一具体实施例中,故障参数包括但不限于以下项中的至少一项:故障注入对象、故障类型、故障扰动程度、故障扰动的服务,其中,故障注入对象即指示了故障所注入的服务,故障类型包括但不限于系统应用的延时、异常和满载/溢出,以及系统资源的删除、丢失、新增、损坏、重复、移动和暂停,其中,系统应用包括但不限于以下项中至少一项:分布式服务框架、http请求、消息队列以及数据库以及服务进程。
34.s200、从针对目标混沌实验设置的监控工具获取混沌实验运行过程中的各项实验数据。
35.具体的,监控工具包括故障指标监控工具和压测指标监控工具,实验数据包括至少一个目标故障指标数据以及多个目标压测指标数据,其中,每个目标故障指标数据对应目标混沌实验中被预先注入的一个故障,其中,通过以下方式获取混沌实验运行过程中的各项实验数据:
36.从故障指标监控工具获取在混沌实验运行过程中与被预先注入的至少一个故障所对应的目标故障指标数据,具体的,故障指标监控工具包括但不限于以下项中任意一项:apm、zabbix、prometheus、grafana。
37.在一优选实施例中,故障指标监控工具所监控的指标包括默认指标和预设指标,其中,在运行目标混沌实验之前,可由实验人员按照目标混沌实验被注入的各故障对应的故障类型,在故障指标监控工具上设置所要监控的预设指标,在本技术实施例中,预设指标即在故障指标监控工具上设置的与被预先注入的至少一个故障所对应的目标故障指标,同时,针对每个目标故障指标,还可以预先设置该目标故障指标对应的阈值参数以及对应的第一预警条件,一般,在设置好目标故障指标后,该目标故障指标会存在默认的阈值参数以及对应的第一预警条件,例如,若目标故障指标为cpu使用率》70%,其中,70%为cpu使用率对应的阈值参数,第一预警条件可设置为cpu使用率大于70%,且持续时间超3分钟触发报警。
38.在另一优选实施例中,也可以对目标故障指标对应的阈值参数以及对应的第一预警条件进行调整,比如将cpu使用率改为cpu使用率》90%,且低于阈值持续时间超5分钟触发报警。
39.优选地,在目标混沌实验开始运行后,故障指标监控工具会获取与目标监控指标对应的目标监控指标数据,可以获取由消息队列或influxdb数据库等中间件自动推送由故障指标监控工具获取到的目标监控指标数据。
40.从压测指标监控工具获取用于监控混沌实验运行过程的多个目标压测指标数据,具体的,压测指标监控工具包括但不限于以下项中任意一项:pts、loadrunner、jmeter。
41.在一优选实施例中,压测指标监控工具用于对待测试系统的系统性能进行测试,且压测指标包括但不限于以下项中的至少一项:tps、交易成功率以及吞吐量,具体的,在本技术中,压测指标监控工具向待测试系统注入压力测试,在压力测试或目标混沌实验开始运行之前,可以设置在目标混沌实验中所要监测的目标压测指标数据以及每个目标压测指标数据对应的阈值参数以及第二预警条件,这里每个目标压测指标数据对应的阈值参数以及第二预警条件与上述目标故障指标数据的阈值以及第一预警条件的设置过程类似,在此不做赘述。
42.具体的,待测试系统涉及至少一个服务,本技术的目标混沌实验即通过混沌工程平台提供的混沌工具和故障探针,将目标混沌实验涉及的至少一个故障按照故障参数注入待测试系统对应的服务中,也就是说,目标混沌实验中每个故障对应的故障注入对象为待测试系统对应的服务中的一个,然后通过压测指标监控工具监测目标压测指标数据以及通过故障指标监控工具监测的至少一个目标故障指标数据,其中,压测指标监控工具在压力测试进行时间段内会全时段采集压测指标数据,且压测指标监控工具与故障指标监控工具相互独立,压测指标监控工具关注的是在目标混沌实验运行的时间段内,各压测指标数据的变化趋势。
43.优选地,在目标混沌实验开始运行后,压测指标监控工具会获取与目标压测指标对应的目标压测指标数据,可以获取由消息队列或influxdb数据库等中间件自动推送由压测指标监控工具获取到的目标压测指标数据。
44.s300、在目标混沌实验结束之后,从监控工具获取针对目标混沌实验所形成的仪表板界面图像。
45.具体的,仪表板界面图像包括从故障指标监控工具获取的故障指标仪表板界面图像,以及从压测指标监控工具获取的压测指标仪表板界面图像,其中,在目标混沌实验结束之后,一方面,故障指标监控工具会对获取到的各项故障指标数据分别进行统计处理,生成与各项故障指标数据对应的故障指标数据图表,并将各故障指标数据图表汇总到故障指标仪表板界面进行显示,生成故障指标仪表板界面图像,同时,由消息队列或influxdb数据库等中间件自动推送由故障指标监控工具生成的故障指标仪表板界面图像,另一方面,压测指标监控工具会对获取到的各项压测指标数据分别进行统计处理,生成与各项压测指标数据对应的故障指标数据图表,并将各压测指标数据图表汇总到压测指标仪表板界面进行显示,生成压测指标仪表板界面图像,同时,由消息队列或influxdb数据库等中间件自动推送由压测指标监控工具生成的压测指标仪表板界面图像。
46.s400、利用预先训练好的深度学习模型,从仪表板界面图像中分割出至少一个目
标项实验数据对应的目标数据图表。
47.在一优选实施例中,利用预先训练好的深度学习模型,从仪表板界面图像中分割出至少一个目标项实验数据对应的目标数据图表的步骤包括:
48.将从故障指标监控工具获取的故障指标仪表板界面图像输入预先训练好的深度学习模型,对故障指标仪表板界面图像进行图像分割处理,以获得至少一个待处理故障数据图表,识别每个待处理故障数据图表中的图文信息,确定与每个目标故障指标数据对应的目标故障数据图表,其中,故障指标仪表板界面图像包括但不限于以下故障指标图表中的至少一个:cpu使用率图表、内存使用率图表以及网络状态监控图表。
49.具体的,可以通过识别每个待处理故障数据图表中的关键词信息,将该待处理故障数据图表对应的关键词信息与目标故障指标数据进行匹配,并根据匹配结果,确定与每个目标故障指标数据对应的目标故障数据图表。
50.将从压测指标监控工具获取的压测指标仪表板界面图像输入预先训练好的深度学习模型,对压测指标仪表板界面图像进行图像分割处理,以获得至少一个待处理压测数据图表,识别每个待处理压测数据图表中的图文信息,确定与每个目标压测指标数据对应的目标压测数据图表其中,压测指标仪表板界面图像包括但不限于以下压测指标图表中的至少一个:tps趋势图以及交易响应时间趋势图。
51.具体的,可以通过识别每个待处理压测数据图表中的关键词信息,将该待处理压测数据图表对应的关键词信息与目标压测指标数据进行匹配,并根据匹配结果,确定与每个目标压测指标数据对应的目标压测数据图表。
52.s500、将各项实验数据与至少一个目标数据图表分别填充到预设实验报告模板的对应内容区域,以形成与目标混沌实验对应的目标实验报告。
53.在具体实施中,预设实验报告模板包括故障指标数据区域和压测指标数据区域,将各项实验数据与至少一个目标数据图表分别填充到预设实验报告模板的对应内容区域,以形成与目标混沌实验对应的目标实验报告的步骤包括:
54.将少一个目标故障指标数据及与每个目标故障指标数据对应的目标故障数据图表填充到故障指标数据区域,将多个目标压测指标数据及与每个目标压测指标数据对应的目标压测数据图表填充到压测指标数据区域。
55.一示例中,预设实验报告模板还包括实验基础数据区域,自动生成方法还包括:
56.从运行目标混沌实验的混沌工程实验平台获取与目标混沌实验相关的实验基础数据,将实验基础数据填充到实验基础数据区域。
57.具体的,实验基础数据包括但不限于以下项中至少一项:实验人员、实验开始时间、实验结束时间、目标混沌实验涉及的至少一个故障对应的故障参数,其中,混沌工程实验平台会记录实验基础数据,由消息队列或influxdb数据库等中间件自动推送由混沌工程实验平台记录的实验基础数据。
58.在一具体实施例中,预设实验报告模板还包括预警故障指标数据区域,针对每个目标故障指标数据,自动生成方法还包括:
59.判断该目标故障指标数据是否满足预先设置的与该目标故障指标数据对应的第一预警条件,若该目标故障指标数据满足对应的第一预警条件,将该目标故障指标数据填充到预警故障指标数据区域;若该目标故障指标数据不满足对应的第一预警条件,将该目
标故障指标数据填充到故障指标数据区域。
60.在一具体实施例中,预警指标数据区域包括预警压测指标区域,针对每个目标压测指标数据,自动生成方法还包括:
61.判断该目标压测指标数据是否满足预先设置的与该目标压测指标数据对应的第二预警条件,若该目标压测指标数据满足对应的第二预警条件,将该目标压测指标数据填充到预警压测指标数据区域,若该目标压测指标数据不满足对应的第二预警条件,将该目标压测指标数据填充到压测指标数据区域。
62.基于同一申请构思,本技术实施例中还提供了与上述实施例提供的实验报告的自动生成方法对应的实验报告的自动生成装置,由于本技术实施例中的装置解决问题的原理与本技术上述实施例的实验报告的自动生成方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
63.请参阅图2,图2示出了本技术实施例提供的一种实验报告的自动生成装置的结构示意图,如图2所示,自动生成装置包括:
64.实验运行模块600,用于运行目标混沌实验;
65.监控模块610,用于从针对目标混沌实验设置的监控工具获取混沌实验运行过程中的各项实验数据;
66.获取模块620,用于在目标混沌实验结束之后,从监控工具获取针对目标混沌实验所形成的仪表板界面;
67.分割模块630,用于利用预先训练好的深度学习模型,从仪表板界面中分割出至少一个目标项实验数据对应的目标数据图表;
68.报告生成模块640,用于将各项实验数据与至少一个目标数据图表分别填充到预设实验报告模板的对应内容区域,以形成与目标混沌实验对应的目标实验报告。
69.基于同一申请构思,请参阅图3,图3示出了本技术实施例提供的一种电子设备的结构示意图,电子设备700包括:处理器710、存储器720和总线730,所述存储器720存储有所述处理器710可执行的机器可读指令,当电子设备700运行时,所述处理器710与所述存储器720之间通过所述总线430进行通信,所述机器可读指令被所述处理器710运行时执行如上述实施例中任一所述的实验报告的自动生成方法的步骤。
70.基于同一申请构思,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行上述实施例提供的实验报告的自动生成方法的步骤。
71.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本技术所提供的几个实施例中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
72.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显
示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
73.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
74.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
75.以上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。