1 2 3 4 Previous Next 45 Replies Latest reply: Oct 27, 2008 8:45 AM by Jesper Pedersen RSS

JBoss Profiler 2

Jesper Pedersen Master

JBoss Profiler 2 will be a 100% Java based profiler capable of profiling Java Enterprise 5 applications.

The profiler will use the java.lang.instrument API to hook into method invocations of the classes selected in the configuration.

Overview:


* 100% Pure Java

x Memory storage for snapshots
x File storage for snapshots


* Integration with JBoss Enterprise Middleware Suite (JEMS)

x Ability to change configuration at run-time


* Access through multiple protocols using JBoss Remoting

x Socket
x RMI
x HTTP


* Reports

x Overview
x Classes
x Hotspots
x PerThread
x PerClass


* Able to specify method visibility

x Global
x Package
x Class


* Component identification

x Plain Old Java Object (POJO)
x java.lang.Throwable
x Enterprise JavaBean: Entity
x Enterprise JavaBean: Session
x Enterprise JavaBean: Message
x Servlet
x Servlet filter
x JavaServer Pages
x JMX MBean
x JavaServer Faces Converter
x JavaServer Faces Managed Bean
x RMI: Remote
x RMI: Server
x CORBA: Object
x CORBA: Servant
x Other: Using component identification plugins


* Client

x Command line
x Seam web client
x Administration console



The profiler is split into the following components:

* Agent : Collects the profiling information
* Shared: Shared classes between the agent and clients
* Connectors: Classes needed for communication
* AS: Classes needed for AS integration
* Client: Client implementations


The API between client and agent:

* startProfiler: Start the profiler
* stopProfiler: Stop the profiler
* snapshot: Take a snapshot
* getSnapshot: Get a snapshot
* listSnapshots: List snapshots
* clearSnapshots: Clear snapshots
* gc: Trigger garbage collection
* enable: Enable the profiler
* disable: Disable the profiler
* load: Load a snapshot
* save: Save a snapshot


Additional client functionality:

* Snapshot difference
* Call-stack analyzer


The profiler targets JBoss Application Server 4.2 and 5.0, since it requires a Java 5 run-time environment. The profiler must also be able to profile standalone applications or frameworks.

