Chapter 4. Webinterface

4.1. Runtime Profiler

4.1.1. Running Application

To start analyzing after the deployment, open this URL into your WEB-Browser.

http://localhost:8080/jboss-profiler

Figure 4.1. 

You will have to type the directory where you added the log files. It was not possible to create a select button as this is a Web application. The good thing about a WebApplication for a profiler, is that you can have people analyzing data remotely. (This is a good tool for consultants. support staff and architects that may not be on site)

4.1.2. Selecting the Process ID

Figure 4.2. 

Besides the option to select any process id you might need, you have also three extra options that will control how to analyze the log-files into profiler’s object-model:

  • Stack on objects

    You can locate where objects are created if this feature is enabled

  • Stack on methods

    You can generate the iteration between methods callings. If not activated you won’t have reference information between methods.

  • Calculate releases on GC operations

    If activated a complete reference between object ids and methods ID. It’s a good option to locate memory-leaks

After submit this following processing screen will be viewed.

Figure 4.3. 

Follow the link, and you will see Process-View/Methods view as default: You can have this view by clicking on ProcessView-methods.

Figure 4.4. 

You can proceed from this view to each of steps described in the following sections respectively.

4.1.3. Detailing method’s execution

You can click on the arrow icon to detail method’s execution: You can repeat that operation as many times you want inside method’s execution. Clicking on method’s name (a hyperlink) has the same effect.

Figure 4.5. 

After you got on methods detail, you can have four views about the current graph:

  • Critical Path

Figure 4.6. 

  • Pie Chart

Figure 4.7. 

  • Instances Created:

    (There is an extra view that adds sub-methods events)

    Figure 4.8. 

    On this view you have information about how many objects were created and released on that slice of the graph. You have a complete information about memory-leaks.

  • Memory operations (ProcessView->Memory)

    On Process-View/Memory you can look at GC operations:

    Figure 4.9. 

    You can detail a GC operation:

    Byou

    Figure 4.10. 

    You can look for Leaks, have information about Creations or Threads on this view.

  • Consolidated View

    Figure 4.11. 

    On consolidated view, after you set filter parameters, you can generate a XML, XLS or zipped XML about the model:

Figure 4.12. 

4.1.4. Tracing

You can click on the "Tracing" field to detail the flow of "transaction" which is a sequence of methods executed in each method, and this following processing screen will be viewed.

Figure 4.13. 

Follow the link, and you will see the following view.

Figure 4.14. 

The upper part (list view) of the view lists all transactions of the clicked method. The lower part (search view) provides an interface where you can set conditions for searching specific transactions. The "search view" lists the following items.

  • start method name

    Name of the clicked method.

  • transaction type

    You can specify whether target transactions are complete or not. "Transaction type" has 3 choices.

    • complete

      This choice picks up transactions which have completed from start to finish.

    • incomplete

      This choice picks up transactions which have aborted halfway.

    • both

      This choice picks up both "complete" and "incomplete" transactions. (default)

  • search conditions

    For setting conditions, you have 6 options. If you select more than 1 option, target transactions will have to meet conditions of all the selected options. "Search conditions" has 6 choices.

    • Period where target transactions have started

      Specify start time and finish time of the period as follows.

      MM/dd/yyyy hh:mm:ss:SSS

    • Period where target transactions have finished

      Specify start time and finish time of the period as follows.

      MM/dd/yyyy hh:mm:ss:SSS

    • Any method(s) executed in target transactions

      Specify any string which is a part of the method's name. You can specify more than one string by separating them by space(" "). If you do so, the tracer picks up transactions executing all of them (AND condition), or transactions executing at least one of them (OR condition).

    • Any method(s) not executed in target transactions

      Specify any string which is a part of the method's name. You can specify more than one string by separating them by space(" "). If you do so, the tracer picks up transactions not executing any of them (NOR condition), or transactions not executing all of them (NAND condition).

    • Duration of target transactions

      Specify duration by millisecond (SSS), and the tracer picks up transactions elapsing more than the duration.

    • Duration of any method executed in target transactions

      Specify duration by millisecond (SSS), and the tracer picks up transactions including any method(s) elapsing more than the duration.

Set conditions as you like and submit, and the tracer picks up transactions meeting the conditions. The "list view" will be refreshed to list them. The table has the following fields.

  • Start Time

    Start time of the transaction.

  • End Time

    Finish Time of the transaction.

  • Total Time

    Duration of the transaction by the millisecond.

  • #Methods

    The number of methods executed in the transaction.

  • CPU

    CPU usage time of the transaction in nanosecond.

  • #Locks

    The number of locks in the transaction if any. If not, this field is empty.

  • Lock Time

    Duration of the locks in the transaction in millisecond. If there is are no locks, this field is empty.

You can click on the arrow icon to detail each transaction. You will see "transaction details view".

Figure 4.15. 

The table has the following fields.

  • Methods Order

    Methods executed in the transaction are listed in sequence. Indented methods mean nests. If you have specified any executed method(s) on "search view" mentioned above, it/they is/are drawn in different color from other methods.

  • Start Time

    Start time of each method.

  • End Time

    Finish time of each method. If you have chose "both" or "incomplete" of "transaction type" item on "search view", this field says "NOT EXIT" for any incomplete methods.

  • Total Time

    Duration of each method by the millisecond. If you have chose "both" or "incomplete" of "transaction type" item on "search view", this field says "UNKNOWN" for any incomplete methods.

  • CPU Time

    CPU usage time of each method.

  • #Locks

    The number of locks in each method if any. If not, this field is empty.

  • Lock Time

    Duration of the locks in each method in millisecond. If there is are no locks, this field is empty.

4.2. Memory Profiler