Let us know how you feel about this.
When an application is selected in Xamarin Insights, the default view will provide information on all exceptions and crashes, alongside statistics detailing when the latest event happened, the total number of issues (both opened and closed), and the total percentage of users affected at any time.
Below the Issues Overview is a summary section containing the throwback exception data for our application:
The bar at the top of the summary section is used to search for specific issues, and we can also apply the following filters to focus on particular incidents:
- All Versions – Allows us to filter by the version of the application.
- All Time – Allows us to filter on when the issue was reported as All Time, Today, Last Seven Days or Last Thirty Days.
- All Issues – Allows us to filter on the type of the issue as All Issues, Warnings or Crashes.
- All Statuses – Allows us to filter on the resolved state of the issue as Unresolved, Closed or Ignored.
The Summary Section gives us the the following information about the state of our application:
- Issue Type – Crash: Red circle; Warning: Yellow diamond.
- Exception Name – The name of the exception that was reported. This property can be edited by clicking on the name on the Issue Details page.
- Exception Message – A description of the exception that was reported.
- Last Occurred – When the last exception of this type was thrown.
- Count – The number of times the error has occurred.
- Users Affected – The number of users in total that have experienced the crash.
- Status – Indicates whether or not the issue has been resolved.
Clicking anywhere on a given entry in the table will bring you to the Issue Details page.
When we drill into the details of an exception, we can view precise details regarding the specific issue, as well as similar occurrences of it making it straightforward to see how much this issue is affecting users:
The Details view gives us five key pieces of information:
- The exception with the total number of crashes.
- The exception stack trace.
- The device and user data.
- Events leading up to the crash.
- The status of the bug.
This information is useful as it helps us to prioritize bug fixes for our application. The greater the number of occurrences, the greater the issue for our app. Fixing these greater importance issues will have the greater effect on the app and how it is perceived by the end user.
Exception Stack Trace
The section below the graph shows any throwback generated from the exception. If there is any form of native crash data, it will appear here.
For Xamarin.iOS applications, if the dSYM file has been uploaded, additional feedback from the native stack will be returned in a "human readable” form:
Xamarin.Android stack traces are typically human readable without any further handling required by us, providing the relevant permissions have been granted on the device itself.
Device & User Data
The device & user data shown provides a very basic level of information regarding the user and the device, including the operating system, the network it was attached to and if the device has been jailbroken:
Events Leading to the Crash
The events leading to the crash are very significant when attempting to replicate any form of application crash. Again, the events are recorded by calling the
Insights.TrackTime methods at key points from within our application. The Dashboard provides an expandable list of events that we can use to backtrack or replicate an issue:
The issues are presented in reverse order working backwards from the crash to the start of the session and, based on the information that we have recorded, give us the ability to recreate the crash by repeating a user's actions within the application.
Changing the Status of the Bug
Once we have fixed a given issue, we can change the status of the issue and remove it from the main summary of issues. The Status of the issue is displayed at the end of the Impact bar at the top of the Issue Graph.
To change the status of this exception, click the Status dropdown and select a Close issue:
When the status is changed, any user that experienced this issue is notified of the status change.
Using the Crash Log as a Simple Bug Tracker
One of the powerful aspects of the Xamarin Insights Dashboard is the ability to use it as a simple form of bug tracker for our application. For example, from the Issue Summary view we can see the most important issues, how often a crash is occurring, how many users are affected by the crash, and whether a bug is Open or Closed.
While not a replacement for full featured bug tracking software, by applying the correct form of filtering (for example, the most recent version, crashes over the last week that are unresolved), it is possible to prioritize development time to fix the most pressing bugs first.