Analyze the performance of call stacks using call graphs

Learn what call graphs are and how they help you analyze and troubleshoot the performance of call stacks.

Analyze and troubleshoot the performance of call stacks using call graphs. Call graphs help you locate, diagnose, and debug performance issues with your service.

For instructions on how to access a call graph, see Access a call graph.

Prerequisite

To use call graphs, you must first コールグラフ プロファイリングへのデータの取得 .

Visualize method self-time with the summary bar

The summary bar above the call graph is a visual representation of the self-time of the methods in the call stack. Self-time is the total method duration minus the duration of child methods. You can use the summary bar to understand and compare the proportion of time your methods contribute to the call stack.

The top 5 methods by self-time are displayed as individual purple segments. The remaining methods are grouped in a single gray segment. The width of the segments in the summary bar is proportionate to the percentage of time the methods take up in the call stack.

Select a segment in the summary bar or the text in the legend below the summary bar to:

  • Display a panel with the full method name, percentage of time the method takes up in the call stack, and the duration of the method.

  • Highlight the corresponding method(s) in the call graph.

  • Highlight the corresponding rows in the call graph table.

Explore the methods in the call stack

The call graph view displays a hierarchical visualization of the methods in a call stack. Select a method to display a menu with options to copy the name of the method or expand/collapse the list of the child methods.

Monitor the resource usage of methods in the call stack

Use the Time (ms) column to view the duration of each method in the call stack.

Use the Percent % column to understand which methods in the call stack are the most time intensive. This value describes the percentage of time in the call stack used by each method. For example, if the total duration of the call stack is 100 ms and the duration of a method is 50 ms, the percentage shown for the method would be 50%.

The Exit Calls / Threads column lists the exit call(s) for each method. Select the exit call link to navigate to the next call graph.

Download the JSON object for the call graph

Select Download call graph to download a JSON object that contains the data on the call graph view.

Exclude packages from call graphs

To keep call graphs readable and focused on application code, certain frameworks and library packages (such as core Java, common third-party libraries, and app server classes) are excluded by default.

You can use the Settings > APM call graphs page to view the list of packages excluded by default, add custom packages to exclude, and modify or remove custom excluded packages. A custom excluded package can apply to all applications, or only to specific applications.

Prerequisites

To view or modify the APM call graphs page, you must have the admin role or a custom role that corresponds to your desired action.

If you're an admin and want to create a custom role for viewing and modifying call graph exclusions, see:

Add one or more of the following capabilities to the custom role:

  • CREATE_APM_CALL_GRAPH_CONFIG

  • READ_APM_CALL_GRAPH_CONFIG

  • UPDATE_APM_CALL_GRAPH_CONFIG

Add a custom excluded package

To add a custom excluded package:

  1. From the Splunk Observability Cloud main menu, select Settings > APM call graphs.

  2. Select Add excluded package.

  3. Enter a Package prefix value. Package or file names that match this value can be excluded from call graphs. Values are case-sensitive, and * matches any text. For example:

    1. Use java.* to match names beginning with java., such as java.lang.Thread, but not javax.foo.

    2. Use *node_modules* to match names containing node_modules, wherever it appears in the name.

  4. Select a Language.

  5. Select a Scope. Global applies to all applications, while Applications lets you specify one or more applications.

  6. Select Add.

Hide or show excluded packages

When you access a call graph, packages excluded by default aren't displayed in the call graph. To hide custom excluded packages, select Hide them. To show all excluded packages, select Show them.

When a method is excluded, it is removed from the call graph and its child calls move up one level.