Skip to content

Caliper is intended to be a small-scale version of Mozilla's Socorro to act as an endpoint for crash dumps generated by google breakpad. This is being made as trying to run a socorro instance on a small scale isn't an easy task.

Notifications You must be signed in to change notification settings

GregoryHlavac/Caliper

Repository files navigation

Build Status

Caliper

=========

Caliper is an endpoint server for handling crash reports generated by Google Breakpad it is intended as a smaller scale alternative for projects that do not need the immense scale of Socorro.

WARNING!

This is highly experimental right now as this is my first foray into node and things of that likeness, it will eventually get done but it is likely things will change drastically as it gets done, download it if you want to screw around but it doesn't do anything but accept POST'd crash dumps yet.

Caliper Relies Upon Server-Side

Caliper's Client Side Uses

Caliper also uses Slate Bootstrap and it is bundled with the source, it is the only dependency bundled.

Optional Drivers

  • pg
  • mysql
  • Or Whatever else Sequelize can support, go look for yourself.

Installation

Foreword..

You'll need preinstalled..

Node (Preferably 0.10.26 or newer) NPM Bower Grunt

git clone https://github.com/GregoryHlavac/Caliper.git
cd Caliper
npm install
bower install
grunt build
mkdir minidumps
mkdir symbols

Setup

As someone has shown some interest in using this..

Follow instructions above to install it.

Then pick a database (mysql, postgresql, sqlite3, mariadb)

Install that associated driver with npm into your project (As Caliper doesn't come with a default driver aside from the test runner sqlite).

Modify caliper.cfg to suite your settings (You may also pass a custom configuration file using the --cfg argument).

If you chose MySQL then you can just modify what already exists in the caliper.cfg to suite your settings. (Alternatively you can be lazy and setup mysql to be what caliper expects by default.. Which I don't recommend)

Otherwise you have to figure out the settings by yourself (Consult SequelizeJS's documentation for this)

If you specify a 'url' setting in the database setting namespace all other settings are ignored and everything needed to setup the database is extrapolated from the URL.

Once the database settings are ready, startup Caliper as you would any other node app (Except I didn't name it server or index, because I have too many of those damn files anyways).

Once the server is up and running, for the time being you have to manually add a project to the 'project' database. Just give it a name and that's all you need.

From there you can navigate to

:8080 (Or whatever port you choose, SSL isn't supported yet) and navigate to the project page using the nav.

By default (at least so far, I can't promise this will not change) Caliper listens for dumps at...

//submit

It supports a manual crash dump submission as well by default (You can browse to it)

The fields that Caliper expects during parsing are.. 'user' 'description' 'version' 'crashdump'

All of these should be relatively self explanatory, right now only version and crashdump are technically required.

As of right now Caliper expects you to have put the symbols in the proper format into the symbols directory.

The format is the same as the breakpad test ones (ie Module_Name/Identifier/Name.sym), right now it only parses on minidump submission although at a later date it will be able to handle a backlog if something wasn't quite parsed correctly.

That's all for now!

Run Me!

node caliper

About

Caliper is intended to be a small-scale version of Mozilla's Socorro to act as an endpoint for crash dumps generated by google breakpad. This is being made as trying to run a socorro instance on a small scale isn't an easy task.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published