Apdex (Application Performance Index) is an open standard that defines a standardized method to report, benchmark, and track application performance. Apdex scores help you benchmark user experience trends and identify poor user experience with your app. Ideally you want the Apdex score of your application to be closest to 1 as possible.
The index is based on five bands of application responsiveness. In our Raygun Apdex graph, we have color coded these bands to make it easier to see what’s actually happening:
Excellent: 0.94 - 1 (Dark green)
The user is fully productive and your users are not impeded by your application response time.
Good: 0.85 - 0.93 (Light green)
The user is generally productive and your users are not impeded by your application response time.
Fair: 0.70 - 0.84 (Yellow)
The user notices some performance lagging, but continues the process.
Poor: 0.50 - 0.69 (Orange)
The user notices moderate amount of performance lagging, but continues the process.
Unacceptable: 0.0 - 0.49 (Red)
The performance is unacceptable and the user may abandon the process.
We have also interpolated any missing data points on the graph to make it easier to assess when data is missing. These are indicated by a grey dotted line (you can see an example of this in the screenshot).
This refers to everything you see after selecting ‘APM’ from your Raygun application sidebar. The date time range picker, tabs and everything displayed within each tab all make up the Raygun APM overview page.
A date and time range picker can be found in the top right hand corner of the Raygun APM Overview page. All the data within tables, charts and so on are filtered by the date and time range you select. By default, 7 days (7D) is used as the date range. You can either use the quick filters of ‘1D’, ‘30D’ or select a custom date time range.
Average load time distributions
The Average load times distribution table (powered by Raygun Real User Monitoring), displays the average load time of distribution across the date range specified.
The fastest 10%, slowest 10% and average 80% are highlighted. This is a useful way to see the differences between the fastest and slowest load times, and to check whether any actions should be taken to reduce the load differences.
Click the cog icon on the upper right corner to enable optional settings:
Logarithmic Scale: If the data has a large range of average load times with outliers, viewing the data with this turned on might make the graph easier to read.
Hide 10% slowest: If the slowest 10% of average load times is significantly higher than the average and fastest load times, turning this option on might make it easier to view the average and fastest data, by removing the outliers.
The call tree and the flame chart on a trace details page, are both used to analyze your app’s code, and they both use the same data: a sample of the provider’s stack, taken periodically during the recording. Call tree organizes this data to show you where your program is spending most time in aggregate across the recording.
Errors are first chance exceptions. An error is an exception that Raygun APM had recorded, but it was not sent to Raygun Crash Reporting. An exception is an error which has also been sent to Raygun Crash Reporting, thus allowing you to see a detailed breakdown of the error as well.
An exception refers to the detection of an unhandled exception as a result of your code. Raygun APM will track when they occur and correlate them to the associate crash data in Raygun Crash Reporting for complete visibility.
Lists the external API calls that your application is making. This is helpful for identifying if you’re relying on third party who has poor performance that could be impacting your customer experience.
The flame chart on a trace details page, shows you the state of the stack for your code at every millisecond during the performance profile. This gives you a way to know exactly which function was executing at any point during the recording, how long it ran for, and where it was called from.
By enabling “hot path”, Raygun APM can show you the “hot path” within your code, so that you can clearly identify the series of calls which made up the majority of the total time taken:
Issues are generated and grouped based on the common APM rule in which they violate. Instead of showing you a graph of every time a rule has been violated, Raygun APM intelligently groups all of the traces related to a particular rule violation for you, so you have the aggregated data for quick diagnosis, as well as the detailed individual trace data, if you wish to dig deeper into a particular trace.
Issues are unique to Raygun APM and should be treated as a page where all of your app’s performance issues are identified, grouped and prioritized, so that all you need to do, is just fix the issues!
You can manually create issues from a method or a trace detail page, these are called manual issues. Manual issues give you the flexibility to create custom rules from a method or trace, so you can be alerted, if the violation of this rule occurs in the future.
Lists the methods in your code base and how much time they are taking. This is useful for identifying hotspots in your code that may be impacting customer load times or costing additional hosting resources.
Lists the queries to data stores that you use and the time they take. This can be useful for identifying slow queries, chatty queries and areas you can improve performance.
A request refers to an HTTP request made to a web application or API which is being tracked by Raygun APM.
Requests per minute (RPM)
RPM, means the number of http “Requests per minute” being handled by your application. This gives you an idea of the volume of requests moving through the app and therefore context to understand how well various pieces or components of your app are handling that load.
Rules is unique to Raygun APM. There are two types of rules:
Default rules: These are the performance rules that have been set up by Raygun and they are based on known/common performance issues that often negatively affect the user experience of an app when violated. Default rules can be edited, muted but cannot be deleted.
Custom rules: These are the performance rules that you have created yourself, based on the performance metrics that you want to monitor. You can build compound conditions to cut out the noise, so that you can focus on the performance issues that you actually care about.
Rules are benchmarks, used to monitor the the performance of your application. When a rule is violated, an active issue will be generated automatically on the Issues page and you will be notified.
Server percentage of total load time
If you also have Raygun Real User Monitoring enabled, the server percentage load time stat will be fed automatically into Raygun APM, like so:
This stat is useful when you are trying to determine whether a slow request was caused predominantly by your server or your front-end/mobile layer.
You can view the full load time distribution information for this request by clicking on the blue link highlighted above. This will take you to the page performance details of this request in Real User Monitoring, where you can view more information.
A trace is a profiling trace of a given request. This page lists the traces that have been captured, and allows you to drill into them to see a flame chart of where the time went in the request. Traces can also be combined with your source control system to show the code inside the methods to assist engineers in identifying why methods may be slow.
Total duration is the accumulated total of the amount of time it took to perform a query, page load, method call or api call.