Function Regression

Function Regression issues capture a generic class of problems where the duration of a function has increased over time. This can lead to degraded performance in your application. Sentry attempts to monitor some of your most common functions out of the box and report any possible regressions under the Function Regression issue type.

Sentry can only detect Function Regression issues on projects that have Profiling enabled. Sentry will periodically check the 95th percentile function duration of the most common application functions in your project. When a significant increase in the p95 value for function duration is detected and has been sustained for some time, a regression issue is created.

The chart shows a window of up to 14 days before and after the regression was identified. Here, you can see the p95 function duration as well as the function throughput.

A common cause of regressions is an increase in the throughput of a function. For example, when throughput increases in a code path that contains a mutex, this can cause lock contention.

To find additional information about your regressed function, go to the "Function Evidence" section which shows the following:

  • Function Name: The name of the function that has regressed.
  • Package Name: The package of the function that has regressed.
  • File Name: The file name of the function that has regressed.
  • Regression Date: The date and time at which the regression started.

The "Transactions Impacted" section shows a list of transactions where this regression shows up. Next to each transaction, you can find the following:

  • The p95 function duration of the regressed function before the regression.
  • The p95 function duration of the regressed function after the regression.
  • The percentage change in p95 function duration before and after the regression.

The before and after values also link to example profiles you can examine to identify the root cause of the regression.

The "Example Profiles" section shows a list of example profiles where you can find the the regressed function from before and after the regression.

Help improve this content
Our documentation is open source and available on GitHub. Your contributions are welcome, whether fixing a typo (drat!) or suggesting an update ("yeah, this would be better").