`
baobeituping
  • 浏览: 1065111 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Jwebap User Guide 配置网站日志追踪

阅读更多

 

Jwebap User Guide

 

leadyu (yu-lead@163.com)

1       介绍

Jwebap是一个用于java web application profiler工具。 它不采用JVMPI提供的特性实现监控,是一个纯粹的JAVA应用,不依赖于OSJVMJDK1.4以上用户都可以使用。

它的目的是希望能够安全高效的部署于生产以及测试应用系统,及时地发现应用系统中存在的性能瓶颈,以及为一些动态性很高难于调试和维护的应用系统提供帮助。目前它主要致力于性能分析和优化方面,以后可能往其他监控方面发展(比如业务数据的监控)。因此,组件提供基本的SDK,提供基本的分析功能,不断丰富的分析功能可以通过统一的方式以插件的形式加入Jwebap组件。

出于这些目的,作者心目中理想的监控分析工具应该具备下面几个特性:

1.1 高效

组件本身必须具有很高的执行效率,对应用系统的运行带来的负担非常微小。其实就目前来说,一般的profiler工具在一定的组件功能复杂度的情况下,需要处理非常庞大的数据量,做到真正的高效率其实是一个困难度很高的挑战,所以,一方面组件本身要足够健壮和高效,另一方面对于组件可以监控的范围也要可以配置。(毕竟我们进行性能分析并不一定需要了解应用的全部执行细节)

1.2 分析功能丰富

如果只是把庞大的应用系统运行细节暴露出来,已经远远不能满足现有的需要,根据不同视角的分析与统计变得非常必要。并且分析的功能能够不断丰富。(例如对于数据库的监控插件提供topMethod,topSQL之类的分析报表,甚至是动态的图形报表)

1.3 跨平台

基于JAVA的组件难道还要考虑跨平台的问题吗?回答是当然需要,起码对于profiler工具来说。目前不少profiler通过jvmpi以及一些本地化接口实现对于JVM内部运行细节的监控。而理想的监控工具应该是纯JAVA的,不依赖JVMOS,否则组件的生命会变得脆弱,使用的时候也会很麻烦,我希望组件不但可以使用在测试环境,同样无缝的部署与生产应用系统。难道让生产系统应监控工具而改变OSJVM吗?这明显不大可能。

1.4 部署简易

希望是非常的方便,通过对动态类加载,字节码注入等技术的运用对外提供简单的部署方式,我希望就是通过几行的配置文件就能完成部署。

1.5 可扩展性

前面提到,组件应该能够提供丰富的分析功能,并且这种功能可以通过插件的方式不断集成于组件之中以满足不同的需要。所以,组件的实现中信息的采集和信息的分析必须是解耦的,一方面组件提供高效稳定的信息采集方式,另一方面组件提供基于插件的框架,能够不断扩展分析功能以满足需要,甚至这些分析功能不仅仅是性能方面,也包括业务数据的监控。

2       什么是轨迹

在组件的设计中包含一个重要的概念——轨迹。那么什么是轨迹?

l       轨迹的定义

        在系统中,任何程序的执行都有可能留下轨迹(数据库的调用会留下SQL轨迹,事务的轨迹,http请求会留下访问的轨迹,程序的方法执行也可以留下轨迹)。

        轨迹包含了对性能分析有用的信息(比如上下文的信息,线程堆栈的信息,执行时间的信息等等),轨迹之间存在关系,比如数据库事务的轨迹和SQL的轨迹,http请求和类方法执行的轨迹之间都有一定的关系。在性能分析中,我们可能存在几个关注点,比如数据库,远程调用,方法调用,组件等等,通过这些关注点相关程序留下的轨迹,我们进行性能分析。

l       轨迹的管理

       轨迹是错综复杂的,零碎地,关系模糊的,所以要真正有助于性能分析,还需要相应的支持。所以,轨迹又需要生命周期管理,和统计管理。

       轨迹的生命周期管理:轨迹创建,运行,销毁,钝化的各个状态。通过分析工具把有问题的轨迹(比如执行时间过长)找到,通过视图暴露出来。

       轨迹的统计:不同关注点的轨迹,存在不同的统计逻辑,通过不同的分析插件,展现给性能分析者。

l       轨迹的注入

      轨迹不会自己产生,我们也不可能修改系统的代码。而我又不想像其他的一些分析工具一样,通过本地接口获取JVM的状态从而进行统计(那样就得依赖JVM,依赖OS)。而现在有一个不错的办法摆在我们的面前,那就是采用ClassWorking。目前,我已经实现了一个ClassEnhancer以及一个PackageEnhancer,它能够对指定的类和包进行注入。

l       轨迹的生命周期

3       Jwebap插件

Jwebap在模型上采用了插件的设计,从而达到对轨迹的收集管理,和分析统计的解耦。模型如下图:

分析Component可以通过jwebap.xml定义,也可以动态的在RuntimeContext中注册。如下:

Jwebap分为两大部分,Jwebap CoreJwebap Component

Jwebap Core实现了对Component的管理,轨迹的收集,生命周期,轨迹的磁盘钝化等等,另外,还提供了ByteCode包以实现对代码的注入,集成了模板引擎以实现视图。

Jwebap Component实现各种各样的分析功能,以插件的方式集成于Jwebap,当不需要时,随时可以去掉。

4       Class-Working

Class-WorkingJwebap里面是一个很重要的基础构件。轨迹的收集,目前都是通过字节码操作注入到目标类里面的。

Jwebap默认实现了基于ASM-2.1asm.objectweb.orgClass-Working构件。结合ASM的访问者模式,Jwebap的注入模型如下:

5       轨迹钝化

对于不活动的轨迹(参照轨迹生命周期),轨迹容器按照一定的算法钝化轨迹到存储设备(可能是磁盘,可能是数据库)。钝化的轨迹文件用作一些特定的统计分析。

也可以日后开发客户端分析工具,进行全量信息的分析。

6       钝化文件分析

客户端钝化文件分析工具。进行全量的数据分析。

7       模版引擎

为了部署方便,Jwebap开发Web统计视图,通过集成第三方的模版引擎实现。在集成层,Jwebap实现客户端MVC框架,模版引擎实现模版语言与容器的实现。

Jwebap通过Servlet作为输出的控制器。

 

 

 

 

 

 

 

 

 

8       数据库监控插件

DBComponent包含两个分析器,FrequencyAnalyserTimeFilterAnalyserDBComponent在启动时通过对数据库驱动或者具体的应用获取Connection的类的注入,代理Connection实现分析。

9       方法监控插件

10             Http请求监控插件

11             部署

11.1Step one

Jwebap_*.*.*_*.jar放到应用的ClassPath下。同时把依赖的jar包也放到应用的ClassPath下(参照13依赖性说明)。

11.2Step two

jwebap.xml放到工程web module任意目录中。

 

11.3Step three

修改配置文件:

l       jwebap.xml

可以根据需要配置相应的Component,目前实现的Component有:

u     HttpComponent

trace-filter-active-time: (ms)超过该毫秒数的执行轨迹将被记录

trace-max-size: 最大记录的超时轨迹数

u     MethodComponent

trace-filter-active-time: (ms)超过该毫秒数的执行轨迹将被记录

trace-max-size: 最大记录的超时轨迹数

detect-clazzs: 要监控的类,可以配置包名和类名,test.*;test.Test,但不支持通配符,多个类名之间通过;分隔

u     JdbcComponent

trace-filter-active-time: (ms)超过该毫秒数的执行轨迹将被记录

trace-max-size:最大记录的超时轨迹数

connection-listener: Connection监听器,可配置多个,;分隔

driver-clazzs:

本地连接池:可以采取配置驱动的方式,比如应用采用oracle,mysql两种数据库,驱动分别是oracle.jdbc.driver.OracleDriver,

com.mysql.jdbc.Driver,那么在DBComponent配置项中配置

driver-clazzs=oracle.jdbc.driver.OracleDriver; com.mysql.jdbc.Driver

 

jndi远程数据源:可以配置Application中用于获取连接的类作为驱动(比如       com.ConnectionManager)Jweabp启动时对这些驱动类进行注入,使得所有该类方法返回的Connection具有监控的功能。

l       web.xml

增加全局参数config,指向jwebap.xml的位置

<context-param>

<param-name>config</param-name>

<param-value>/WEB-INF/jwebap.xml</param-value>

</context-param>

配置Jwebap启动类

注意:配置在所有listener之前,以保证Jwebap最先启动,这点对于类增强很重要。

 

<listener>      

<listener-class>org.jwebap.core.JwebapListener</listener-class>      

</listener>

配置HttpComponent的过滤器。

<filter>

<filter-name>PageDetectFilter</filter-name>

<filter-class>org.jwebap.plugin.http.DetectFilter</filter-class>

<init-param>

       <param-name>excludeUrls</param-name>

       <param-value>/detect;/detect/*;*.js;*.jpg;*.htm;*.html;*.gif;*.png;*.css;*.swf</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>PageDetectFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

配置统计视图Servlet

<servlet>

<servlet-name>detect</servlet-name>

<servlet-class>org.jwebap.ui.controler.JwebapServlet</servlet-class>      

</servlet>

<servlet-mapping>

<servlet-name>detect</servlet-name>

<url-pattern>/detect/*</url-pattern>

</servlet-mapping>

12             ScreenShot

12.1    Http Traces

12.2    Method Traces

 

12.3    Jdbc Traces

13             依赖性说明

1)       JDK1.4或以上版本

2)       log4j-1.2.8.jar

3)       commons-digester-1.7.jar

4)       commons-beanutils.jar

5)       commontemplate-0.8.1.jar

6)       commons-logging.jar

配置文件有:

1)       Jwebap.xml

14             licence声明

Jwebap采用Apache Licence,内部采用了ASM-2.1RC组件,出于ASM-2.1RC兼容性的考虑,把ASM-2.1RC集成到了组件内部,特此声明。

 

通过网站的监视,可以查看到网站有哪些链接没有关闭,可以追踪网站被访问的记录等信息。 

分享到:
评论

相关推荐

    2021 vcs userguide

    2. **选项和配置**:User Guide详细介绍了如何配置VCS,包括设置编译选项、仿真选项和性能优化参数。这涵盖了如何控制仿真流程,如编译、链接、运行和后处理,以及如何定制报告和日志输出。 3. **调试与分析**:VCS...

    HSPICE使用教程HSPICE User Guide

    - HSPICE User Guide: Simulation and Analysis, version C-2009.03 - HSPICE User Guide: RF Analysis, version C-2009.03 - HSPICE User Guide: Signal Integrity, version C-2009.03 - HSPICE User Guide: ...

    Verdi User Guide and Tutorial.pdf

    Verdi User Guide and Tutorial.pdf April 1, 2009 350页,全英文高清晰

    Skill User Guide中文版

    《Skill User Guide中文版》是针对技能学习者的指导性文档,旨在帮助初学者掌握技能的基本概念和使用方法。这份文档的翻译为中文,使得国内的读者能够更方便地理解和应用其中的知识,推动了技能学习的普及和资源共享...

    Design Compiler User Guide

    《Design Compiler 用户指南》是由Synopsys公司出版的官方文档,版本为F-2011.09-SP2,发布日期为2011年12月。该指南属于用户手册系列,详细介绍了Design Compiler这款EDA(电子设计自动化)软件的使用方法。...

    pt_user_guide.pdf

    pt_user_guide.pdf 文件是 PrimeTime 和 PrimeTime SI 软件的用户手册,涵盖了软件的安装、配置、使用等方面的详细指南,并包含了版权信息、免责声明、商标信息、Destination Control Statement 等重要信息。

    Virtuoso SpectreRF Simulation Option User Guide.pdf

    Virtuoso SpectreRF Simulation Option User Guide,include SpectreRF Analysis ,SpectreRF simulation form reference, setting up for the examples........ 各种仿真都有说明,还有实例

    VCS_User_Guide.pdf

    "VCS_User_Guide.pdf" VCS用户手册是 Synopsis 公司出品的一份重要的用户指南,旨在帮助用户更好地使用VCS(Verification Continuum)工具,实现IC设计的自动化验证。该手册涵盖了VCS的使用指南、功能特点、配置...

    vcs 2018.09 user guide

    总的来说,"vcs 2018.09 user guide"是一份详尽的文档,涵盖了VCS仿真器的所有关键功能和用法,是设计者进行高效Verilog验证的重要参考资料。通过深入理解和应用其中的知识点,设计团队可以加速其设计验证过程,提高...

    Genus User Guide for Legacy UI.pdf

    1. **系统设置**:指导用户如何配置Genus工具以适应特定的设计需求,包括编译选项、目标设备库、时钟约束等。 2. **输入与输出文件管理**:详细说明了输入的网表文件、约束文件、宏模型等的格式和使用,以及生成的...

    liberty user guide

    标题“Liberty User Guide”和描述“it describes the all the commands used in liberty”表明,这是一本用于Liberty的用户指南,它详尽描述了在Liberty中使用的所有命令。标签“liberty user guide”也证实了这...

    mmwave_sdk_user_guide

    MMWAVE SDK User Guide是Texas Instruments(_TI)推出的SDK配置文件用户指南。该指南旨在帮助开发者快速了解和掌握MMWAVE SDK的使用方法和配置方式。 系统概述 MMWAVE SDK是TI为其mmWave雷达产品系列提供的软件...

    SKILL Language User Guide

    标题为"SKILL Language User Guide",表明该文档是一本关于SKILL语言的用户指南。SKILL语言由Cadence公司开发,是一种主要用于集成电路设计自动化应用的脚本语言。用户指南很可能涉及SKILL语言的基础知识、语法结构...

    Sentaurus TCAD Device User Guide

    Sentaurus TCAD Device User Guide 本文档是 Sentaurus TCAD Device 的用户指南,旨在帮助用户了解该软件的使用方法和基本概念。 Sentaurus TCAD Device 是一款专业的集成电路设计和仿真软件,能够帮助用户设计、...

    siliconsmart ACE user guide 2016

    此文档为电子档pdf,文档名称为《siliconsmart ACE user guide 2016》。为Synopsys公司的siliconsmart软件的用户手册,此软件主要用于liberate的特征提取,包括标准单元、IO单元、RAM等

    PrimeTime PX User Guide

    - **安装与配置**:文档详细介绍了 PrimeTime PX 的安装过程及系统配置要求,确保软件能在用户的计算机上顺利运行。 - **基本操作流程**:包括如何导入设计文件、设置分析参数、执行时序分析以及解读分析结果等基本...

    PowerArtist userguide

    标题《PowerArtist userguide》指向了PowerArtist这款软件的用户使用手册,它旨在向用户介绍如何使用PowerArtist这一工具进行功耗评估。PowerArtist是一种设计流程中的功耗分析和优化软件,它被广泛应用于电子设计...

    Arm Compiler User Guide 6.16.pdf

    标题《Arm Compiler User Guide 6.16.pdf》和描述《ARMCC_6.16_用户手册,2021最新版本,用于指导程序开发和编译器差异点,请注意官方只有英文版。》中所蕴含的知识点非常丰富,涉及了ARM编译器的版本历史、版权声明...

    uvmgen_userguide.pdf

    标题《uvmgen_userguide.pdf》以及描述《产生UVM环境的一个自动化脚本》均指向了一个主题——UVMTemplateGenerator,简称uvmgen。UVM(Universal Verification Methodology)是一种基于SystemVerilog的面向对象的...

Global site tag (gtag.js) - Google Analytics