一种面向持续部署的服务运行时行为监控方法技术

技术编号:33193992 阅读:47 留言:0更新日期:2022-04-24 00:22
发明专利技术涉及一种面向持续部署的服务运行时行为监控方法。首先从源码中挖掘日志模板,将每行执行日志映射为一个模板,从模板化的日志中导出执行行为模型,细化模型并分析模型差异,以确定执行行为模型之间的差异,并将它们分类到内聚性差异区域。从而发现持续部署过程中出现的软件版本差异,以便进行检测异常软件和制定软件发布策略。和制定软件发布策略。和制定软件发布策略。

【技术实现步骤摘要】
一种面向持续部署的服务运行时行为监控方法


[0001]本专利技术涉及一种面向持续部署的服务运行时行为监控方法,属于软件


技术介绍

[0002]客户需求变化的速度越来越快,导致许多公司采用持续部署技术,对于服务交付业务至关重要,确保软件服务始终处于可控状态,并且实现增量式变化。为了确保软件在持续部署过程中的高质量发布,在生产环境中使用蓝绿发布、灰度发布等策略部署软件版本,并监控其行为及性能,以快速识别异常行为。在执行新软件版本部署时,会记录大量监控数据,跟踪日志中的可疑事件(例如,错误、警告消息、堆栈跟踪)并发出警报。然而,难以利用在执行日志中捕获的非结构化数据,有效比较新版本和先前部署版本动态行为的差异。文献(Cheng, H., Lo, D., Zhou, Y., Wang, X., Yan, X.: Identifying bug signatures using discriminative graph mining. In: ISSTA, pp. 141

152. ACM, 2009)提取最具鉴别性的子图来对比正确执行和错误执行的程序流程。文献(Fu, Q., Lou, J.G., Wang, Y., Li, J.: Execution anomaly detection in distributed systems through unstructured log analysis. In: ICDM, pp. 149

158, 2009)推导了一个有限状态自动机来建模系统的执行路径,并学习它来检测新的日志序列中的异常。然而,这些都是监督的方法,假设存在正确和错误执行的基本事实,以学习一个模型。文献(Nandi, A., Mandal, A., Atreja, S., Dasgupta, G.B., Bhattacharya, S.: Anomaly detection using program control flow graph mining from execution logs. In: KDD, pp. 215

224, 2016)通过挖掘分布式环境下的执行日志来检测异常,但是,在同一个版本中检测异常,两个版本的流图没有差异。本专利技术挖掘执行日志以识别先前部署版本的和新部署版本的行为模型差异,自动检测应用软件版本差异,以实现快速持续部署。

技术实现思路

[0003]本专利技术的目的:持续部署技术支持新软件版本的快速部署,新版本通常是在限定范围内部署,软件行为在运行时监控,并与之前部署的版本进行比较,或者扩展新版本的部署,或者恢复到以前的版本。
[0004]本专利技术的原理:本方法使用已部署和新版本的执行日志和源代码。分析日志是有效的运行时监控手段,是因为更容易从日志中监测不中断的执行路径。不采用检测代码的方式,是由于快速开发的软件会带来较大的监测开销。方法首先进行模板挖掘,将执行日志中的每一行映射到一个唯一的模板。行为模型挖掘从模板化的日志中导出执行行为模型,使用多模式方法细化模型并分析模型差异,以确定执行行为模型之间的差异,并将它们分类到内聚性差异区域。
[0005]本专利技术技术解决方案:一种面向持续部署的服务运行时行为监控方法,其特点在于实现步骤如下:第一步,模板挖掘。模板是源代码中日志记录语句的抽象,包括固定部分和可变部分。
和Tadd之间的文本相似性。如果Tdel中有m个模板,Tadd中有n个模板,相似性具有mxn对。高于阈值的文本相似度对检测为可能的合并候选。本专利技术并不简单地基于文本相似性来合并模板,因为在代码中可能有两个文本相似的模板对应于不同的日志记录语句。因此,为了提高精度,评估一个或多个模态的相似性,即邻近相似性,其中邻近性是前一个和后一个的集合。如果邻近相似性高于阈值,则模板被标记为相同。文本相似性和邻近相似性的阈值可以基于网格搜索进行选择,并根据项目要求进行微调。本专利技术以迭代的方式继续这个过程,每一步都会产生更精确的执行行为模板。在每次迭代中,一些顶点被标记为相同,可以改变其他候选对的邻近相似度值。当没有更多的候选对可以合并并且后续步骤的执行行为模板输出不再改变时,停止迭代。
[0010]第三步,分析执行行为模型之间的差异。因为执行行为模型是识别图模型之间的差异,所以可以看作是图同构问题。由于本专利技术确保了两个模型中模板标识的一致性,因此简化了两个模型的比较。对细化的模型进行比较以识别以下差异:顶点差异diffv,边缘差异diffe,添加/删除的差异,以及输出转换的相对频率发生变化的顶点集。为了进行有效的后续分析,将识别出的差异分组到内聚区域,以便将相关的差异作为单元进行研究。
[0011]本专利技术与现有技术相比具有如下优点:本专利技术提出一种应用程序快速开发的增量变化而导致的执行行为差异。本专利技术通过挖掘执行日志,使用多模态方法为已部署和新版本自动建立执行行为模型。对模型进行比较,以自动识别相互间的差异。由于本专利技术使用了图形表示,不仅识别了不同的区域,还能够识别上下文,以便于深入分析。
附图说明
[0012]图1为面向持续部署的服务运行时行为监控方法技术路线图。
具体实施方式
[0013]以下结合具体实施例和附图对本专利技术进行详细说明,如图1所示,本专利技术实施例方法流程:本专利技术使用了两个Apache软件版本,分别为版本1和版本2。在生产环境中部署的Apache为版本1,提交代码后生成的新版本Apache为版本2。这次提交最大的改变是将一个大的Class A拆分为11个类。从版本1的源码获得的日志模板记做templates
v1
,为了获得版本2的源码的日志模板templates
v2
,检测到34个模板,通过比较两个版本源码的差别,将36个模板插入到templates
v1

[0014]通过抓取相同网址,为两个软件版本生成执行日志。观察到为版本1生成的日志行数少于为版本2生成的日志行数。版本1和版本2的执行日志分别使用templates
v1
和templates
v2
进行模板化。大约16%的日志行数没有被模板化,进而获得了80个聚类。使用加权编辑距离进行细化和分组聚类,将数量减少到11个。非模板化的日志行与聚类后生成的模板相匹配,执行日志中的每一行都针对两个版本进行了模板化。从而发现了两个版本的执行行为模型,并使用多模态方法对它们进行了改进。行为模型显示,与行为模型1相比,行为模型2中增加了13个顶点,删除了17个顶点。对于每对添加和删除的顶点,从源代码计算文本相似度。发现1824对中的15对的文本相似度高于阈值(这里为0.8),并且在执行模板1和执行模板2中比较相应的邻近度。发现所有36个候选对的邻近相似性都高于阈值,因此,
这些顶点被标记为相同的模板。由于重构而被捕获为新模板的所有模板被映射到相应的旧模板,显著减少了差异的数量。
[0015]将细化的执行模型2与执本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种面向持续部署的服务运行时行为监控方法,方法特征在于实现步骤如下:第一步,日志模板发现:从源代码中识别打印语句,解析类名及严重性级别,使用正则表达式搜索源代码中的日志记录语句,并做改进以识别三元打印语句;第二步,日志模板化:消息通过与获得的模板进行匹配,将模板ID分配给出现在执行日志中的每个日志行;第三步,外部日志抽取:对于来自外部来源的日志行,使用近似聚类和加权编辑距离相似性的组合对这些日志行进行...

【专利技术属性】
技术研发人员:李扬陈杉杉张鼎王晨程秦和珂
申请(专利权)人:神州数码信息系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1