一种分析ASP.NET应用软件性能及故障的诊断方法技术

技术编号:18083718 阅读:27 留言:0更新日期:2018-05-31 12:17
本发明专利技术公开了一种分析ASP.NET应用软件性能及故障的诊断方法,包括以下步骤,(1)、ASP.NET应用程序启动时通过环境变量加载IL代码改写模块;(2)、ASP.NET应用程序动态编译IL代码时,触发IL代码改写功能,加载监控功能模块息进行异步处理;(3)、在处理HTTP请求的过程中,采集代码段的执行过程和错误信息;(4)、创建独立的线程,对采集的性能信息和错误信息进行异步处理。本发明专利技术涉及应用性能管理领域。该分析ASP.NET应用软件性能及故障的诊断方法无需开发人员的介入,减少了实施难度,改写规则简单易用,并且拦截了异常,即使出现bug,对原有系统也不会造成影响,同时通过归类的应用组件和应用错误处理,提高了数据直观性。

【技术实现步骤摘要】
一种分析ASP.NET应用软件性能及故障的诊断方法
本专利技术涉及应用性能管理领域,具体为一种分析ASP.NET应用软件性能及故障的诊断方法。
技术介绍
ASP.NET语言是微软公司开发的服务器端运行脚本平台,用来构建动态Web服务网页,它可以与数据库和其它程序进行交互,是一种简单、方便的编程工具,基于它所开发的网站主要由Windows下InternetInformationServices(IIS)程序所管理,IntermediateLanguage(IL)是微软中间语言,ASP.NET源代码通过编译转为IL代码,IL主要包含一些元数据和中间语言指令;网站运行时,JIT编译器再把IL代码转为可以本地执行的机器代码,微软底层JIT编译器提供了IL代码转为本地代码的转换事件接口,利用此接口可以修改对应的IL代码,从而达到改写IL功能的目的,为了监控服务器应用的性能及错误信息,发展出了几类性能监测工具:一类是主动拨测工具,此类工具从服务器外部发起、模拟用户发起网络请求,通过追踪HTTP的请求过程来监控应用的性能、网络信息和故障,此类工具的主要缺点是采样数量少,且仅能记录应用的总响应性能和故障信息,无法更深入的追踪到代码级别,出现服务器应用性能问题时无法定位具体原因;另外一类是日志分析类工具,通过分析系统产生的或应用产生的各类日志来监控应用性能及故障,其中包括研发人员在代码中主动记录的业务日志,此类工具的主要缺点是严重依赖日志格式及内容,无法分析没有被记录为日志的代码行为,且需要研发人员主动记录业务日志。
技术实现思路
(一)解决的技术问题针对现有技术的不足,本专利技术提供了一种分析ASP.NET应用软件性能及故障的诊断方法,解决了现有的技术在实施时需要开发人员介入,出现BUG容易对原有的系统造成影响,并且解决故障后无法提供直观数据的问题。(二)技术方案为实现以上目的,本专利技术通过以下技术方案予以实现:一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:包括以下步骤(1)、ASP.NET应用程序启动时通过环境变量加载IL代码改写模块;(2)、ASP.NET应用程序动态编译IL代码时,触发IL代码改写功能,加载监控功能模块息进行异步处理;(3)、在处理HTTP请求的过程中,采集代码段的执行过程和错误信息;(4)、创建独立的线程,对采集的性能信息和错误信息进行异步处理。优选的,利用IL代码改写机制自动在代码段插入具有监控功能的IL代码。采用以下模块,改写模块:用于改写特定的程序,并在触发改写程序后加载监控模块实现检测功能;监控模块:用于监控软件的异常状况,便于记录异常程序段;记录模块:用于将触发监控模块的采集数据库、中间件、网络IO、用户自定义的方法的执行过程和错误信息采集;分析模块:用于创建独立的线程,对采集的性能信息和错误信息进行异步处理。优选的,所述代码段包括数据库、中间件、网络IO或用户自定义的方法。优选的,所述一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:所述改写模块的实现包括如下具体步骤,(1)、在动态编译IL代码事件JITCompilationStarted中获取代码对应的程序集名称、命名空间以及方法名称;(2)、根据不同的程序集名称、命名空间以及方法名称,在配置文件内匹配相应的监控代码入口、监控代码出口和监控代码异常方法;(3)、如果可以获取监控代码入口方法,则对原有IL代码进行改写。优选的,所述监控模块的实现包括以下步骤:(1)、当HTTP请求开始时,记录当前HTTP请求的URL及其参数;(2)、在监控代码入口记录代码开始时间,获取当前线程对应的HTTP请求,并根据代码名称对代码功能进行分类为数据库、中间件、网络IO或用户自定义的方法。(3)、在监控代码出口记录代码结束时间,并计算代码执行时间,将性能超过阈值的代码及其堆栈记录到当前线程对应的HTTP请求。优选的,所述改写模块如果不能获取监控代码入口方法,则不需要改写,直接忽略。优选的,所述改写模块的改写规则为在原有代码前插入监控入口代码,在原有代码后插入监控出口代码,并且将监控入口代码、原有代码、监控出口代码均用try…catch进行包裹,在异常处理内插入监控代码异常逻辑。优选的,所述监控模块在监控代码异常处记录错误信息,并将信息存储到当前线程对应的HTTP请求。优选的,所述监控模块当HTTP请求结束时,将当前HTTP请求记录的性能数据和响应状态码添加到异步队列。(三)有益效果本专利技术提供了一种分析ASP.NET应用软件性能及故障的诊断方法。具备以下有益效果:(1)、该分析ASP.NET应用软件性能及故障的诊断方法,通过ASP.NET应用程序动态编译IL代码时,触发IL代码改写功能,加载监控功能模块息进行异步处理,无需开发人员的介入,减少了实施难度。(2)、该分析ASP.NET应用软件性能及故障的诊断方法,通过改写模块如果可以获取监控代码入口方法,则对原有IL代码进行改写,如果不能获取监控代码入口方法,则不需要改写,直接忽略,改写规则简单易用,并且拦截了异常,即使出现bug,对原有系统也不会造成影响。(3)、该分析ASP.NET应用软件性能及故障的诊断方法,通过在处理HTTP请求的过程中,采集代码段的执行过程和错误信息,通过归类的应用组件和应用错误处理,提高了数据直观性。附图说明图1为本专利技术模块构架图。具体实施方式下面将结合一个本专利技术的具体实例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参阅图1,本专利技术提供一种技术方案:一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:包括以下步骤(1)、ASP.NET应用程序启动时通过环境变量加载IL代码改写模块;(2)、ASP.NET应用程序动态编译IL代码时,触发IL代码改写功能,加载监控功能模块息进行异步处理;(3)、在处理HTTP请求的过程中,采集代码段的执行过程和错误信息;(4)、创建独立的线程,对采集的性能信息和错误信息进行异步处理。优选的,利用IL代码改写机制自动在代码段插入具有监控功能的IL代码。采用以下模块,改写模块:用于改写特定的程序,并在触发改写程序后加载监控模块实现检测功能;监控模块:用于监控软件的异常状况,便于记录异常程序段;记录模块:用于将触发监控模块的采集数据库、中间件、网络IO、用户自定义的方法的执行过程和错误信息采集;分析模块:用于创建独立的线程,对采集的性能信息和错误信息进行异步处理。优选的,所述代码段包括数据库、中间件、网络IO或用户自定义的方法。优选的,改写模块的实现包括如下具体步骤,(1)、在动态编译IL代码事件JITCompilationStarted中获取代码对应的程序集名称、命名空间以及方法名称;(2)、根据不同的程序集名称、命名空间以及方法名称,在配置文件内匹配相应的监控代码入口、监控代码出口和监控代码异常方法;(3)、如果可以获取监控代码入口方法,则对原有IL代码进行改写。假设原有的IL代码如下:改写后的IL代码如下:优选本文档来自技高网...
一种分析ASP.NET应用软件性能及故障的诊断方法

