论坛首页 Java企业应用论坛

Jwebap(七)——插件:0.6.0版本发布

浏览 13402 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2009-03-03   最后修改:2009-03-03

下载:www.sourceforge.net/projects/jwebap

jwebap0.6.0发布

引用
jwebap0.6.0版本发布。从0.6版本开始,对jwebap核心进行了大量重构,基本实现了插件化管理,同时提供了Plugin部署和配置界
面,实现jwebap的配置完全界面化,先来看看新的plugin界面:




jwebap-plugin架构

引用
jwebap的plugin管理,目前自己实现,主要涵盖几个方面:

1) plugin采用jar包形式管理,通过标准的plugin定义文件,集成于jwebap
plugin包含多个component,由component构建plugin的实际功能,plugin内部component之间内聚,实际运行时,以component为单位进行管理,plugin更像是一个集成包,这样对于plugin的划分粒度较粗,使用起来更为便利和傻瓜化

2) plugin的component在jwebap启动时加载,对于群集应用,jwebap一个应用一个实例,暂未实现群集轨迹容器。

3) component的类加载考虑到目前plugin并不会太多,暂未实现独立的命名空间和类加载管理

4) plugin扩展,实现了基本的视图扩展,目前还只支持菜单级视图扩展点,jwebap提供了包括bytecode,plugin视图框架,轨迹,轨迹容器等基础构件供plugin使用

5) 对于plugin的部署和参数配置,提供后台界面完成

就这么多了,欢迎各位多提意见,后续plugin这块是一定要加强的,现有的模型如下:






Tracer插件

引用
说说,jwebap默认的plugin——tracer。基于前期实现的功能,实现tracer插件。包括jdbc调用分析,sql分析,sql调用程序栈跟踪,http分析,应用api调用分析,跟踪方法调用,调用栈,找出瓶颈的开销api。各种分析都可以设置时间阀值,提供清单的分析,和全量的平均时间,最大最小调用时间统计等。值得一提的是,本次新提供了sql分析语法加亮功能,同时修复了前期方法监听内部开启jdbc连接数显示不出的bug。具体插件的使用可以参考手册。





0.6.0版本修正内容:

引用

1) 实现jwebap.xml对plugin的配置
2) 修改connection-listner的bug
3) 存储过程监控不到 
4) weblogic以war包方式部署会找不到jwebap.xml
5) weblogic下刷新控制台,会打印错误日志BUG
6) 整理出'tracer'插件
7) 增加jdbcComponent的SQL语法加亮显示功能
8) 修改SQL展现html转义BUG
9) jwebap-core核心包结构调整





下个版本重点计划内容:

引用
1)实现内存分析插件
2)实现插件管理视图扩展点配置

 

 

  • 大小: 83.7 KB
   发表时间:2009-03-03  
发个以前的老贴子吧:



Jwebap项目(四)——性能监控工具Jwebap: 0.5.8版本发布
0 请登录后投票
   发表时间:2009-03-03  
刚用上, 想问一下能否配置输出日志的记录..
0 请登录后投票
   发表时间:2009-03-03  
hilor 写道
刚用上, 想问一下能否配置输出日志的记录..



可以,点击Deploy——》plugins——》Tracer——具体component

trace-max-size参数,默认1000
0 请登录后投票
   发表时间:2009-03-04  
seekgirl 写道
帮看什么问题?
2009-03-04 09:31:48,640 WARN org.jwebap.startup.JwebapListener.contextInitialized(43) org.jwebap.core.Component.startup(Lorg/jwebap/core/ComponentContext;)V
java.lang.NoSuchMethodError: org.jwebap.core.Component.startup(Lorg/jwebap/core/ComponentContext;)V
at org.jwebap.core.RuntimeContext.registerComponent(RuntimeContext.java:73)
at org.jwebap.startup.Startup.startup(Startup.java:86)
at org.jwebap.startup.Startup.startup(Startup.java:54)
at org.jwebap.startup.JwebapListener.contextInitialized(JwebapListener.java:36)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4342)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)


