Socorro Documentation Release 2

Socorro Documentation Release 2

Socorro Documentation Release 2 Mozilla June 18, 2014 Contents 1 Overview 3 1.1 Socorro Server..............................................3 1.2 Socorro UI................................................3 1.3 Data Flow................................................3 2 Installation 5 2.1 Socorro VM (built with Vagrant + Puppet)...............................5 2.2 Automated Install using Puppet.....................................5 2.3 Manual Install..............................................5 3 Collector 11 3.1 Collector Python Configuration..................................... 11 3.2 Common Configuration......................................... 11 3.3 Collector Configuration......................................... 11 4 Processor 13 4.1 Introduction............................................... 13 5 Middleware API 15 5.1 API map................................................. 15 5.2 Bugs................................................... 16 5.3 Crashes Comments............................................ 17 5.4 Crashes Frequency............................................ 19 5.5 Crashes Paireduuid............................................ 21 5.6 Crashes Signatures............................................ 22 5.7 Extensions................................................ 23 5.8 Crash Trends............................................... 24 5.9 Job.................................................... 25 5.10 Priorityjobs................................................ 26 5.11 Products................................................. 26 5.12 Products Builds.............................................. 27 5.13 Signature URLs............................................. 29 5.14 Search.................................................. 30 5.15 List Report................................................ 33 5.16 Versions Info............................................... 36 5.17 Forcing an implementation........................................ 37 6 Socorro UI 39 6.1 Coding Standards............................................. 39 i 6.2 Adding new reports........................................... 39 7 UI Installation 43 7.1 Installation................................................ 43 7.2 Trouble Shooting............................................. 45 8 Server 47 8.1 The Applications............................................. 47 9 crontabber 49 9.1 crontab runs crontabber......................................... 49 9.2 Dependencies............................................... 49 9.3 Own configurations........................................... 50 9.4 App names versus/or class names.................................... 51 9.5 Manual intervention........................................... 51 9.6 Frequency and execution time...................................... 52 9.7 Timezone and UTC........................................... 52 9.8 Writing cron apps (aka. jobs)...................................... 52 10 Throttling 55 10.1 throttleConditions............................................ 55 11 Deployment 57 11.1 Introduction............................................... 57 11.2 Outage Page............................................... 57 12 Development Discussions 59 12.1 Coding Conventions........................................... 59 12.2 New Developer Guide.......................................... 59 12.3 Glossary................................................. 70 12.4 Standalone Development Environment................................. 86 12.5 Unit Testing............................................... 87 12.6 Crash Repro Filtering Report...................................... 88 12.7 Disk Performance Tests......................................... 89 12.8 Dumping Dump Tables.......................................... 91 12.9 JSON Dump Storage........................................... 93 12.10 Processed Dump Storage......................................... 96 12.11 Report Database Design......................................... 97 12.12 Code and Database Update........................................ 99 12.13 Out-of-Date Data Warning........................................ 106 12.14 Database Schema............................................. 107 12.15 Package.................................................. 113 12.16 Schema.................................................. 113 12.17 Tables used primarily when processing Jobs............................... 113 12.18 Tables primarily used during data extraction.............................. 115 12.19 Tables primarily used for materialized views.............................. 116 12.20 Dimensions tables............................................ 116 12.21 View tables................................................ 117 12.22 Bug tracking............................................... 119 12.23 Meta data................................................. 120 12.24 Database Setup.............................................. 120 12.25 Common Config............................................. 121 12.26 Populate ElasticSearch.......................................... 124 13 PostgreSQL Database 127 ii 13.1 PostgreSQL Database Tables by Data Source.............................. 127 13.2 Manually Populated Tables....................................... 127 13.3 Tables Receiving External Data..................................... 127 13.4 Automatically Populated Reference Tables............................... 128 13.5 Matviews................................................. 128 13.6 Application Management Tables..................................... 129 13.7 Deprecated Tables............................................ 129 13.8 PostgreSQL Database Table Descriptions................................ 130 13.9 Raw Data Tables............................................. 130 13.10 Normalized Fact Tables......................................... 131 13.11 Dimensions................................................ 133 13.12 Matviews................................................. 135 13.13 Note On Release Channel Columns................................... 137 13.14 Application Support Tables....................................... 137 13.15 Creating a New Matview......................................... 138 13.16 Do I Want a Matview?.......................................... 138 13.17 Components of a Matview........................................ 139 13.18 Creating the Matview Table....................................... 139 13.19 Database Admin Function Reference.................................. 142 13.20 MatView Functions............................................ 142 13.21 Schema Management Functions..................................... 146 13.22 Other Administrative Functions..................................... 148 13.23 Custom Time-Date Functions...................................... 148 13.24 Database Misc Function Reference................................... 150 13.25 Formatting Functions........................................... 150 13.26 API Functions.............................................. 151 13.27 Populate PostgreSQL........................................... 151 14 How generic app and an example works using configman 155 14.1 The minimum app............................................ 155 14.2 Connecting and handling transactions.................................. 155 14.3 What was the point of that?!....................................... 156 15 Writing documentation 157 15.1 Installing Sphinx............................................. 157 15.2 Making the HTML............................................ 157 15.3 Making it appear on ReadTheDocs................................... 157 15.4 Or, just send the pull request....................................... 157 15.5 Or, just edit the documentation online.................................. 158 16 Indices and tables 159 iii iv Socorro Documentation, Release 2 The current focus of Socorro development is to make a server which can accept crash reports from Firefox. See http://wiki.mozilla.org/Breakpad for more information. Socorro mailing list https://lists.mozilla.org/listinfo/tools-socorro This documentation is available on Github, and if you want to, feel free to clone the repo, make some changes in a fork and send us a pull request. Contents: Contents 1 Socorro Documentation, Release 2 2 Contents CHAPTER 1 Overview The Socorro Crash Reporting system consists of two pieces, the Socorro Server and the Socorro UI. 1.1 Socorro Server Server is a Python API and a collection of applications and web services that use the API. The applications together embody a set of servers to take crash dumps generated by remote clients, process using the breakpad_stackdump application and save the results in HBase. Additional processes aggregate and filter data for storage in a relational database. The server consists of these components: • Collector • Hadoop/HBase • Processor • [[SocorroRegistrar]] • [[SocorroWebServices]] 1.2 Socorro UI Socorro UI is a Web application to access and analyze the database contents via search and generated reports. 1.3 Data Flow Crash dumps are accepted by the Collector, a mod_wsgi application running under Apache. Collector stores the crashes into HBase. Using Hadoop jobs, the crash dumps in HBase are converted into searchable json files using Processor. The Processor s are also long running applications that live on Hadoop processing nodes. They accept tasks from map reduce jobs and employ the stackwalk_server? to convert crashes into json files stored back into HBase. Filtering through these converted

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    165 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us