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.
* 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
* Able to specify method visibility
* Component identification
x Plain Old Java Object (POJO)
x Enterprise JavaBean: Entity
x Enterprise JavaBean: Session
x Enterprise JavaBean: Message
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
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.
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:
I can see about getting the profiler repo moved to svn. How does this codebase relate to the previous one?
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.
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
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
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.
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
JAVA_OPTS="$JAVA_OPTS -javaagent:jboss-profiler.jar -Djboss-profiler.properties=jboss-profiler.properties"
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?
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.
When you are done - after startup f.ex - just issue:
Client getSnapshot 1
Client load file.jps
See README.txt for details...
Otherwise you are good to go :)
Hope this helps !
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 :-) :-)