这可能跟你tracer-plugin的部署有关,tracer.jar是否和jwebap**.jar放一起了?
0 请登录后投票
   发表时间:2009-03-04  
sorry, 发现了问题,我工程下旧版本jwebap jar没有删除
0 请登录后投票
   发表时间:2009-03-05  
Jwebap JdbcComponent配置注意:


JdbcComponent 对于本地数据源,在配置driver-clazz时不推荐直接配置数据库驱动作为driver-clazz,这和原先配置文档的说明不同,请大家注意!

由于一般应用都采用连接池技术作为数据源,而直接配置数据库驱动作为driver-clazz,会受到连接池影响,监控发现所有的连接都是未关闭的,造成jwebap泄漏检测,时间统计的结果都无效了。所以,这种情况,建议直接配置,连接池的Datasource作为driver-clazz:

1)c3p0:可以配置com.mchange.v2.c3p0.ComboPooledDataSource

2)dbcp:可以配置org.apache.commons.dbcp.BasicDataSource

同时,也可以配置应用自己封装的ConnectionManager之类的类。jwebap对于driver-clazz所返回的Connection和Datasource会做监控。

0 请登录后投票
   发表时间:2009-04-08  
我出现这个错误不知道是为什么? 请楼主帮忙

org.jwebap.toolkit.bytecode.InjectException: test.Test注入失败.
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.injectInternal(ASMInjectorStrategy.java:145)
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.inject(ASMInjectorStrategy.java:117)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:107)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:95)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:82)
	at org.jwebap.plugin.tracer.method.MethodComponent.injectClass(MethodComponent.java:92)
	at org.jwebap.plugin.tracer.method.MethodComponent.startup(MethodComponent.java:55)
	at org.jwebap.core.RuntimeContext.registerComponent(RuntimeContext.java:73)
	at org.jwebap.startup.Startup.startup(Startup.java:86)
	at org.jwebap.startup.Startup.startup(Startup.java:54)
	at org.jwebap.startup.JwebapListener.contextInitialized(JwebapListener.java:36)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: test.Test not found.
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.defineClass(ASMInjectorStrategy.java:213)
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.injectInternal(ASMInjectorStrategy.java:142)
	... 34 more
0 请登录后投票
   发表时间:2009-04-08  
fanwenqiang666 写道
我出现这个错误不知道是为什么? 请楼主帮忙

org.jwebap.toolkit.bytecode.InjectException: test.Test注入失败.
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.injectInternal(ASMInjectorStrategy.java:145)
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.inject(ASMInjectorStrategy.java:117)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:107)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:95)
	at org.jwebap.toolkit.bytecode.ClassEnhancer.createClass(ClassEnhancer.java:82)
	at org.jwebap.plugin.tracer.method.MethodComponent.injectClass(MethodComponent.java:92)
	at org.jwebap.plugin.tracer.method.MethodComponent.startup(MethodComponent.java:55)
	at org.jwebap.core.RuntimeContext.registerComponent(RuntimeContext.java:73)
	at org.jwebap.startup.Startup.startup(Startup.java:86)
	at org.jwebap.startup.Startup.startup(Startup.java:54)
	at org.jwebap.startup.JwebapListener.contextInitialized(JwebapListener.java:36)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3843)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4350)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
	at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:924)
	at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:887)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1147)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.ClassNotFoundException: test.Test not found.
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.defineClass(ASMInjectorStrategy.java:213)
	at org.jwebap.toolkit.bytecode.asm.ASMInjectorStrategy.injectInternal(ASMInjectorStrategy.java:142)
	... 34 more

这个错误是由于MethodComponent配了监控test.Test类,而这个类找不到造成的,你只需你在jwebap console,修改MethodComponent的参数,把监控的类配成你自己的类或包即可。
0 请登录后投票
   发表时间:2009-04-29  
有QQ讨论群吗
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics