1 2 3 4 Previous Next 45 Replies Latest reply on Oct 27, 2008 8:45 AM by jesper.pedersen

    JBoss Profiler 2

    jesper.pedersen

      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
          starksm64

          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

            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

              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
                starksm64

                Is the an open issue for the svn migration Clebert?

                • 5. Re: JBoss Profiler 2
                  clebert.suconic

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

                  (Link for JBoss Employees only)

                  • 6. Re: JBoss Profiler 2
                    starksm64

                    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

                      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
                        jorgemoralespou_2

                        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

                          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

                            JBoss Profiler 2.0.CR8 has been released:

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

                            Enjoy !

                            • 11. Re: JBoss Profiler 2
                              imavroukakis

                              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
                                imavroukakis

                                Forgot to mention I am running jboss under JDK 1.6

                                • 13. Re: JBoss Profiler 2
                                  jesper.pedersen

                                  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
                                    imavroukakis

                                    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