1.1. What is Socorro?¶
Socorro is software that implements a crash ingestion pipeline.
The Socorro code is hosted in a GitHub repository at https://github.com/mozilla-services/socorro and released and distributed under the Mozilla Public License v2.
The crash ingestion pipeline that we have at Mozilla looks like this:
Arrows direction represents the flow of interesting information like saving crash information, loading crash information, pulling crash ids from queues, and so on.
Important services in the diagram:
- Collector: Collects incoming crash reports via HTTP POST. The collector we currently use is Antenna now collects crashes for Socorro.
- Processor: Turns breakpad minidump crashes into stack traces and other info.
- Webapp/Crash Stats: Web user interface for analyzing crash data.
- Crontabber: Runs hourly/daily/weekly tasks for analyzing and processing data.
The processor stores crash data in several crash storage destinations:
- Telemetry (S3)
1.2. Repository structure¶
1.2.1. Top-level folders¶
If you clone our git repository, you will find the following folders.
Here is what each of them contains:
- Alembic-managed database migrations.
- Some scripts that should get moved to a more sensible place but haven’t, yet.
- Configuration for an old way of running Socorro that you can completely ignore.
- Docker environment related scripts, configuration, and other bits.
- Documentation of the Socorro project (you’re reading it right now).
- The Selenium tests for the webapp.
- The minidump stackwalker program that the processor runs for pulling out information from crash report dumps.
- Files that hold Python library requirements information.
- Arbitrary scripts.
- The bulk of the Socorro source code.
- Some files that should get moved, but haven’t, yet.
- The webapp source code.
- Another part of the webapp.