# Data Analysis

This view is useful when you want to analyze your collected method invocations. There are only two fields that need to be fill out. You must specify both the date range and the application. Then, the analysis will be performed for those method invocations which ended within the specified time range and came from the specified application.&#x20;

<figure><img src="https://4184112761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1l0Vb5GSU1RRV2waQeIU%2Fuploads%2FVwBl4q4PpPOh3AiENuaX%2Fanalysis_form.png?alt=media&#x26;token=e762a774-a21c-46b7-9d92-0870b7cfcd7d" alt=""><figcaption><p>Data Analysis Form</p></figcaption></figure>

## Duration Distribution

The first part of the analysis presents the methods duration distribution with respect to percentiles. The chart below presents a sample analysis result.&#x20;

### Plot

The <mark style="color:blue;">`Plot`</mark> tab presents a methods overall duration distribution. The analysis is performed for all methods invocations within the time range specified in the data analysis form.

<figure><img src="https://4184112761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1l0Vb5GSU1RRV2waQeIU%2Fuploads%2F9mgVRpDYlFSCSNTt5EgN%2Fpercentile.png?alt=media&#x26;token=8525f193-af3e-4c6e-9a2e-d6e1e9e619cd" alt=""><figcaption><p>Sample Duration Distribution</p></figcaption></figure>

The chart is divided into percentile sections. The percentile values are located on the `x`-axis. The left `y`-axis presents the method duration value, while the right one the number of method invocations. Each percentile section has a <mark style="color:green;">bar</mark> which represents the number of method invocations within the percentile interval. The blue <mark style="color:blue;">curve</mark> represents the methods duration.&#x20;

To properly read the chart, you need to focus on the percentile axis (`x`-axis). Note, the `x`-axis is not scaled linearly. Suppose now, we have the analysis results as the one above in the picture. We interpret the chart at `96.881th` percentile as follows:

* `96.881` percent of all invocations execute below `233` ms.&#x20;
* there are about `8300` invocations whose duration is between `170` and `233` ms.

Note, `170` ms is taken from the previous percentile, which is `93.757` in this case.&#x20;

It is easy to see, in the sample case, that the number of methods invocations decreases rapidly as percentile grows. There are only a few outliers, whose duration is above a minute. It is up to a user whether a further analysis is required or not. If a more detailed investigation is needed a user can proceed with the analysis by pressing the <mark style="color:blue;">`Temporal analysis`</mark> button.

### Summary

The Summary tab allows a user to compare the analysis results to the data from previous periods. This time a few specific percentiles are selected to compare them with the ones from previous periods.

<figure><img src="https://4184112761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1l0Vb5GSU1RRV2waQeIU%2Fuploads%2FyDHzF2sCUdsTBDLc9O4Z%2Fsummary.png?alt=media&#x26;token=d98fc7c9-b522-4251-815d-806ba53f6f35" alt=""><figcaption><p>Sample Analysis Summary</p></figcaption></figure>

There are three special columns, in both <mark style="color:blue;">`Duration`</mark> and <mark style="color:blue;">`Count`</mark> columns. These columns are denoted as <mark style="color:blue;">`1d`</mark>, <mark style="color:blue;">`3d`</mark> and <mark style="color:blue;">`1w`</mark> which mean 1 day, 3 days and 1 week respectively. They contain the corresponding changes of percentile values one day ago, three days ago and one week ago respectively with respect to the current values. In order to retrieve the values you need to click the refresh button in the selected column header. The values are then compared with the current ones within the corresponding time range but from previous days.&#x20;

For example, if you want to compare the current results with the ones from 3 days ago, just click the refresh button in the <mark style="color:blue;">`3d`</mark> column header. If the current duration value is less than three days ago, the value change is displayed in <mark style="color:green;">green</mark>, otherwise it is displayed in <mark style="color:red;">red</mark>. In the picture above, one can easily see that the current duration value for the 75th percentile is 63 ms. This result is 17 ms less than three days ago. Moreover, currently we have 200,639 invocations, while three days ago there were 40,038 less invocations.

The percentile value in the fourth row is customizable. It can be changed by selecting one of the available values in the <mark style="color:blue;">`Custom percentile`</mark> buttons group.

## Temporal Analysis

This part of the analysis presents how the percentile values change in time for the specified period. There are two tabs with the results. The first one <mark style="color:blue;">`Values`</mark> presents how the percentile values change in time. Just like in the duration distribution there are bars and curves. The bars represent the amounts of invocations in time periods. The curves present the percentile values of duration. There are four percentiles curves that can be displayed simultaneously, i.e. 25th, 50th, 75th and 9\*th. The last one is customizable and can be changed in the <mark style="color:blue;">`Highest percentile`</mark> option.

<figure><img src="https://4184112761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1l0Vb5GSU1RRV2waQeIU%2Fuploads%2FP6QQ1H8mV75184dNcsAe%2Ftemporal.png?alt=media&#x26;token=69fecd06-6c61-4155-a56b-d33cc086e048" alt=""><figcaption><p>Sample Temporal Analysis</p></figcaption></figure>

The second tab <mark style="color:blue;">`Sections`</mark> presents how many invocations are in each percentile.&#x20;

If you want to know what methods are reported in a selected interval, just move your mouse over one of the percentile curves and click the curve.&#x20;

<figure><img src="https://4184112761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1l0Vb5GSU1RRV2waQeIU%2Fuploads%2Fw2xEdBXumlpWhogCzqQ8%2Ftop_contributors.png?alt=media&#x26;token=b080b7bf-f6ed-4c6b-9c13-a37861255808" alt=""><figcaption><p>Sample top contributors</p></figcaption></figure>

## 2D Analysis

The 2D analysis is represented in a form of a heatmap chart. The chart presents a distribution of one of the selected <mark style="color:blue;">`Data type`</mark> with respect to both duration (vertical axis) and time (horizontal axis). The chart is divided into cells, which aggregate data for particular ranges of duration and time. For <mark style="color:blue;">`Count`</mark> data type, each cell represents a number of invocations within the cell range. For <mark style="color:blue;">`Off-Cpu`</mark> data type, each cell represents a percentage of method invocations, whose off-cpu time is the largest. For <mark style="color:blue;">`Exceptions`</mark> data type, each cell represents a number of methods that throw exceptions. &#x20;

<figure><img src="https://4184112761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1l0Vb5GSU1RRV2waQeIU%2Fuploads%2FiD4IfGSbIs1NuIsdUGTz%2F2d.png?alt=media&#x26;token=6f6d5419-5b84-466c-95cf-f8cc6ceed956" alt=""><figcaption><p>Sample 2D Analysis</p></figcaption></figure>

You can change the number of cells the chart is divided into, by selecting one of the <mark style="color:blue;">`Resolution`</mark> value. You can also change the range of methods that are analyzed by selecting one of the <mark style="color:blue;">`Precentile`</mark> values. For example, if the <mark style="color:blue;">`Percentile`</mark> value is 50, it means that the chart shows only those method invocations whose duration value is below the value at 50th percentile.&#x20;

## Exceptions

This view presents top ten [root exceptions](https://docs.flopsar.com/5.1/glossary#execution-stack) thrown by methods.

<figure><img src="https://4184112761-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1l0Vb5GSU1RRV2waQeIU%2Fuploads%2F9GVkUvMMJsPngpuYlmpe%2Fexceptions.png?alt=media&#x26;token=263aed3e-d1b4-43c9-82f0-79f705d52150" alt=""><figcaption></figcaption></figure>
