A method call detail report provides a detailed breakdown of specific method invocations within a software application. The method call details display a table of all the methods that are called in the business transaction. In method call details, you can access method and thread-level execution details for the transaction in the form of a Method Call Tree.

## Method Calling Tree

A method calling tree is a graphical representation that depicts the flow of method or function calls within a software application. Method calling tree helps to understand the relationship between different methods and how they interact during program execution.

Note:

- Only instrumented methods are shown in the method call tree. There may be other non-instrumented methods call in between methods having a parent-child relationship in the method call tree.
- You can also expand the method call tree to see the different child classes in that particular method. To perform this operation, you have to click on the Click Expand Call Tree
- You can see the Tier, Server, Instance, Start Time, Response Time, BT information, URL, and keyword information at the top of the Method Call Details

In the method calling tree, you can see the following details in a tabular format:

- Methods: A method call is the act of invoking or running a certain method within a program, causing the code within that method to do the task for which it was designed. This will show the name of the method that is being used in the method calling tree, along with the parent and child class name. appears in case a method is repeated more than 1000 times and shows details of only 1000(default) methods in that row. For analyzing more repeated methods user can configure the keyword nd.ddr.maxRepeatedDataForMCT in config.ini at path

  `<NS_WDIR>/webapps/sys`

- Flag: This will show the detailed information of the applied overlay.
- API: API stands for Application Programming Interface. It is a set of defined rules, protocols, and tools that allow different software applications to communicate and interact with each other.
- Elapsed Time (ms): This will show the average self-time taken for a single invocation of the method.
- Wall Time (ms): This is the total time a method takes to execute from start till finish.
- Percentage: This shows the percentage (%) of total time taken by the method.
- CPU Time (ms): This will show the average CPU time taken for invoking all the methods.
- Thread Query Time(ms): This refers to the time taken by a thread (a sequence of instructions) in a multi-threaded application to execute a specific query or task. It measures the performance and efficiency of the thread in completing the designated operation.
- Self-Time (ms): This is the time taken for the invocation of a method excluding the time taken by the inner methods.
- Wait Time (ms): This shows the total time spent by the method in the ready state waiting for the CPU resources.
- Sync Time (ms): This shows any thread that is stuck before the synchronized method due to the lock not being available.
- I/O Time (ms): This shows the thread pause time due to I/O operations.
- Suspension Time (ms): This shows the thread pause time due to Java GC.
- Network Delay in Req (ms): This will show the total delay time taken to send the request from the source to the destination.
- Network Delay in Resp (ms): This will show the total delay time taken to send the response from the source to the destination.
- Thread id: This is the unique identifier for a running thread.
- Thread: This shows the name of the thread which is being run. A thread allows a program to operate more efficiently by doing multiple things at the same time.
- Arguments: This shows the set of values which are being passed in a method.
- Instance Type: This will show the type of instance which is being run on the server.
- Instance: This will show the application which is being run on the server.
- Tier: This will show the ND tier to which the instance belongs.
- Server: Shows the name of the server on which the instance is running.
- Class: Show the class to which the called method belongs. A class is a group of objects which are having similar types of interfaces and sub-packages.
- Package: The package to which the called methods belong. A package is a group of similar types of classes, interfaces, and sub-packages.
- PageName: This will show the name of the page in which the method call details are shown.
- Async_call: This refers to an asynchronous function call or method. Asynchronous programming allows a program to continue executing other tasks while waiting for certain operations to complete, without blocking the main execution thread. When an "async_call" is made, the program initiates a non-blocking request or task and continues processing other tasks without waiting for the result of the "async_call" Instead, it receives the result later, often through callbacks or promises, improving responsiveness and concurrency in the application.
- N.: This will show the serial number of the table.

## Global Action Item

There are the following operations that you can perform in the method call detail window:

- Download: You can download the method call details in the following three formats: Word, Excel, Pdf. To download in Word format, you have to click on the Download Word Report icon. To download in Excel format, you have to click on the Download Excel Report icon. To download in PDF format, you have to click on the Download PDF Report icon.
- Show Callouts Collapsed/Expanded Form : On clicking this icon, you can see the expanded/collapsed form for the callouts details for the table tree.
- Dynamic Logging : On clicking this icon, you can start the dynamic diagnostics.
- Click to Start Dynamic Diagnostics : On clicking this icon, you can start the auto instrumentation for the method calls.
- Filters : Filters On clicking this icon, you can apply a filter in the method call details window. Once you click on the filter button, the Method Call Tree Filter Setting window will appear where you have to provide the Positive and Negative filter details along with Advanced Settings which is optional. Once you have filled all the fields, you have to click on the Apply Apply button to apply the filters. If you don’t want to apply the filter, you have to click on the Cancel Cancel You can also reset the filters window by click on the Reset Reset button.This applied filter we can see above the screen i.e Method Calling Tree with some details.
- Click to get flowpath instance : On clicking this icon, you can see the details for the flowpath instance.
- Toggle Column : On clicking this icon, you can show/hide a particular column from the Method Calling Tree
- Show Method Color Meaning : On clicking this icon, you can view the corresponding meanings for the respective colors used in the Method calling tree. There are the following color codes and their meaning for respective methods:

1. Red : This will show the HighlightWallTime.
2. Yellow : This will show the Elapsed Threshold.
3. Magenta : This will show the Method Throwing Exception.
4. Pink : This will show the Method Catching Exception.
5. Green : This shows JMS/JDBC
6. Silver : This shows Uninstrumented
7. Blue : This shows HTTP/Thread

Note:

1. You can also view the filter settings information for the Method Calling Detail Tree as Max Depth, Min wall time, Threshold, Elapsed Threshold, Total Thread Queue Time and Total Self Time.
2. Do not show methods of Negative Filters will only filter methods present at leaf level and leaving level 1 methods unfiltered to uphold the hierarchical structure.