Breakpad/Design/Reporter
From MozillaWiki
« back to Breakpad design page
Contents
Breakpad Analysis and Reporting System(s)
The query engine provides reporting and querying from the database. It requires read access to the database. There are two basic kinds of reporting:
- System status information
- Querying individual data to find specific information
- Report generation aggregating large volumes of data
System Status
To verify that the system is running efficiently:
- Number of reports collected
- Number of reports processed
- Number of reports collected but not yet processed (backlog)
Querying
- For talkback parity, ability to query reports by the standard metadata (see notes below): http://talkback-public.mozilla.org/search/start.jsp
- Ability to query by extensions enabled
- Ability to query by DLLs loaded in process (especially plugin DLLs)
Reporting
- Make sure that private data (email address, IP address) are kept behind a login
- Topcrash table: reimplement http://talkback-public.mozilla.org/reports/firefox/FFTrunk/FFTrunk-topcrashers.html
- Topcrashes by URL: http://talkback-public.mozilla.org/reports/firefox/FFTrunk/url-analysis-all.html
- Smart analysis report: http://talkback-public.mozilla.org/reports/firefox/FFTrunk/smart-analysis.all
- the ability to quickly find and isolate when crash regressions appeared in nightly builds or between major releases.
- Need specific information here! (UI mockup would be good)
- ability to find common themes behind crash reports by cross-referencing against metadata:
- common comments and comment fragments
- OS version
- graphics systems
- process lists
- time since last crash
- uptime of the crashing session
- most frequently visited sites
- memory usage
- available system memory
- number of CPUs
- Calculate the MTBF numbers for particular releases; analyze across releases and branches; graph the data
- find trends
- number of crashes versus total users
- crashes/normal quits
- all of the metadata listed above
Notes
Currently, "stack signature" means the top stackframe. In the future, it may make sense to make this more specific or more general, or allow individual queries to widen/narrow the scope.
Instead of running the reports on request, it may make sense to generate them from a cron script.
Product metadata includes:
- Product -> Firefox
- Branch -> 1.8
- Version -> 2.0.0.3
- OS
- BuildID
Crash report metadata includes the above, plus:
- OS version (and patchlevel if applicable)
- list of process DLLs
- list of process enabled extensions
- unique ID (per-user)
- install date
- runtime this session (before crash)
- number of runs for this install
- number of crashes for this install