ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:473.72KB ,
资源ID:5501616      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5501616.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Jwebap使用手册.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Jwebap使用手册.docx

1、Jwebap使用手册Jwebap User Guideleadyu (yu-lead)1 介绍Jwebap是一个用于java web application 的profiler工具。 它不采用JVMPI提供的特性实现监控,是一个纯粹的JAVA应用,不依赖于OS,JVM,JDK1.4以上用户都可以使用。它的目的是希望能够安全高效的部署于生产以及测试应用系统,及时地发现应用系统中存在的性能瓶颈,以及为一些动态性很高难于调试和维护的应用系统提供帮助。目前它主要致力于性能分析和优化方面,以后可能往其他监控方面发展(比如业务数据的监控)。因此,组件提供基本的SDK,提供基本的分析功能,不断丰富的分析功能

2、可以通过统一的方式以插件的形式加入Jwebap组件。出于这些目的,作者心目中理想的监控分析工具应该具备下面几个特性:1.1 高效组件本身必须具有很高的执行效率,对应用系统的运行带来的负担非常微小。其实就目前来说,一般的profiler工具在一定的组件功能复杂度的情况下,需要处理非常庞大的数据量,做到真正的高效率其实是一个困难度很高的挑战,所以,一方面组件本身要足够健壮和高效,另一方面对于组件可以监控的范围也要可以配置。(毕竟我们进行性能分析并不一定需要了解应用的全部执行细节)1.2 分析功能丰富如果只是把庞大的应用系统运行细节暴露出来,已经远远不能满足现有的需要,根据不同视角的分析与统计变得非

3、常必要。并且分析的功能能够不断丰富。(例如对于数据库的监控插件提供topMethod,topSQL之类的分析报表,甚至是动态的图形报表)1.3 跨平台基于JAVA的组件难道还要考虑跨平台的问题吗?回答是当然需要,起码对于profiler工具来说。目前不少profiler通过jvmpi以及一些本地化接口实现对于JVM内部运行细节的监控。而理想的监控工具应该是纯JAVA的,不依赖JVM和OS,否则组件的生命会变得脆弱,使用的时候也会很麻烦,我希望组件不但可以使用在测试环境,同样无缝的部署与生产应用系统。难道让生产系统应监控工具而改变OS和JVM吗?这明显不大可能。1.4 部署简易希望是非常的方便,

4、通过对动态类加载,字节码注入等技术的运用对外提供简单的部署方式,我希望就是通过几行的配置文件就能完成部署。1.5 可扩展性前面提到,组件应该能够提供丰富的分析功能,并且这种功能可以通过插件的方式不断集成于组件之中以满足不同的需要。所以,组件的实现中信息的采集和信息的分析必须是解耦的,一方面组件提供高效稳定的信息采集方式,另一方面组件提供基于插件的框架,能够不断扩展分析功能以满足需要,甚至这些分析功能不仅仅是性能方面,也包括业务数据的监控。2 什么是轨迹在组件的设计中包含一个重要的概念轨迹。那么什么是轨迹? 轨迹的定义 在系统中,任何程序的执行都有可能留下轨迹(数据库的调用会留下SQL轨迹,事务

5、的轨迹,http请求会留下访问的轨迹,程序的方法执行也可以留下轨迹)。 轨迹包含了对性能分析有用的信息(比如上下文的信息,线程堆栈的信息,执行时间的信息等等),轨迹之间存在关系,比如数据库事务的轨迹和SQL的轨迹,http请求和类方法执行的轨迹之间都有一定的关系。在性能分析中,我们可能存在几个关注点,比如数据库,远程调用,方法调用,组件等等,通过这些关注点相关程序留下的轨迹,我们进行性能分析。 轨迹的管理 轨迹是错综复杂的,零碎地,关系模糊的,所以要真正有助于性能分析,还需要相应的支持。所以,轨迹又需要生命周期管理,和统计管理。 轨迹的生命周期管理:轨迹创建,运行,销毁,钝化的各个状态。通过分

6、析工具把有问题的轨迹(比如执行时间过长)找到,通过视图暴露出来。 轨迹的统计:不同关注点的轨迹,存在不同的统计逻辑,通过不同的分析插件,展现给性能分析者。 轨迹的注入 轨迹不会自己产生,我们也不可能修改系统的代码。而我又不想像其他的一些分析工具一样,通过本地接口获取JVM的状态从而进行统计(那样就得依赖JVM,依赖OS)。而现在有一个不错的办法摆在我们的面前,那就是采用ClassWorking。目前,我已经实现了一个ClassEnhancer以及一个PackageEnhancer,它能够对指定的类和包进行注入。 轨迹的生命周期3 Jwebap插件Jwebap在模型上采用了插件的设计,从而达到对

