Skip to content
KevinGaudin edited this page Dec 19, 2012 · 21 revisions

What is Acralyzer

Acralyzer is a project aiming at offering a free, independent, open source backend for ACRA reports.

ACRA is a lightweight open source library enabling Android applications to send detailed crash repors to a Google Docs spreadsheet... or other backends with the help of provided generic senders or custom made ones.

Lots of android developer start with ACRA and the default Google Doc spreadsheet because the solution is free, reliable, and does not require any technical knowledge to setup.

The inconvenience is that the spreadsheet user interface is not ideal for analytics needs and tends to become slow as hell when thousands of reports are stored. Moreover, when a spreadsheet reaches its limit (a bit more than 11000 reports), it can't be opened anymore.

In addition, Google teams are now asking ACRA users to stop using Google Forms for automatic crash reporting.

Third party backend have been developed, offer rich user interfaces with free plans. There really are nice solutions... but, they are not open source, not independent, and can't be self hosted.

First version goal

Acralyzer is the project started by ACRA's creator, Kevin Gaudin, to define and implement a backend with these constraints:

  • free and open source
  • self hostable to keep your crash data private
  • secure
  • simple to install and deploy
  • scalable (should be able to handle very large numbers of reports)
  • provide feature to sort, filter and visualize reports and stats

This Wiki is proposed to the ACRA users community as a place to define and prioritize the features that should be implemented in this backend. It is open to your contributions to help create the app that fits your needs.

As a starter, let's define the first set of features that an early version of Acralyzer should provide. This would be the list of feature that would let you get rid of the GoogleDoc spreadsheet without losing any convenience in your daily work to enhance YOUR android app.

Proposed architecture

After examining various technological options, here is a first architecture proposal

CouchDB

ACRA reports contain lots of data. Most of them are key/value pairs, and the structure of a report can vary from one app developer to another. Given this nature, it looks obvious that a NoSQL storage engine could be the best fit for our needs.

Apache CouchDB™ is a database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API

The selection of CouchDB as the storage engine is based on:

  • its native HTTP RESTFull API: storing data (a report) in CouchDB is as simple as sending an HTTP PUT request with a JSON body
  • its scalable nature: CouchDB is designed to handle many concurrent requests and can easily be deployed on clustered servers
  • its opened source and Apache Software License + Apache Software Fundation support.
Clone this wiki locally