A Proof-of-Concept has been implemented along these lines.

  • 1. Re: JBoss Profiler 2
    Scott Stark Master

    Fantastic. It would be great to get the souce into svn for others to see. However, currently the profiler codebase is in the old cvs repository:
    http://fisheye.jboss.com/browse/JBoss/jboss-profiler

    CVSROOT :ext:username@cvs.forge.jboss.com:/cvsroot/jboss

    I can see about getting the profiler repo moved to svn. How does this codebase relate to the previous one?

  • 2. Re: JBoss Profiler 2
    Clebert Suconic Master

    It's a brand new development.. everything is new...

    I believe we could integrate some of the new front-end done by Takuro with this. It will require some work.

    It would help if we could have the profiler converted to SVN. I have already requested IT long time ago.

  • 3. Re: JBoss Profiler 2
    Jesper Pedersen Master

    One plan could be:

    1) Migrate existing CVS to SVN
    2) Branch current profiler to Branch_1_0
    3) Import PoC on trunk
    4) Create JIRA version
    5) Convert build environment to JBoss style
    6) Release PoC version to repository.jboss.com
    7) Create design / end-user documentation on wiki
    8) Create standalone release on labs.jboss.com (optional)
    9) Get feedback from jboss-development@
    10) Identify tasks for a release that matches JBossAS-5.0.GA - especially integration
    11) Code - test - repeat
    12) Release GA version

    I think that the most important tasks are to get the agent feature complete and make the integration to the administration console as easy as possible.

    This means that the Seam 2.0 web client - or the existing Flash client - have a lower priority when compared to the JBossAS-5.0.GA release. But lets see if time doesn't permit a GUI release within the time frame.

  • 4. Re: JBoss Profiler 2
    Scott Stark Master

    Is the an open issue for the svn migration Clebert?

  • 5. Re: JBoss Profiler 2
    Clebert Suconic Master

    http://jira.jboss.org/jira/browse/JBIT-796

    (Link for JBoss Employees only)

  • 6. Re: JBoss Profiler 2
    Scott Stark Master

    How important is it to have the project history in svn vs having to go into fisheye/cvs to get this? If its not we can just get the svn repo created and manually add the source from a current cvs checkout.

  • 7. Re: JBoss Profiler 2
    Jesper Pedersen Master

    The suite is now being tracked at

    http://jira.jboss.com/jira/browse/JBPROFILER-50

    with both binary and source releases.

    See README.txt for further details.

  • 8. Re: JBoss Profiler 2
    Jorge Morales Apprentice

    Hi, I am trying this JBoss Profiler with a clean JBoss4.2.2 installation on a linux box and I get this error:

    Error opening zip file: jboss-profiler.jar
    Error occurred during initialization of VM
    agent library failed to init: instrument
    


    ¡Help appreciated!

    My linux box is running:
    java version "1.5.0_13"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)
    Java HotSpot(TM) Server VM (build 1.5.0_13-b05, mixed mode)

    And it is a:
    Linux santander 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux


  • 9. Re: JBoss Profiler 2
    Jesper Pedersen Master

    Since you posted in this thread I'll assume that you are using 2.0.CR7.

    JBoss-4.2.2.GA and JDK-1.5.0_13 is supported by the 2.0.CR7 release.

    It seems that something went wrong either in the download or the unpacking of the ZIP file. Try to download it again and post full details if the problem still is there - e.g. your JAVA_OPTS setting.

    Make sure that "jar tf jboss-profiler.jar" doesn't show any errors - and follow the instructions in the README.txt file regarding installation inside JBossAS.

  • 10. Re: JBoss Profiler 2
    Jesper Pedersen Master

    JBoss Profiler 2.0.CR8 has been released:

    http://jira.jboss.com/jira/browse/JBPROFILER-50

    Enjoy !

  • 11. Re: JBoss Profiler 2
    Ioannis Mavroukakis Newbie

    Hi :-)

    I am using Profiler 2 CR8. What I want to achieve is to profile some services that I have that are starting very slowly when the server is booted. This is how I've setup jboss-4.0.2


    under bin/

    jboss-profiler-plugins.jar
    jboss-profiler.properties
    jboss-profiler.jar

    run.conf
    JAVA_OPTS="$JAVA_OPTS -javaagent:jboss-profiler.jar -Djboss-profiler.properties=jboss-profiler.properties"

    jboss-profiler.properties
    enable=yes
    cpu=yes
    memory=yes
    includes=com.ga.messaging.*
    excludes=*
    visibility=private
    save=yes
    startup=yes
    repository=no
    remote=yes
    store=file
    location=/tmp/profiles
    host=localhost
    port=5400
    ejb=yes
    servlet=yes
    jsf=no
    jmx=yes
    rmi=yes
    corba=yes
    plugin.1=org.jboss.profiler.plugins.Hibernate


    My question is, if the profiler has been setup with startup=yes, does this mean it will start recording data when the server begins to bootup? If that's the case, what are the next steps I need to take once the classes I am interested in have been profiled? I assume I need to stop the profiler and take a snapshot?

    Thank you,

    Yiannis

  • 12. Re: JBoss Profiler 2
    Ioannis Mavroukakis Newbie

    Forgot to mention I am running jboss under JDK 1.6

  • 13. Re: JBoss Profiler 2
    Jesper Pedersen Master

    First of all: You need asm.jar in bin/ also.

    Second: You should use JDK-1.5 instead, since JDK-1.6 isn't officially supported in AS-4.0.x

    Third: JBoss Profiler 2 was designed to be used together with AS-4.2 and AS-5.0.

    4th:

    When you are done - after startup f.ex - just issue:

    Client stopProfiler
    Client getSnapshot 1
    Client load file.jps

    See README.txt for details...

    Otherwise you are good to go :)

    Hope this helps !

  • 14. Re: JBoss Profiler 2
    Ioannis Mavroukakis Newbie

    hehehe ok asm.jar is in bin, but it's the one we use not the one supplied with the profiler, as it has some issues with the stuff that we run. I hope I can use 1.5 instead of 1.6 as there's some bits of 1.6 that we do use..

    For your 3rd point, is there a "recommended" profiler for 4.0.2 ?

    Thank you for taking the time :-) :-)

1 2 3 4 Previous Next