GithubHelp home page GithubHelp logo

happy-ferret / simple-breakpad-server Goto Github PK

View Code? Open in Web Editor NEW

This project forked from acrisci/simple-breakpad-server

0.0 1.0 0.0 88 KB

Simple breakpad crash reports collecting server

Home Page: https://www.npmjs.com/package/simple-breakpad-server

License: MIT License

CoffeeScript 78.32% JavaScript 0.26% HTML 21.42%

simple-breakpad-server's Introduction

Simple Breakpad Server

Simple collecting server for crash reports sent by google-breakpad.

Simple Breakpad Server is a lightweight alternative to Socorro for small projects.

Installing

npm install -g simple-breakpad-server

Now simply run simple-breakpad-server which should be in your PATH. Navigate to localhost:1127 in your browser to see the server.

Features

  • Send crash reports to the server from your applications.
  • Display crash report information like minidump stackwalks and application metadata.
  • Supports SQLite, PostgreSQL, MySQL, MariaDB
  • Simple web interface for viewing translated crash reports.
  • Add symbols from the web API.

Running in Development

Simple Breakpad Server uses Grunt as a task runner.

npm install
npm run-script serve

The server is now running on port 1127. The default database location is $HOME/.simple-breakpad-server/database.sqlite.

Endpoints

GET /crashreports

View a list of crash reports.

GET /crashreports/<id>

View a single crash report.

GET /crashreports/<id>/files/<file>

Download a file associated with this crash report. For example, to download the minidump file for a crash report, use /crashreports/123/files/upload_file_minidump.

GET /symfiles

See a list of available symfiles used to symbolize the crash reports.

GET /symfiles/<id>

See the contents of an individual symfile.

POST /crashreports

Create a new crash report. Use content type multipart/form-data. Some applications already dump a file in this format, so you can just upload that.

If you have a binary minidump file, use a curl request like this:

curl -F [email protected] \
     -F ver="0.0.1" \
     -F prod=cef \
     localhost:1127/crashreports

POST /symfiles

Add a new symbol file to the database to use to symbolize crash reports.

To create a symfile for your binary, first follow the instructions to install the google-breakpad project.

Then use the dump_syms binary to generate a symbol file.

dump_syms /path/to/binary > /path/to/symfile.syms

Use the content type multipart/form-data to upload it to the server from this endpoint with the name of the file being symfile. Here is an example curl request to upload your symfile:

curl -F [email protected] localhost:1127/symfiles

Configuration

Configuration is done in yaml (or json).

The configuration path is as follows:

  • $PWD/breakpad-server.yaml
  • $HOME/.simple-breakpad-server/breakpad-server.yaml
  • /etc/breakpad-server.yaml

Here is an example configuration:

port: 1127
baseUrl: '/'
database:
  database: 'simple-breakpad-server'
  username: 'myuser'
  password: 'secret'
  dialect: 'sqlite'
  storage: '/home/myuser/.simple-breakpad-server/database.sqlite'
  logging: false
customFields:
  files:
    - name: 'customfile1'
      downloadAs: 'customfile1.jpg'
    - name: 'customfile2'
  params: ['customparam']
dataDir: '/home/myuser/.simple-breakpad-server'

Database configuration

Database options are passed directly to Sequelize. See that page for details on how to configure the database. Currently, sqlite is best supported by Simple Breakpad Server.

Custom Fields

Place a list of file parameters in the files array. These will be stored in the database as blobs and can contain binary data. Non-files should go into the params array. These will be stored in the database encoded as strings. File parameters can either be a simple string, or an object specifying a required name (used for upload and download url) and an optional downloadAs which specifies what name will be used when downloading.

Custom files can be downloaded from the GET /crashreports/<id>/files/<file> endpoint and custom params will be shown on the main page for the crash report.

For now, if you change this configuration after the database is initialized, you will have to create the tables on your database manually for things to work.

Data Directory

Simple breakpad server caches symbols on the disk within the directory specified by dataDir. The default location is $HOME/.simple-breakpad-server.

Contributing

Simple Breakpad Server is a work in progress and there is a lot to do. Send pull requests and issues on the project's Github page.

Here are some things to do:

  • improve UI
  • endpoint to delete crash reports
  • group and filter crash reports
  • script to create symfiles
  • cli

License

This project is open source and available to you under an MIT license.

simple-breakpad-server's People

Contributors

acrisci avatar jimbly avatar thughes avatar zcbenz avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.