【技术保护点】
一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:包括以下步骤(1)、ASP.NET应用程序启动时通过环境变量加载IL代码改写模块;(2)、ASP.NET应用程序动态编译IL代码时,触发IL代码改写功能,加载监控功能模块息进行异步处理;(3)、在处理HTTP请求的过程中,采集代码段的执行过程和错误信息;(4)、创建独立的线程,对采集的性能信息和错误信息进行异步处理。

【技术特征摘要】
1.一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:包括以下步骤(1)、ASP.NET应用程序启动时通过环境变量加载IL代码改写模块;(2)、ASP.NET应用程序动态编译IL代码时,触发IL代码改写功能,加载监控功能模块息进行异步处理;(3)、在处理HTTP请求的过程中,采集代码段的执行过程和错误信息;(4)、创建独立的线程,对采集的性能信息和错误信息进行异步处理。2.根据权利要求1所述的一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:利用IL代码改写机制自动在代码段插入具有监控功能的IL代码。3.根据权利要求2所述的一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:采用以下模块,改写模块:用于改写特定的程序,并在触发改写程序后加载监控模块实现检测功能;监控模块:用于监控软件的异常状况,便于记录异常程序段;记录模块:用于将触发监控模块的采集数据库、中间件、网络IO、用户自定义的方法的执行过程和错误信息采集;分析模块:用于创建独立的线程,对采集的性能信息和错误信息进行异步处理。4.根据权利要求3所述的一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:所述代码段包括数据库、中间件、网络IO或用户自定义的方法。5.根据权利要求3所述的一种分析ASP.NET应用软件性能及故障的诊断方法,其特征在于:所述改写模块的实现包括如下具体步骤,(1)、在动态编译IL代码事件JITCompilationStarted中获取代码对应的程序集名称、命名空间以及方法名称;(2)、根据不同的程序集名称、命名空间以及方法名称,...

【专利技术属性】
技术研发人员:熊伟
申请(专利权)人:华北电力大学保定
类型:发明
国别省市:河北,13

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

1