- 1 Getting Started with CrashSight
- 2 OverView
- 3 Version Trends
- 4 Crash Analysis, ANR Analysis, Error Analysis
- 5 OOM Analysis
- 6 Advanced Search
- 7 Configuration
- 8 Setting
CrashSight Web Page Usage Guidelines
1 Getting Started with CrashSight
1.1 Create an account
Visit the CrashSight official website, click the "Login" option in the upper right corner to jump to the login page. It is recommended to register by email. We also support third-party login methods such as QQ, Facebook, and Google. Please choose the best way for you to register.
After registration and login are completed, click "Billing Account" in the drop-down menu of the account name to enter the billing account management interface.
Each account will be bound to a personal billing account by default. When you enter the account management interface for the first time, you can name your billing account. CrashSight is billed by MAU (Monthly Active User), which is the number of events per month after deduplication by device (refer to Device ID for how CrashSight identifies devices). Click the "Add Credits" button to add credits to your account.
The "Billing Info" tab shows the usage of your account balance. You can view usage details by month or by project, and you can also view the billing history.
Click the "Projects" tab to view the projects associated with your account, which will use your account balance.
In the "Members" tab, you can click "Invite New Members" to add members to your personal billing account by sharing a link. Ordinary members can only view the information in "Billing Info". After setting a member as an administrator, he can use your personal billing account to create projects.
1.2 Create a project
Visit the CrashSight website and click on the "Login" option in the upper right corner to log in or create your account. Once you have logged in, you will be automatically redirected to the "My Products" page. If you are already logged in, click on your username to be redirected to the "My Products" page. Click on the "Apply for New App" button and follow the prompts to fill in your program information to create a program. On the "My Products" page, you can also access the demo projects we have prepared.
1.3 SDK Integration
From the "My Products" page, click into your project and select "Tutorial" in the tab on the left.
The "Tutorial" already automatically recognizes the platform you are integrating. Select your engine and follow the three steps shown on the page to complete a simple integration.
We strongly recommend that you start your access to the CrashSight SDK with the "Tutorial", or if you need more detailed instructions or references, you can visit the CrashSight Product Introduction.
2 OverView
In "Overview" you can view the statistics of the current project. You can first check Stats to confirm the issue occurrence situation in the project, and then analyze the timeline (Trend Graph) and the issues affecting most amount of devices during the period (Hourly Top Issues, Daily Top Issues), as well as application version, system version, device model (Ranking List) to analyze the problems faced by your project in multiple dimensions.
2.1 Stats
The stats section is located at the top of the overview, which intuitively reflects the crash, ANR (Android only), and error reporting data of the project on that day. The tabs on the upper right can adjust the displayed data. There are three types of data to choose from:
- Today's device crash rate. (Today's device crash rate = the number of devices with crash today / the total number of devices started today)
- Today's crash count. (This refers to the number of times this type of crash occurred today)
- Today's crash device count. (This refers to the number of devices that experienced this type of crash today) The stats label also functions as a master switch for the exception overview. By switching the selected exception type, you can control Trend Graph, Hourly Top Issues, Ranking List, Daily Top Issues display content.
2.2 Trend Graph
The trend graph displays the occurrence of issues in chronological order. You can use the display tag of Stats to switch the issue types displayed in the trend graph. You can select whether it is a simulator (default simulator + real machine), version (default full version), time (default today), and filter the trend graph data. You can check "Enable compare" to compare data of a specific version and a specific time period. The comparison function supports hourly compare and daily compare modes.
When browsing data for a single day (for example, selecting "Today" for the time), or turning on hour-level comparison, you can select the statistical dimension of "By Hour" or "Grand Total". Select "By Hour" and each point in the graph represents issue data within an hour.
Select "Grand Total". Each point in the graph represents all issue data from 0 o'clock on the day to that time point. On the right side of the trend graph, you can select the data to be displayed. The calculation method of these data is as follows:
name | calculation method |
---|---|
Device Crash Rate | Crashed Devices/Active Devices |
Session Crash Rate | Crash Count/App Launched Count |
Crash Count | The number of times the issue occurred |
Crashed Devices | The number of devices on which the issue occurred |
App Launched Count | The number of starts reported |
Active Devices | The number of devices triggering access |
2.3 Hourly Top Issues
The issues affecting most amount of devices within an hour are displayed here. You can use the display tag of Stats to switch the displayed issue types. The TOP quantity, time range and version can be switched in the tab.
2.4 Ranking List
The ranking list shows the Top 5 in terms of application version, system version and device model over a period of time. You can use the display tag of Stats to switch the displayed issue types. The ranking list supports switching time periods and filtering by version number.
Optional ranking dimensions include crashed devices, device crash rate, and active devices. Click the button next to the title to download the xlsx file corresponding to the ranking list, which contains Top 100 data.
2.5 Daily Top Issues
The issues affecting most amount of devices in a day are displayed here. You can use the display tag of Stats to switch the displayed issue types. The TOP quantity, time range and version can be switched in the tab. In the column on the far right, you can change the status of the issue. Enable the function of add issue filters conditions to filter issues by issue tag and/or issue status. Issues that match the system exit keywords can be filtered.
The "Download" button on the right can download the TOP issue data in xlsx format.
3 Version Trends
On the version trends page, you can select a metric of an exception type for timeline analysis. There are two modes for version trends. In the "Top N access device" mode, you will automatically be able to query the Top N issues with the highest number of exceptions. You can set the time period and Top N value. In the "custom" mode, you can configure the versions you want to view and configure the comparison start time for each version. The detailed values are listed in the table below. You can also click the "Download" button to save the table data locally in xlsx format.
4 Crash Analysis, ANR Analysis, Error Analysis
The usage of Crash Analysis, ANR Analysis, Error Analysis are relatively similar. Their usage will be introduced in the 4.1 Issue List and 4.2 Issue Detail sections of this chapter. Sections 4.3 Crash Analysis and 4.4 ANR Analysis will introduce the unique functions of crash analysis and ANR analysis.
4.1 Issue List
Select the "Crash Analysis"/"ANR Analysis"/"Error Analysis" tab to enter the corresponding issue list. The issue list lists all issues of this type. You can provide the input box at the top of the page to configure filtering. Available filtering items include version, last report time, issue status, Bug Form linked?, exception category, issue assignee, and starting version, issue first report time, and issue ID or error name. If these filter conditions do not meet your needs, you can click the "Advanced Search" link below to jump to the Advanced Search page to perform more complex filters.
In addition, you can also check "Enable Compare Search" to delineate two filtering ranges and view their complements or intersections.
The list below shows all issues that passed the filter. CrashSight automatically clusters events, with each row in the list representing an issue that groups events sharing the same cause. To quickly view the details of an issue, hover your mouse over it and click "Quick Preview".
Click "Issue Detail" to jump to Issue Detail.
Click "Edit Status" on the right to set the issue assignee and issue status.
Click "Create Bug Form" to quickly create a bug form on TAPD or Jira. This function needs to be configured in Integration Config before it can be used.
Click "Add Tag" below to add a tag to the issue. Tags are often used to mark certain characteristics of an issue, such as the known cause ("FD overflow"), the scope of the issue ("Experience Server", "Huawei Exclusive Crash"), the module in which the issue occurred ("libc", "Update module") or just a prompt ("Urgent!"). The added tags can be viewed and managed in Manage Tags.
A "Data Download" button is provided in the list title bar, which can convert all issues into xlsx tables and download them locally.
4.1.1 Issue Grouping
CrashSight groups events that occur for the same reason together, this process is called issue grouping. The steps that CrashSight takes to perform issue grouping are:
- Determine if each stack line of the event is an application stack line.
- From all the stack lines, pick several lines as key lines. The application stack lines are preferred as key lines, and sometimes the error messages are used as key lines.
- Group events that have the same key lines into one issue.
Depending on the type of event, the method of judging the application stack lines and the method of picking key lines are different. The following are the specific methods:
4.1.1.1 Android Java Crash, ANR
The methods for Android Java crash and ANR are the same.
Method of determining the application stack lines:
The stack line contains bundleID, or the stack starts with com. but not starts with android., java., dalvik., javax., junit., org.apache.http., org.json., org.w3c., org.xml., org.xmlpull, UnityEngine, com.unity3d.
Method of picking key lines: Pick three lines from application lines in stack order, and then system lines if there's not enough application lines. Pick error message as well.
4.1.1.2 Android native crash
Method of determining the application stack lines:
1.Stack contains bundleID 2.Path contains /data/data/, app-lib 3.So name does not contain libc.so, libdvm.so, libskia.so, libnvddk_2d_v2.so, libnvwsi.so, libskia.so, libjavacore.so, libc.so, libandroid_runtime.so, app_process and path does not contain /data/data/, app-lib. process and path does not contain /system/ and library name contains .so.
Method of picking key lines:
- No native application stack line, no java application stack line: 4 lines of native stack + 1 line of java stack
- No native application stack line, with java application stack line: 1 line native stack + 3 lines java application stack
- With native application stack lines: 2 lines of native application stacks
- With native application stack lines, first java line is a native method (including Native Method): 2 lines of native application stack + first java line of java stack
Note: For Android native crashes, address information in the stack lines is considered while grouping.
4.1.1.3 iOS crashes
Method of determining the application stack lines:
- If process name is not empty, a line in which module name is equal to process name is determined as a application stack line.
- If process name is empty, a line does not contain main, or a line which is not the last 3 lines, is determined to be a application stack line.
Method of picking key lines:
- If there are more than two lines of application lines, then take three lines of application lines, and error messages
- If there are less than three application lines and there is application line exsisting, then take the application line and the stack before and after the application line, up to a maximum of five lines, as well as the error message
- If there is no application line, take the first five lines of the stack, as well as the error message
Note: For iOS crashes, address information in stack lines is not considered while grouping.
4.1.1.4 Windows crashes
Method of determining the application stack lines:
- Module path does not contain "windows" or "system".
Method of picking key lines:
- If there are more than two lines of application lines, pick three lines of application lines, and error name
- If there are less than three lines of application lines, pick three lines from application lines in stack order, and then system lines if there's not enough application lines. Pick error name as well.
Note: For Windows crashes, address information in stack lines is not considered while grouping.
4.1.1.5 Errors
Issue grouping of errors does not perform application stack line determining. Android errors use the exception message, exception name, and the full stack as key lines; iOS errors use the exception name and the full stack as key lines; Windows errors use the exception message, exception name, and the full stack as key lines.
4.2 Issue Detail
Issue details show detailed information about an issue. The top of the page displays the issue ID, error name, first reported exception message, first reported error stack, number of occurrences, and number of affected devices for this issue. You can also change the issue status and quickly create bug form here.
4.2.1 Version Information
The second column shows the details of the issue classification. "Version Information" lists the situations in which this issue occurs in each version.
4.2.2 Report Trend
"Report Trend" displays the number of occurrences of the issue and the number of affected devices over time. You can select specific versions and time spans to further analyze reporting trends.
4.2.3 Hardware Information
"Hardware Information" displays the proportion of occurrences of this issue based on various model indicators. You can also provide the filter box above to search further.
4.2.4 User Behavior
"User Behavior" displays the proportion of occurrences of this issue based on various user behavior indicators. You can also provide the filter box above to search further.
4.2.5 Customized Data
"Customized Data" displays the proportion of occurrences of this issue based on custom keywords. In order to use this function, you must first configure custom field analysis and display function. You can also provide the filter box above to search further.
4.2.6 Report Details
The report details area displays the latest reported details by default. If you need to view more reported details, you can click "View More Records".
"Copy current report URL" can be used to share this report with project members. If you need to share reported information with non-project members, you can use "Generate anonymous share link", which will not expose other information about your project.
4.2.7 Error Stack
The Error Stack tab displays the error stack for the issue. Normally, the native crash stack needs to be restored using the symbol table. To upload the symbol table, please refer to Symbol Table Tool Usage Introduction. Newly reported crashes will automatically start to be restored. If you uploaded the symbol table after the crash was reported, please click "Retry Stack-Retrace" to manually trigger the restore.
4.2.8 Trace Data
"Trace Data" displays some detailed data of the current issue and contains the following sections:
(1) "Basic data" includes some status parameters of the device. (2) "Custom data" is a key-value pair configured by you. For configuration methods, please refer to Add custom data (unity) and Add custom data (unreal). You can also set up quick display fields here so they appear directly in the Report Details area. (3)extraMessage.txt in "Attachment Information" is the text information returned by the callback. For configuration methods, please refer to Setting Callback (unity) and Setting Callback (unreal). (4)"Client reported log" is the reported log attachment. For the upload method, please refer to Set upload log callback (unity) and Set log upload callback (unreal)
4.2.9 Trace Log
System logs and user-defined logs are displayed in "Trace Log". When switching to "System Log", the system log is displayed. Due to system limitations, this function is only available on Android.
When switching to "Custom Log", the user-defined log is displayed. You can refer to Add Custom Log (unity) and Add Custom Log (unreal) to use this feature.
4.2.10 Other Reports Of Same Device / User
"Other Reports Of Same Device / User" displays all reports within 3 days by the device or user that currently meets the issue. You can analyze the behavior of a specific user or device based on this.
4.3 Crash Analysis
4.3.1 Issue Regroup
"Issue Regroup" provides the function of regrouping issues. By default, CrashSight uses the first two lines of the stack as the basis for issue classification. If you are not satisfied with CrashSight's automatic issue classification, you can configure the stack keywords that need to be skipped in this tab, as well as the number of stack lines involved in issue classification, by adjusting these parameters to achieve more precise classification.
4.3.2 Symbol File
"Symbol File" displays the symbol table that needs to be used to restore the current crashed stack. You can view the module names corresponding to the symbol tables and their upload status.
4.3.3 Registers Info
"Registers Info" shows the register value of the crashed thread when the crash occurred.
4.3.4 Loaded Libs Info
"Loaded Libs Info" displays the information of each loaded segment when the crash occurred.
4.3.5 FD Info
"FD Info" shows the FD information used when the crash occurred. FDs have been classified, and you can view the proportion of each type of FD. This function is only available on Android and requires CrashSight SDK 4.2.17 or above. Please consult the CrashSight development team before using it.
4.4 ANR Analysis
4.4.1 ANR Message
The ANR Message collected by CrashSight is shown here.
4.4.2 ANR Trace
Here is the stack information of the dump when ANR occurs.
5 OOM Analysis
5.1 Estimated Value of memory usage
CrashSight uses the memory usage collected in the last 3 seconds before the app exit, a linear model is fitted to extrapolate the memory usage for the second when the exit occurred.Assume "t" is the second when the crash occurred, "t - 1" is the second before the crash occurred, and so on. MemoryUsaget represents the memory usage of the device at moment "t".
5.2 OOM Decision Rules
The decision rule for iOS is as follows. The decision rule for Android is as follows.
6 Advanced Search
In the advanced search page, you can query issues by various search dimensions. For the meaning of search dimensions, please refer to Search Dimensions.
You can also target specific users/devices for analysis. Switch to "Search All Reports For Specified User Or Device", enter the user ID/device ID you want to query, and you can get all the reported records of the user/device. You can also switch to Timeline view to more visually examine the behavior of that user/device.
7 Configuration
In "Configuration", you can manage the configuration related to issue handling of this project, including Alarm Config, Manage Tags, Manage Symbol Files, Integration Config, User ID Description Config.
7.1 Alarm Config
Alert rules can be configured here. You can configure alarm triggering conditions and notification methods as needed. You can configure up to 20 different alert rules for a project.
The configuration panel for adding alarm rules is as follows. You only need to fill in the prompts to complete the addition of alarm rules. What needs to be noted is the "Time Interval" column, which has two effects: (1) The trigger frequency of monitoring calculations, for example, 1 hour means that it will only calculate whether the alarm conditions are met every hour, instead of alarming as soon as the conditions are met. (2) Monitoring window size. For example, if it is configured for 1 hour, then the subsequent alarm condition will be how many times it is reached in 1 hour. If it is configured for 5 minutes, it will be how many times it is reached in 5 minutes.
7.2 Manage Tags
Here you can view the tags you have added to the issues and rename or delete them. Tags are often used to mark certain characteristics of an issue, such as the known cause ("FD overflow"), the scope of the issue ("Test Server", "Huawei Exclusive Crash"), the module in which the issue occurred ("libc", "Update module") or just a prompt ("Urgent!"). For details on how to set tags, see Issue List.
7.3 Manage Symbol Files
The symbol table for this project can be found here. To upload a symbol table, please refer to Symbol Table Tool Usage Introduction.
7.4 Integration Config
Here you can bind the project to the intranet version of TAPD, tapd.cn or Jira. To bind to tapd.cn, you need to provide the API Account, API Key, and Workspace ID. To bind to Jira, you need to provide the JiraAccountEmail, JiraApiToken, and BaseUrl.
7.5 User ID Description Config
Here you can set remarks for a specific user ID. Please click "View Format Description" to view the setting method.
8 Setting
In "Product Settings", you can view and modify the product-related settings of this project, including Information, Members, Version Management, Delete Product, Alteration Record.
8.1 Information
Some basic information about the product is presented here. Here you can modify the product name, avatar, and product description. You can also configure the SDK status here, with which you can disable the CrashSight SDK at any time in order to respond to possible risks in a timely manner.
8.2 Members
Product members can be managed here. You can invite, update, and delete members here. There are two ways to invite members: click "Invite New Members" to generate an invitation link. New members can click the link to join the project after logging in. Click "Add members via corporate WeChat name" and fill in the corporate WeChat name to add project members in batches.
Click the drop-down menu in the "Role" column to modify the member's permissions. The permissions of each member are as follows:
role | Permission to view personal privacy information | "OverView" viewing permission | "Configuration" editing permission | "Setting" editing permission | Permission to view reported issues |
---|---|---|---|---|---|
Administrators | √ | √ | √ | √ | √ |
Administrators(Data Compliance) | × | √ | √ | √ | √ |
Developer | √ | √ | × | × | √ |
Member(Data Compliance) | × | √ | × | × | √ |
Operator | √ | √ | × | × | √ |
Stats Viewer | × | × | × | × | √ |
Note: The permission to view personal privacy information refers to the permission to view UserID, DeviceID and other information that is accurate to the user's personal information.
Click the delete button in the "Operation" column to delete members.
Click the checkbox on the left side of the table to manage members in batches.
8.3 Version Management
Here you can view all version numbers of the product and configure hidden versions. Hidden versions are no longer displayed in the version filter box. At the same time, the corresponding version will stop initializing and reporting.
Switch the drop-down menu in the upper left corner to "Hidden Versions" to view hidden versions and redisplay them.
8.4 Delete Product
Click the button to delete this product.
Warning: After deleting the product, all data on the product will be completely deleted and cannot be viewed or restored. Please confirm carefully before operating.
8.5 Alteration Record
The operation history of this product is shown here.
The following table provides descriptions for each operation record.
Operation Type | Module | Operation content | Path |
---|---|---|---|
User | Product Management | Change the information | Setting-Information-Save |
User | Product Management | Delete App | Setting-Delete Product |
User | Product Management | Set SDK Disabled Status | Setting-Version Management-Hide-Also disable SDK initialization and reporting |
User | Sdk Strategy Config | Edit Sdk Strategy | Configuration-Sdk Strategy Config |
User | Sdk Strategy Config | Add Sdk Strategy | Configuration-Sdk Strategy Config-New Configuration |
User | Sdk Strategy Config | Delete Sdk Strategy | Configuration-Sdk Strategy Config |
User | Sdk Strategy Config | Edit SdkStrategy Priority | Configuration-Sdk Strategy Config |
User | Tag Management | Tag the Issue | Crash/Error/.. Analysis - Add Tag |
User | Tag Management | Remove Issue Tag | Crash/Error/.. Analysis - Delete Tag |
User | Tag Management | Tag the App | Configuration-Manage Tags-New Tag |
User | Tag Management | Remove App Tag | Configuration-Manage Tags-Delete |
User | Tag Management | Edit App Tag | Configuration-Manage Tags-Rename |
User | Member Management | Delete Members | Setting-Members-Delete |
User | Member Management | Modify Member Permissions | Setting-Members-Role |
User | Member Management | Add members via corporate WeCom name | Setting-Members-Add members via corporate WeChat name |
User | Member Management | Adjust Member Permission Level | Setting-Members-Scope |
User | Member Management | Invite New Members | Setting-Members-Invite New Members |
User | Feature Analysis | Update Rule Priority | Feature Analysis-Feature Rules |
User | Feature Analysis | Edit Rule | Feature Analysis-Feature Rules-Edit |
User | Feature Analysis | Add Rule | Feature Analysis-Feature Rules-Add New Rule |
User | Feature Analysis | Delete Rule | Feature Analysis-Feature Rules-More-Delete rule |
User | Alarm Config | Insert Alarm Config | Configuration-Alarm Config-New Alarm Rule |
User | Alarm Config | Update Alarm Config | Configuration-Alarm Config-Edit |
User | Alarm Config | Delete Alarm Config | Configuration-Alarm Config-Edit-Delete Config |
User | Bug Ticket | Manually Create a Bug Ticket | Crash/Error Analysis - Create Bug Ticket |
User | Bug Ticket | Unbind Bug Ticket | Crash/Error Analysis - Unbind Bug |
User | Version Management | Display Version and Enable Event Reporting | Setting-Version Management-Hidden Versions-Display-Enable Event Reporting-OK |
User | Version Management | Hide Version and Enable Event Reporting | Setting-Version Management-Displayed Versions-Hide-OK |
User | Version Management | Display Version and Disable Event Reporting | Setting-Version Management-Hidden Versions-Display-OK |
User | Version Management | Hide Version and Disable Event Reporting | Setting-Version Management-Displayed Versions-Hide-Also disable SDK initialization and reporting-OK |