7、轨迹的收集管理,和分析统计的解耦。模型如下图:分析Component可以通过jwebap.xml定义,也可以动态的在RuntimeContext中注册。如下:Jwebap分为两大部分,Jwebap Core和Jwebap Component。Jwebap Core实现了对Component的管理,轨迹的收集,生命周期,轨迹的磁盘钝化等等,另外,还提供了ByteCode包以实现对代码的注入,集成了模板引擎以实现视图。Jwebap Component实现各种各样的分析功能,以插件的方式集成于Jwebap,当不需要时,随时可以去掉。4 Class-WorkingClass-Working在Jweba

8、p里面是一个很重要的基础构件。轨迹的收集,目前都是通过字节码操作注入到目标类里面的。Jwebap默认实现了基于ASM-2.1(asm.objectweb.org)Class-Working构件。结合ASM的访问者模式,Jwebap的注入模型如下:5 轨迹钝化对于不活动的轨迹(参照轨迹生命周期),轨迹容器按照一定的算法钝化轨迹到存储设备(可能是磁盘,可能是数据库)。钝化的轨迹文件用作一些特定的统计分析。也可以日后开发客户端分析工具,进行全量信息的分析。6 钝化文件分析客户端钝化文件分析工具。进行全量的数据分析。7 模版引擎为了部署方便,Jwebap开发Web统计视图,通过集成第三方的模版引擎实现

9、。在集成层,Jwebap实现客户端MVC框架,模版引擎实现模版语言与容器的实现。Jwebap通过Servlet作为输出的控制器。8 数据库监控插件DBComponent包含两个分析器,FrequencyAnalyser和TimeFilterAnalyser。DBComponent在启动时通过对数据库驱动或者具体的应用获取Connection的类的注入,代理Connection实现分析。9 方法监控插件10 Http请求监控插件11 部署11.1 Step one把Jwebap_*.*.*_*.jar放到应用的ClassPath下。同时把依赖的jar包也放到应用的ClassPath下(参照13依

10、赖性说明)。11.2 Step two把jwebap.xml放到工程web module任意目录中。11.3 Step three修改配置文件: jwebap.xml可以根据需要配置相应的Component,目前实现的Component有: HttpComponenttrace-filter-active-time: (ms)超过该毫秒数的执行轨迹将被记录trace-max-size: 最大记录的超时轨迹数 MethodComponenttrace-filter-active-time: (ms)超过该毫秒数的执行轨迹将被记录trace-max-size: 最大记录的超时轨迹数detect-c

11、lazzs: 要监控的类,可以配置包名和类名,如test.*;test.Test,但不支持通配符,多个类名之间通过;分隔 JdbcComponenttrace-filter-active-time: (ms)超过该毫秒数的执行轨迹将被记录trace-max-size:最大记录的超时轨迹数connection-listener: Connection监听器,可配置多个,以;分隔driver-clazzs:本地连接池:可以采取配置驱动的方式,比如应用采用oracle,mysql两种数据库,驱动分别是oracle.jdbc.driver.OracleDriver,com.mysql.jdbc.Dri

12、ver,那么在DBComponent配置项中配置driver-clazzs=oracle.jdbc.driver.OracleDriver; com.mysql.jdbc.Driverjndi远程数据源:可以配置Application中用于获取连接的类作为驱动(比如 com.ConnectionManager)。Jweabp启动时对这些驱动类进行注入,使得所有该类方法返回的Connection具有监控的功能。 web.xml增加全局参数config,指向jwebap.xml的位置config/WEB-INF/jwebap.xml配置Jwebap启动类注意:配置在所有listener之前,以保证

13、Jwebap最先启动,这点对于类增强很重要。 org.jwebap.core.JwebapListener 配置HttpComponent的过滤器。PageDetectFilterorg.jwebap.plugin.http.DetectFilter excludeUrls /detect;/detect/*;*.js;*.jpg;*.htm;*.html;*.gif;*.png;*.css;*.swfPageDetectFilter/*配置统计视图Servlet。detectorg.jwebap.ui.controler.JwebapServlet detect/detect/*12 Scr

14、eenShot12.1 Http Traces12.2 Method Traces12.3 Jdbc Traces13 依赖性说明1) JDK1.4或以上版本2) log4j-1.2.8.jar3) commons-digester-1.7.jar4) commons-beanutils.jar5) commontemplate-0.8.1.jar6) commons-logging.jar配置文件有:1) Jwebap.xml14 licence声明Jwebap采用Apache Licence,内部采用了ASM-2.1RC组件,出于ASM-2.1RC兼容性的考虑,把ASM-2.1RC集成到了组件内部,特此声明。15 Jwebap-SDK(开发自己的Plug-in)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1