代码发布的告警监控方法及系统
技术领域
本申请涉及代码处理技术领域,具体而言,涉及一种代码发布的告警监控方法及系统。
背景技术
随着通信技术的发展,现目前的很多线上业务功能是通过软件或应用程序实现的,这些软件或者应用程序在运行时所提供的功能是预先通过代码编写实现的。一般而言,一款服务软件或者应用程序的上线包括代码编写、代码测试和代码发布这三个步骤,作为服务软件或者应用程序上线的最后一个关卡,代码发布的准确性和效率直接影响着后续的服务软件或者应用程序的运行情况。然而现有技术在进行代码发布之前,难以精准、快速地对待发布代码进行质量监控和告警,这样可能导致有问题的代码上线,从而引发后续的功能异常,增加后续异常修复的成本。
发明内容
本发明实施例提供了一种代码发布的告警监控方法,包括:
获取目标代码发布事项中的生产环境配置信息和代码功能配置信息;
基于所述目标代码发布事项中的生产环境配置信息和代码功能配置信息之间的配置信息相关度,对所述目标代码发布事项中的生产环境配置信息和代码功能配置信息进行配对,得到配置信息配对结果;
将配对失败的代码功能配置信息确定为待监控代码功能配置信息,根据所述配置信息配对结果中的代码功能配置信息与所述待监控代码功能配置信息之间的差异化比较结果,确定与所述待监控代码功能配置信息相对应的执行脚本检测目录;
对与所述待监控代码功能配置信息相对应的执行脚本检测目录和所述待监控代码功能配置信息进行代码发布校验,得到代码发布校验结果;
根据所述代码发布校验结果和所述配置信息配对结果,确定所述目标代码发布事项中的执行脚本验证信息和所述执行脚本验证信息对应的代码质检结果,在所述代码质检结果表征所述目标代码发布事项中的待发布代码存在异常时,输出告警信息。
可选地,所述获取目标代码发布事项中的生产环境配置信息和代码功能配置信息,包括:
获取所述目标代码发布事项中的至少两个生产环境配置事项和至少两个代码功能配置事项;
获取所述至少两个生产环境配置事项之间的生产环境权限变化信息和生产环境配置事项的事项关联记录,获取所述至少两个代码功能配置事项之间的代码功能权限变化信息和代码功能配置事项的事项关联记录;
根据所述生产环境权限变化信息和所述生产环境配置事项的事项关联记录,对所述至少两个生产环境配置事项进行组合,得到所述目标代码发布事项中的生产环境配置信息;其中,一个生产环境配置信息包括至少一个生产环境配置事项;
根据所述代码功能权限变化信息和所述代码功能配置事项的事项关联记录,对所述至少两个代码功能配置事项进行组合,得到所述目标代码发布事项中的代码功能配置信息;其中,一个代码功能配置信息包括至少一个代码功能配置事项。
可选地,所述基于所述目标代码发布事项中的生产环境配置信息和代码功能配置信息之间的配置信息相关度,对所述目标代码发布事项中的生产环境配置信息和代码功能配置信息进行配对,得到配置信息配对结果,包括:
将所述目标代码发布事项中的代码功能配置信息确定为已标记代码功能配置信息,将所述目标代码发布事项中的生产环境配置信息确定为已标记生产环境配置信息;其中,所述已标记代码功能配置信息中的代码功能配置事项是从针对所述目标代码发布事项的实时配置事项中所确定的;
获取所述实时配置事项中的生产环境配置事项;将所述实时配置事项中的生产环境配置事项与所述已标记生产环境配置信息中的生产环境配置事项之间的配置事项相关度,确定为所述已标记代码功能配置信息与所述已标记生产环境配置信息之间的所述配置信息相关度;当所述配置信息相关度大于或等于预设相关度阈值时,对所述已标记代码功能配置信息和所述已标记生产环境配置信息进行配对,得到所述配置信息配对结果。
可选地,所述待监控代码功能配置信息包括所述目标代码发布事项中的局部代码功能配置事项;所述配置信息配对结果的数量为至少两个;每个配置信息配对结果中的代码功能配置信息分别包括所述目标代码发布事项中的全局代码功能配置事项;所述根据所述配置信息配对结果中的代码功能配置信息与所述待监控代码功能配置信息之间的差异化比较结果,确定与所述待监控代码功能配置信息相对应的执行脚本检测目录,包括:
根据所述局部代码功能配置事项,获取所述待监控代码功能配置信息的局部配置信息内容片段;
根据所述每个配置信息配对结果包括的全局代码功能配置事项,分别获取所述每个配置信息配对结果中的代码功能配置信息的全局配置信息内容片段;
获取所述局部配置信息内容片段分别与所述每个配置信息配对结果对应的全局配置信息内容片段之间的片段关联性识别结果;
根据所述每个配置信息配对结果所属的片段关联性识别结果,确定所述每个配置信息配对结果中的代码功能配置信息分别与所述待监控代码功能配置信息之间的差异化比较结果;
当目标配置信息配对结果的统计值大于第一预设统计值阈值且小于或等于第二预设统计值阈值时,将所述目标配置信息配对结果中的生产环境配置信息所包含的执行脚本检测目录,确定为与所述待监控代码功能配置信息相对应的执行脚本检测目录;所述目标配置信息配对结果,指所属的差异化比较结果对应的差异系数大于或等于预设差异系数的配置信息配对结果。
可选地,所述局部代码功能配置事项的配置事项数量为至少两个;所述根据所述局部代码功能配置事项,获取所述待监控代码功能配置信息的局部配置信息内容片段,包括:
获取至少两个局部代码功能配置事项中的每个局部代码功能配置事项分别对应的配置事项内容片段;
根据所述每个局部代码功能配置事项分别对应的配置事项内容片段,获取所述至少两个局部代码功能配置事项对应的局部关联内容片段;
将所述局部关联内容片段,确定为所述局部配置信息内容片段。
可选地,所述至少两个配置信息配对结果包括配置信息配对结果i,i为小于或等于所述至少两个配置信息配对结果的总数量的正整数;所述配置信息配对结果i包括的全局代码功能配置事项的配置事项数量为至少两个;所述根据所述每个配置信息配对结果包括的全局代码功能配置事项,分别获取所述每个配置信息配对结果中的代码功能配置信息的全局配置信息内容片段,包括:
获取所述配置信息配对结果i包括的至少两个全局代码功能配置事项中的每个全局代码功能配置事项分别对应的配置事项内容片段;
根据所述每个全局代码功能配置事项分别对应的配置事项内容片段,获取所述至少两个全局代码功能配置事项对应的全局关联内容片段;
将所述全局关联内容片段,确定为所述配置信息配对结果i中的代码功能配置信息的全局配置信息内容片段。
可选地,所述待监控代码功能配置信息的数量为至少两个;所述方法还包括:
当所述目标配置信息配对结果的数量小于或等于所述第一预设统计值阈值时,将与每个待监控代码功能配置信息之间的差异化比较结果对应的差异系数最大的代码功能配置信息所对应的配置信息配对结果,分别确定为所述每个待监控代码功能配置信息对应的待处理配对结果;
将所述每个待监控代码功能配置信息对应的待处理配对结果中的生产环境配置信息所包含的执行脚本检测目录,分别确定为所述每个待监控代码功能配置信息对应的待处理执行脚本检测目录;
根据所述每个待监控代码功能配置信息对应的待处理执行脚本检测目录,确定待确定检测目录对应的至少两个检测目录描述信息;
获取所述至少两个检测目录描述信息在至少两个配置信息配对结果的生产环境配置信息所包含的执行脚本检测目录中的第一检测目录统计结果;
根据所述第一检测目录统计结果,确定所述每个待监控代码功能配置信息针对所述待确定检测目录的第一目标检测目录描述信息;
将分别具有所述每个待监控代码功能配置信息对应的第一目标检测目录描述信息的所述待确定检测目录,确定为与所述每个待监控代码功能配置信息相对应的执行脚本检测目录;所述至少两个检测目录描述信息在与所述每个待监控代码功能配置信息相对应的执行脚本检测目录中的第二检测目录统计结果对应的检测目录的更新频率,等于所述第一检测目录统计结果的检测目录的更新频率。
可选地,所述方法还包括:
当所述目标配置信息配对结果的数量大于所述第二预设统计值阈值时,统计待确定检测目录的至少两个检测目录描述信息在所述目标配置信息配对结果的生产环境配置事项所包含的执行脚本检测目录中的目录位置信息;所述至少两个检测目录描述信息,是根据所述目标配置信息配对结果中的生产环境配置信息所包含的执行脚本检测目录所确定的;
根据所述待监控代码功能配置信息与所述目标配置信息配对结果之间的差异化比较结果、以及所述目录位置信息,从所述至少两个检测目录描述信息中,确定所述待监控代码功能配置信息针对所述待确定检测目录的第二目标检测目录描述信息;
将具有所述第二目标检测目录描述信息的所述待确定检测目录,确定为与所述待监控代码功能配置信息相对应的执行脚本检测目录。
可选地,所述方法还包括:
将所述配置信息配对结果中的生产环境配置信息所包含的执行脚本检测目录,确定为所述配置信息配对结果所包含的执行脚本检测目录;
将所述配置信息配对结果和所述代码发布校验结果,确定为所述目标代码发布事项中的已标记配对结果;
将所述已标记配对结果所包含的执行脚本检测目录,确定为目标执行脚本检测目录;
为所述目标执行脚本检测目录与所对应的所述已标记配对结果中的代码功能配置信息添加相同的目录标签;
将具有所述目录标签的所述目标执行脚本检测目录,分别输入至预设的多维均值聚类网络、预设的深度学习神经网络以及预设的前向反馈神经网络;
其中,通过所述预设的多维均值聚类网络对所述目标执行脚本检测目录进行代码质检的速率,大于通过所述预设的深度学习神经网络对所述目标执行脚本检测目录进行代码质检的速率;通过所述预设的深度学习神经网络对所述目标执行脚本检测目录进行代码质检的速率,大于通过所述预设的前向反馈神经网络对所述目标执行脚本检测目录进行代码质检的速率;所述预设的多维均值聚类网络针对所述目标执行脚本检测目录的代码误检率,小于所述预设的深度学习神经网络针对所述目标执行脚本检测目录的代码误检率;所述预设的深度学习神经网络针对所述目标执行脚本检测目录的代码误检率,小于所述预设的前向反馈神经网络针对所述目标执行脚本检测目录的代码误检率;
其中,所述根据所述代码发布校验结果和所述配置信息配对结果,确定所述目标代码发布事项中的执行脚本验证信息和所述执行脚本验证信息对应的代码质检结果,包括:
根据所述已标记配对结果中的代码功能配置信息,确定所述目标代码发布事项中的所述执行脚本验证信息;
根据所述已标记配对结果中的代码功能配置信息所具有的所述目录标签,从所述预设的多维均值聚类网络、所述预设的深度学习神经网络或所述预设的前向反馈神经网络中,获取所述执行脚本验证信息对应的代码质检结果;
其中,所述根据所述已标记配对结果中的代码功能配置信息所具有的所述目录标签,从所述预设的多维均值聚类网络、所述预设的深度学习神经网络或所述预设的前向反馈神经网络中,获取所述执行脚本验证信息对应的代码质检结果,包括:
根据所述已标记配对结果中的代码功能配置信息所具有的所述目录标签,生成用于在所述预设的多维均值聚类网络中检测所述目标执行脚本检测目录的第一代码检测指示信息,当根据所述第一代码检测指示信息未从所述预设的多维均值聚类网络中确定出所述执行脚本验证信息对应的代码质检结果时,根据所述第一代码检测指示信息,生成用于在所述预设的深度学习神经网络中检测所述目标执行脚本检测目录的第二代码检测指示信息;
当根据所述第二代码检测指示信息未从所述预设的深度学习神经网络中确定出所述执行脚本验证信息对应的代码质检结果时,根据所述第二代码检测指示信息,生成用于在所述预设的前向反馈神经网络中检测所述目标执行脚本检测目录的第三代码检测指示信息;
根据所述第三代码检测指示信息,从所述预设的前向反馈神经网络中获取所述执行脚本验证信息对应的代码质检结果。
本发明实施例还提供了一种代码发布的告警监控系统,包括互相之间通信的代码发布服务器和代码上传终端;
所述代码上传终端用于:
向所述代码发布服务器上传目标代码发布事项;
所述代码发布服务器用于:
获取目标代码发布事项中的生产环境配置信息和代码功能配置信息;
基于所述目标代码发布事项中的生产环境配置信息和代码功能配置信息之间的配置信息相关度,对所述目标代码发布事项中的生产环境配置信息和代码功能配置信息进行配对,得到配置信息配对结果;
将配对失败的代码功能配置信息确定为待监控代码功能配置信息,根据所述配置信息配对结果中的代码功能配置信息与所述待监控代码功能配置信息之间的差异化比较结果,确定与所述待监控代码功能配置信息相对应的执行脚本检测目录;
对与所述待监控代码功能配置信息相对应的执行脚本检测目录和所述待监控代码功能配置信息进行代码发布校验,得到代码发布校验结果;
根据所述代码发布校验结果和所述配置信息配对结果,确定所述目标代码发布事项中的执行脚本验证信息和所述执行脚本验证信息对应的代码质检结果,在所述代码质检结果表征所述目标代码发布事项中的待发布代码存在异常时,输出告警信息。
相较于现有技术,本发明实施例提供的代码发布的告警监控方法及系统具有以下技术效果:首先获取目标代码发布事项中的生产环境配置信息和代码功能配置信息,其次基于配置信息相关度进行生产环境配置信息和代码功能配置信息的配对以得到配置信息配对结果,然后根据配对失败的代码功能配置信息确定执行脚本检测目录从而进行代码发布校验得到代码发布校验结果,这样可以根据代码发布校验结果和配置信息配对结果确定目标代码发布事项中的执行脚本验证信息对应的代码质检结果,进而在代码质检结果表征目标代码发布事项中的待发布代码存在异常时输出告警信息。如此设计,能够通过代码质检结果对待发布代码进行发布前的质量监控和告警,从而避免有问题的代码上线,避免引发后续的功能异常,减少后续异常修复的成本。
在后面的描述中,将部分地陈述其他的特征。在检查后面内容和附图时,本领域的技术人员将部分地发现这些特征,或者可以通过生产或运用了解到这些特征。通过实践或使用后面所述详细示例中列出的方法、工具和组合的各个方面,当前申请中的特征可以被实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
附图中的方法、系统和/或程序将根据示例性实施例进一步描述。这些示例性实施例将参照图纸进行详细描述。这些示例性实施例是非限制的示例性实施例,其中参考数字在附图的各个视图中代表相似的机构。
图1是根据本发明的一些实施例所示的一种示例性代码发布的告警监控系统的框图。
图2是根据本发明的一些实施例所示的一种示例性代码发布服务器中硬件和软件组成的示意图。
图3是根据本发明的一些实施例所示的一种示例性代码发布的告警监控方法和/或过程的流程图。
具体实施方式
为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
在下面的详细描述中,通过实例阐述了许多具体细节,以便提供对相关指导的全面了解。然而,对于本领域的技术人员来说,显然可以在没有这些细节的情况下实施本发明。在其他情况下,公知的方法、程序、系统、组成和/或电路已经在一个相对较高水平上被描述,没有细节,以避免不必要的模糊本发明的方面。
这些和其他特性、当前申请披露的功能、执行的方法、结构中相关元素的功能和部件的组合和生产经济性,在参照附图进行以下描述的考虑中可能会变得更加明显,所有这些形成本申请的一部分。然而,需要理解清楚的是,附图仅仅是为了说明和描述的目的,并不旨在限制本申请的范围。应当了解的是,这些图纸不是按比例绘制的。然而,应当明确理解的是,附图仅用于说明和描述的目的,并不意图限制本发明的范围。应当知晓的是,这些附图并不依照比例。
本申请中使用流程图说明根据本申请的实施例的系统所执行的执行过程。应当明确理解的是,流程图的执行过程可以不按顺序执行。相反,这些执行过程可以以相反的顺序或同时执行。另外,可以将至少一个其他执行过程添加到流程图。一个或多个执行过程可以从流程图中删除。
图1是根据本发明的一些实施例所示的一种示例性代码发布的告警监控系统300的框图,代码发布的告警监控系统300可以包括代码发布服务器100和代码上传终端200。
在一些实施例中,如图2所示,代码发布服务器100可以包括处理引擎110、网络模块120和存储器130,处理引擎110和存储器130通过网络模块120通信。
处理引擎110可以处理相关的信息和/或数据以执行本申请中描述的一个或多个功能。例如,在一些实施例中,处理引擎110可以包括至少一个处理引擎(例如,单核处理引擎或多核处理器)。仅作为示例,处理引擎110可以包括中央处理单元(Central ProcessingUnit,CPU)、专用集成电路(Application-Specific Integrated Circuit,ASIC)、专用指令集处理器(Application-Specific Instruction-set Processor,ASIP)、图形处理单元(Graphics Processing Unit,GPU)、物理处理单元(Physics Processing Unit,PPU)、数字信号处理器(Digital Signal Processor,DSP)、现场可编程门阵列(Field ProgrammableGate Array,FPGA)、可编程逻辑器件(Programmable Logic Device,PLD)、控制器、微控制器单元、精简指令集计算机(Reduced Instruction-Set Computer,RISC)、微处理器等或其任意组合。
网络模块120可以促进信息和/或数据的交换。在一些实施例中,网络模块120可以是任何类型的有线或无线网络或其组合。仅作为示例,网络模块120可以包括缆线网络、有线网络、光纤网络、电信网络、内部网络、互联网、局域网络(Local Area Network,LAN)、广域网(Wide Area Network,WAN)、无线局域网络(Wireless Local Area Network,WLAN)、城域网(Metropolitan Area Network,MAN)、公用电话交换网(Public Telephone SwitchedNetwork,PSTN)、蓝牙网络、无线个域网络、近场通讯(Near Field Communication,NFC)网络等或上述举例的任意组合。在一些实施例中,网络模块120可以包括至少一个网络接入点。例如,网络模块120可以包括有线或无线网路接入点,如基站和/或网路接入点。
存储器130可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器130用于存储程序,所述处理引擎110在接收到执行指令后,执行所述程序。
可以理解,图2所示的结构仅为示意,代码发布服务器100还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。
图3是根据本发明的一些实施例所示的一种示例性代码发布的告警监控方法和/或过程的流程图,代码发布的告警监控方法应用于图1中的代码发布服务器100,具体可以包括以下步骤S31-步骤S35。
步骤S31,获取目标代码发布事项中的生产环境配置信息和代码功能配置信息。在本方案中,目标代码发布事项可以是代码上传终端(例如PC机)上传给代码发布服务器的,目标代码发布事项用于表征即将上线的软件或者应用程序的相关代码信息,目标代码发布事项中包括待发布代码。生产环境配置信息可以用于表征待发布代码对应的代码编写环境,在此不做限定,代码功能配置信息可以包括一些应用层面的业务功能信息例如聊天功能、在线支付功能、图像上传功能等。
在实际实施过程中,所述获取目标代码发布事项中的生产环境配置信息和代码功能配置信息,可以包括:获取所述目标代码发布事项中的至少两个生产环境配置事项和至少两个代码功能配置事项;获取所述至少两个生产环境配置事项之间的生产环境权限变化信息和生产环境配置事项的事项关联记录,获取所述至少两个代码功能配置事项之间的代码功能权限变化信息和代码功能配置事项的事项关联记录;根据所述生产环境权限变化信息和所述生产环境配置事项的事项关联记录,对所述至少两个生产环境配置事项进行组合,得到所述目标代码发布事项中的生产环境配置信息;其中,一个生产环境配置信息包括至少一个生产环境配置事项;根据所述代码功能权限变化信息和所述代码功能配置事项的事项关联记录,对所述至少两个代码功能配置事项进行组合,得到所述目标代码发布事项中的代码功能配置信息;其中,一个代码功能配置信息包括至少一个代码功能配置事项。可以理解,通过实施上述内容,能够尽可能确保生产环境配置信息和代码功能配置信息的完整性以及全局关联性,从而为后续的代码质检提供可靠的判定依据。
步骤S32,基于所述目标代码发布事项中的生产环境配置信息和代码功能配置信息之间的配置信息相关度,对所述目标代码发布事项中的生产环境配置信息和代码功能配置信息进行配对,得到配置信息配对结果。在本方案中,配置信息相关度用于表征生产环境配置信息和代码功能配置信息之间的兼容情况,配置信息相关度越大,表明生产环境配置信息和代码功能配置信息之间的兼容度越高,进而越不容易出现运行时的兼容性问题。此外,配置信息配对结果可以用于表征生产环境配置信息和代码功能配置信息之间的多个层面的兼容性检测结果。
在实际实施过程中,所述基于所述目标代码发布事项中的生产环境配置信息和代码功能配置信息之间的配置信息相关度,对所述目标代码发布事项中的生产环境配置信息和代码功能配置信息进行配对,得到配置信息配对结果,包括:将所述目标代码发布事项中的代码功能配置信息确定为已标记代码功能配置信息,将所述目标代码发布事项中的生产环境配置信息确定为已标记生产环境配置信息;其中,所述已标记代码功能配置信息中的代码功能配置事项是从针对所述目标代码发布事项的实时配置事项中所确定的;获取所述实时配置事项中的生产环境配置事项;将所述实时配置事项中的生产环境配置事项与所述已标记生产环境配置信息中的生产环境配置事项之间的配置事项相关度,确定为所述已标记代码功能配置信息与所述已标记生产环境配置信息之间的所述配置信息相关度;当所述配置信息相关度大于或等于预设相关度阈值时,对所述已标记代码功能配置信息和所述已标记生产环境配置信息进行配对,得到所述配置信息配对结果。如此设计,能够在配对生产环境配置信息和代码功能配置信息时下沉到生产环境配置事项实现,这样可以基于配置信息相关度实现对所述已标记代码功能配置信息和所述已标记生产环境配置信息的配对,从而确保配置信息配对结果的可信度。
步骤S33,将配对失败的代码功能配置信息确定为待监控代码功能配置信息,根据所述配置信息配对结果中的代码功能配置信息与所述待监控代码功能配置信息之间的差异化比较结果,确定与所述待监控代码功能配置信息相对应的执行脚本检测目录。在本方案中,配对失败的代码功能配置信息可以理解为代码功能配置信息对应的兼容性评价结果不满足设定条件,例如代码功能配置信息与生产环境配置信息之间的兼容性评价值低于设定值,而待监控代码功能配置信息可以理解为可能存在异常的代码功能配置信息。差异化比较结果用于表征所述配置信息配对结果中的代码功能配置信息与所述待监控代码功能配置信息之间的相似度,执行脚本检测目录用于表征待监控代码功能配置信息在应用层面上的执行函数对应的检测记录,其中,执行函数的相关内容为现有技术,因此在此不作更多说明。
在一些可能的实施例中,所述待监控代码功能配置信息包括所述目标代码发布事项中的局部代码功能配置事项;所述配置信息配对结果的数量为至少两个;每个配置信息配对结果中的代码功能配置信息分别包括所述目标代码发布事项中的全局代码功能配置事项,基于此,所述根据所述配置信息配对结果中的代码功能配置信息与所述待监控代码功能配置信息之间的差异化比较结果,确定与所述待监控代码功能配置信息相对应的执行脚本检测目录,可以包括以下步骤S331-步骤S335所描述的内容。
步骤S331,根据所述局部代码功能配置事项,获取所述待监控代码功能配置信息的局部配置信息内容片段。在本方案中,所述局部代码功能配置事项的配置事项数量为至少两个;所述根据所述局部代码功能配置事项,获取所述待监控代码功能配置信息的局部配置信息内容片段,包括:获取至少两个局部代码功能配置事项中的每个局部代码功能配置事项分别对应的配置事项内容片段;根据所述每个局部代码功能配置事项分别对应的配置事项内容片段,获取所述至少两个局部代码功能配置事项对应的局部关联内容片段;将所述局部关联内容片段,确定为所述局部配置信息内容片段。
步骤S332,根据所述每个配置信息配对结果包括的全局代码功能配置事项,分别获取所述每个配置信息配对结果中的代码功能配置信息的全局配置信息内容片段。在本方案中,所述至少两个配置信息配对结果包括配置信息配对结果i,i为小于或等于所述至少两个配置信息配对结果的总数量的正整数;所述配置信息配对结果i包括的全局代码功能配置事项的配置事项数量为至少两个;所述根据所述每个配置信息配对结果包括的全局代码功能配置事项,分别获取所述每个配置信息配对结果中的代码功能配置信息的全局配置信息内容片段,包括:获取所述配置信息配对结果i包括的至少两个全局代码功能配置事项中的每个全局代码功能配置事项分别对应的配置事项内容片段;根据所述每个全局代码功能配置事项分别对应的配置事项内容片段,获取所述至少两个全局代码功能配置事项对应的全局关联内容片段;将所述全局关联内容片段,确定为所述配置信息配对结果i中的代码功能配置信息的全局配置信息内容片段。
步骤S333,获取所述局部配置信息内容片段分别与所述每个配置信息配对结果对应的全局配置信息内容片段之间的片段关联性识别结果。
步骤S334,根据所述每个配置信息配对结果所属的片段关联性识别结果,确定所述每个配置信息配对结果中的代码功能配置信息分别与所述待监控代码功能配置信息之间的差异化比较结果。
步骤S335,当目标配置信息配对结果的统计值大于第一预设统计值阈值且小于或等于第二预设统计值阈值时,将所述目标配置信息配对结果中的生产环境配置信息所包含的执行脚本检测目录,确定为与所述待监控代码功能配置信息相对应的执行脚本检测目录;所述目标配置信息配对结果,指所属的差异化比较结果对应的差异系数大于或等于预设差异系数的配置信息配对结果。
可以理解,通过上述步骤S331-步骤S335,能够将局部代码功能配置事项以及全局代码功能配置事项考虑在内,这样能够确保与待监控代码功能配置信息相对应的执行脚本检测目录在局部层面和全局层面上的时效性和可信度。
在一些可能的实施方式中,所述待监控代码功能配置信息的数量为至少两个,在此基础上,还可以通过以下方式确定执行脚本检测目录:当所述目标配置信息配对结果的数量小于或等于所述第一预设统计值阈值时,将与每个待监控代码功能配置信息之间的差异化比较结果对应的差异系数最大的代码功能配置信息所对应的配置信息配对结果,分别确定为所述每个待监控代码功能配置信息对应的待处理配对结果;将所述每个待监控代码功能配置信息对应的待处理配对结果中的生产环境配置信息所包含的执行脚本检测目录,分别确定为所述每个待监控代码功能配置信息对应的待处理执行脚本检测目录;根据所述每个待监控代码功能配置信息对应的待处理执行脚本检测目录,确定待确定检测目录对应的至少两个检测目录描述信息;获取所述至少两个检测目录描述信息在至少两个配置信息配对结果的生产环境配置信息所包含的执行脚本检测目录中的第一检测目录统计结果;根据所述第一检测目录统计结果,确定所述每个待监控代码功能配置信息针对所述待确定检测目录的第一目标检测目录描述信息;将分别具有所述每个待监控代码功能配置信息对应的第一目标检测目录描述信息的所述待确定检测目录,确定为与所述每个待监控代码功能配置信息相对应的执行脚本检测目录;所述至少两个检测目录描述信息在与所述每个待监控代码功能配置信息相对应的执行脚本检测目录中的第二检测目录统计结果对应的检测目录的更新频率,等于所述第一检测目录统计结果的检测目录的更新频率。
在其他的一些实施例中,执行脚本检测目录还可以通过以下方式确定:当所述目标配置信息配对结果的数量大于所述第二预设统计值阈值时,统计待确定检测目录的至少两个检测目录描述信息在所述目标配置信息配对结果的生产环境配置事项所包含的执行脚本检测目录中的目录位置信息;所述至少两个检测目录描述信息,是根据所述目标配置信息配对结果中的生产环境配置信息所包含的执行脚本检测目录所确定的;根据所述待监控代码功能配置信息与所述目标配置信息配对结果之间的差异化比较结果、以及所述目录位置信息,从所述至少两个检测目录描述信息中,确定所述待监控代码功能配置信息针对所述待确定检测目录的第二目标检测目录描述信息;将具有所述第二目标检测目录描述信息的所述待确定检测目录,确定为与所述待监控代码功能配置信息相对应的执行脚本检测目录。
如此一来,上述确定执行脚本检测目录的实施方式可以择一实施,这样能够灵活地确定执行脚本检测目录,确保在确定执行脚本检测目录时能够应对不同的情况。
步骤S34,对与所述待监控代码功能配置信息相对应的执行脚本检测目录和所述待监控代码功能配置信息进行代码发布校验,得到代码发布校验结果。在本方案中,代码发布校验能够校验出待发布代码的运行漏洞信息,因此代码发布校验结果中可以包括待发布代码的运行漏洞信息。进一步地,步骤S34在实施时,首先从执行脚本检测目录中确定出与待监控代码功能配置信息对应的校验指标,进而通过校验指标以及待监控代码功能配置信息对待发布代码进行运行漏洞校验,得到代码发布校验结果。
步骤S35,根据所述代码发布校验结果和所述配置信息配对结果,确定所述目标代码发布事项中的执行脚本验证信息和所述执行脚本验证信息对应的代码质检结果,在所述代码质检结果表征所述目标代码发布事项中的待发布代码存在异常时,输出告警信息。在本方案中,执行脚本验证信息用于表征执行脚本程序的合法性验证结果,执行脚本验证信息对应的代码质检结果用于表征待发布代码在业务逻辑层面、业务操作层面以及信息权限层面的质检事项,如此设计,能够通过代码质检结果对待发布代码进行发布前的质量监控和告警,从而避免有问题的代码上线,避免引发后续的功能异常,减少后续异常修复的成本。在本方案中,若代码质检结果中存在异常标签的事项的数量大于设定数量,则可以确定待发布代码存在异常,输出的告警信息可以是“待发布代码XXX存在XXX缺陷,请悉知”。
进一步地,为了确保代码质检的效率和准确性,在步骤S35之前,还可以包括以下内容:将所述配置信息配对结果中的生产环境配置信息所包含的执行脚本检测目录,确定为所述配置信息配对结果所包含的执行脚本检测目录;将所述配置信息配对结果和所述代码发布校验结果,确定为所述目标代码发布事项中的已标记配对结果;将所述已标记配对结果所包含的执行脚本检测目录,确定为目标执行脚本检测目录;为所述目标执行脚本检测目录与所对应的所述已标记配对结果中的代码功能配置信息添加相同的目录标签;将具有所述目录标签的所述目标执行脚本检测目录,分别输入至预设的多维均值聚类网络、预设的深度学习神经网络以及预设的前向反馈神经网络。
在本方案中,通过所述预设的多维均值聚类网络对所述目标执行脚本检测目录进行代码质检的速率,大于通过所述预设的深度学习神经网络对所述目标执行脚本检测目录进行代码质检的速率;通过所述预设的深度学习神经网络对所述目标执行脚本检测目录进行代码质检的速率,大于通过所述预设的前向反馈神经网络对所述目标执行脚本检测目录进行代码质检的速率;所述预设的多维均值聚类网络针对所述目标执行脚本检测目录的代码误检率,小于所述预设的深度学习神经网络针对所述目标执行脚本检测目录的代码误检率;所述预设的深度学习神经网络针对所述目标执行脚本检测目录的代码误检率,小于所述预设的前向反馈神经网络针对所述目标执行脚本检测目录的代码误检率。
在上述基础上,步骤S35所描述的根据所述代码发布校验结果和所述配置信息配对结果,确定所述目标代码发布事项中的执行脚本验证信息和所述执行脚本验证信息对应的代码质检结果,包括:根据所述已标记配对结果中的代码功能配置信息,确定所述目标代码发布事项中的所述执行脚本验证信息;根据所述已标记配对结果中的代码功能配置信息所具有的所述目录标签,从所述预设的多维均值聚类网络、所述预设的深度学习神经网络或所述预设的前向反馈神经网络中,获取所述执行脚本验证信息对应的代码质检结果。
进一步地,所述根据所述已标记配对结果中的代码功能配置信息所具有的所述目录标签,从所述预设的多维均值聚类网络、所述预设的深度学习神经网络或所述预设的前向反馈神经网络中,获取所述执行脚本验证信息对应的代码质检结果,包括:根据所述已标记配对结果中的代码功能配置信息所具有的所述目录标签,生成用于在所述预设的多维均值聚类网络中检测所述目标执行脚本检测目录的第一代码检测指示信息,当根据所述第一代码检测指示信息未从所述预设的多维均值聚类网络中确定出所述执行脚本验证信息对应的代码质检结果时,根据所述第一代码检测指示信息,生成用于在所述预设的深度学习神经网络中检测所述目标执行脚本检测目录的第二代码检测指示信息;当根据所述第二代码检测指示信息未从所述预设的深度学习神经网络中确定出所述执行脚本验证信息对应的代码质检结果时,根据所述第二代码检测指示信息,生成用于在所述预设的前向反馈神经网络中检测所述目标执行脚本检测目录的第三代码检测指示信息;根据所述第三代码检测指示信息,从所述预设的前向反馈神经网络中获取所述执行脚本验证信息对应的代码质检结果。如此设计,能够通过阶梯式的执行方式实现对代码质检结果的确定,从而提高代码质检的效率和准确性。
综上所述,通过实施上述步骤S31-步骤S35,首先获取目标代码发布事项中的生产环境配置信息和代码功能配置信息,其次基于配置信息相关度进行生产环境配置信息和代码功能配置信息的配对以得到配置信息配对结果,然后根据配对失败的代码功能配置信息确定执行脚本检测目录从而进行代码发布校验得到代码发布校验结果,这样可以根据代码发布校验结果和配置信息配对结果确定目标代码发布事项中的执行脚本验证信息对应的代码质检结果,进而在代码质检结果表征目标代码发布事项中的待发布代码存在异常时输出告警信息。如此设计,能够通过代码质检结果对待发布代码进行发布前的质量监控和告警,从而避免有问题的代码上线,避免引发后续的功能异常,减少后续异常修复的成本。可以理解,在实施上述方案时,能够实现高频率、多模块的代码发布监控,还可以通过Jenkins、jira、gitlab和告警监控手段,确保代码提交发布的效率和准确性。
基于上述同样的发明构思,还提供了一种代码发布的告警监控系统,包括互相之间通信的代码发布服务器和代码上传终端。
进一步地,所述代码上传终端用于:向所述代码发布服务器上传目标代码发布事项。
进一步地,所述代码发布服务器用于:获取目标代码发布事项中的生产环境配置信息和代码功能配置信息;基于所述目标代码发布事项中的生产环境配置信息和代码功能配置信息之间的配置信息相关度,对所述目标代码发布事项中的生产环境配置信息和代码功能配置信息进行配对,得到配置信息配对结果;将配对失败的代码功能配置信息确定为待监控代码功能配置信息,根据所述配置信息配对结果中的代码功能配置信息与所述待监控代码功能配置信息之间的差异化比较结果,确定与所述待监控代码功能配置信息相对应的执行脚本检测目录;对与所述待监控代码功能配置信息相对应的执行脚本检测目录和所述待监控代码功能配置信息进行代码发布校验,得到代码发布校验结果;根据所述代码发布校验结果和所述配置信息配对结果,确定所述目标代码发布事项中的执行脚本验证信息和所述执行脚本验证信息对应的代码质检结果,在所述代码质检结果表征所述目标代码发布事项中的待发布代码存在异常时,输出告警信息。
本领域技术人员可以根据上述已公开的内容毫无疑义对一些预设的、基准的、预定的、设定的以及目标的技术特征/技术术语进行确定,例如阈值、阈值区间、阈值范围等。对于一些未作解释的技术特征术语,本领域技术人员完全能够基于前后文的逻辑关系进行合理地、毫无疑义地推导,从而清楚、完整地实施上述技术方案。未作解释的技术特征术语的前缀,例如“第一”、“第二”、“上一个”、“下一个”、“前一个”、“后一个”、“当前”、“历史”、“最新”、“最佳”、“目标”、“指定”和“实时”等,可以根据前后文进行毫无疑义地推导和确定。未作解释的技术特征术语的后缀,例如“列表”、“特征”、“序列”、“集合”、“矩阵”、“单元”、“元素”、“轨迹”和“清单”等,也可以根据前后文进行毫无疑义地推导和确定。
本发明实施例公开的上述内容对于本领域技术人员而言是清楚完整的。应当理解,本领域技术人员基于上述公开的内容对未作解释的技术术语进行推导和分析的过程是基于本申请所记载的内容进行的,因此上述内容并不是对整体方案的创造性的评判。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅作为示例,而并不构成对本申请的限定。虽然此处并没有明确说明,本领域技术人员可以对本申请进行各种修改、改进和修正。该类修改、改进和修正在本申请中被建议,所以该类修改、改进、修正仍属于本申请示范实施例的精神和范围。
同时,本申请使用了特定术语来描述本申请的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本申请至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同部分两次或多次提到的“一实施例”或“一个实施例”或“一替代性实施例”并不一定是指同一实施例。此外,本申请的至少一个实施例中的某些特征、结构或特点可以进行适当的组合。
另外,本领域普通技术人员可以理解的是,本申请的各个方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们任何新的和有用的改进。相应地,本申请的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可以被称为“单元”、“组件”或“系统”。此外,本申请的各方面可以表现为位于至少一个计算机可读介质中的计算机产品,所述产品包括计算机可读程序编码。
计算机可读信号介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等等、或合适的组合形式。计算机可读信号介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机可读信号介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤缆线、RF、或类似介质、或任何上述介质的组合。
本申请各方面执行所需的计算机程序码可以用一种或多种程序语言的任意组合编写,包括面向对象程序设计,如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET,Python等,或类似的常规程序编程语言,如"C"编程语言,Visual Basic,Fortran2003,Perl,COBOL 2002,PHP,ABAP,动态编程语言如Python,Ruby和Groovy或其它编程语言。所述程式设计编码可以完全在用户计算机上执行、或作为独立的软体包在用户计算机上执行、或部分在用户计算机上执行部分在远程计算机执行、或完全在远程计算机或服务器上执行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网络(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非申请专利范围中明确说明,本申请所述处理元件和序列的顺序、数位字母的使用、或其他名称的使用,并非用于限定本申请流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的申请专利范围并不仅限于披露的实施例,相反,申请专利范围旨在覆盖所有符合本申请实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件装置实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或行动装置上安装所描述的系统。
同样应当理解的是,为了简化本申请揭示的表述,从而帮助对至少一个发明实施例的理解,前文对本申请实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法幷不意味着本申请对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。