Java Profiling and Stack Trace Dashboards


Based on the data from the profiler, a Grafana dashboard with charts and tables was developed for in-depth analysis of the results. This dashboard allows us to analyze the results for each service individually. To do this, you need to configure a service filter. The first filter allows us to select a service. You can also select one of the API request and the filter will automatically select the services that processed it.

The first table and chart on the dashboard are not based on the data from the profiler, but on the data received with the x-okapi-trace response headers. This header contains information about
which service processed the request and how long it took. In the table, we can see how many times a service was triggered during the test.

On the graph we can see the response time for each service during the test. We can also filter this graph by selecting a specific service on the right side.

The following panel shows a list of the slowest methods.

Each method is a link, if you click on it, a new tab will open, the Stack Trace dashboard will be launched with a panel in which a detailed stacktrace for this method is displayed.

This stacktrace is a set of all stacktraces that were performed during a test with this method. You can expand them by clicking on the arrow and go all the way from the selected method to the
beginning of the stacktrace. The red color indicates the path that stacktrace most often follows. Also, on each part of stacktrace there is a percentage ratio of how often this method was executed. It may
be useful for analysis of non-optimal program execution. 


The last part of the dashboard is Java metrics such as CPU usage, heap memory, etc.