Failtale  

Calling all developers worldwide! We built an open source, MIT Licensed, free to use, remote error reporting tool that can do amazing things! Among it’s many features are: RESTful API, Open Source, Platform Agnostic ( read: independant ) and more… If all this sounds like music in your ears, and you’re interested in joining our ß-program, please register at www.failtale.be.

failtale iconlogo failtailThe University of Massachusetts

What does “Remote Error Reporting” even mean? Let’s say you have new application ready to be deployed on your client’s server. Everything runs great on your own server, but once it’s copied to the production server, things start to go wrong. Maybe it’s just an image folder without the right permissions, a wrong version of a beloved Gem, or a file that got misplaced. You ask your wonderful client for access to the error logs but they go “Ehrmmmm, error what?”. This is were Failtale can be one hell of a tool.

Wouldn’t it be great if you could insert a little code snippet in your code that reports errors to you? Without having access to logs, ssh accounts and what not.

How does this all work? All you need to do is:

  1. Sign up to get an API key for your application. An API key is nothing more than a long, random string that identifies your application. Failtale needs this key in order to be able to log errors to the relevant application.
  2. Download one of the libraries and integrate it with your project
    ( please write your own if you can’t find one for your language )

    With Actionscript, it looks like this:

    // create your own API key on www.failtale.be
    public static const FAILTALE_API_KEY : String = "your-api-key-goes-here";
    public static const FAILTALE_GATEWAY : String = "http://failtale.be";
    private var failtale : Failtale;
     
    private function initFailtale () : void
    {
      failtale = Failtale.getInstance();
      failtale.init( FAILTALE_GATEWAY, FAILTALE_API_KEY );
    }
     
    // what follows is a poor example probably
    // you shouldn't track every single error or become a lazy coder
    private function triggerError ( e : Event ) : void
    {
      // try to remove a dummy instance from the displaylist
      try
      {
        removeChild( dummy );
      }
      catch( error : Error )
      {
        // removing dummy failed ( e.g. it was not added to the displaylist )
        // let Failtale know about it
        var fm : FailtaleModel = new FailtaleModel();
        fm.comment = commentInput.text;
        fm.error = error;
        fm.arguments = arguments;
        failtale.log( fm );
      }
    }

    This example will generate a simple error report. Following screenshot shows 1 of 3 screens you can use when debugging your application.

    Screenshot showing the Failtale report view

  3. Check your Failtale account the next time your client calls you about this exotic bug and you’ll find a nicely formatted error report right in front of your nose. No SSH sessions, no remote logins required. All done with a library, a code snippet and a Failtale account.

We’ve allready written ( and released ) 2 libraries ( Ruby and AS3 ) and a third one ( Javascript ) to integrate with one of your projects, is on it’s way. We sure could use one for Perl, Python, PHP, …

We appreciate any kind of feedback, code contributions, suggestions, anger, love, …

7 Responses to “Failtale”

  1. Topsy.com 2010 May 03

    [...] This post was mentioned on Twitter by Mr. Henry, Hans Spooren and webdevotion, Failtale.be. Failtale.be said: New post about our new error reporting app: @failtale. http://bit.ly/bFooE7 #ruby #rails #flash #flex #as3 #javascript (via @wearemrhenry) [...]

  2. Tini 2010 August 04

    This sounds very promising!

    I tried to install FailTale from Git on my server but passenger throws an error. Is there an installation tutorial, what’s required in order to run FailTale on my own server?

    Thx

    Tini

  3. yves 2010 August 04

    Hi Tini,

    can you be more specific about the error Passenger is giving you? Currently there’s not a written tutorial. Basically when all the required gems are installed it should run.

  4. Tini 2010 August 04

    Hi Yves and thanks for your help.

    I installed the following gems as in environments.rb:

    factory_girl
    shoulda
    authlogic
    railsgarden-message_block
    haml
    will_paginate
    campaigning

    Then I ran rake db:migrate when I realized that I had to install the “cucumber”-gem. DB-migration then completed without errors.

    Here’s a screenshot of the passenger error:
    http://twitpic.com/2bi6hb

    Greetings

    Tini

  5. Tini 2010 August 04

    Hi Yves (i post it here for other people having the same issue).

    Things changed after I installed the bundler-gem (v=0.9.26) and an older version of the will_paginate-gem (v=2.3.12, had v=2.3.14 installed).

    Now the app is running :-) Very nice.

    Mh, but how do I log in, is there an admin-account?

    Do I have to load some default data into db?
    Thank you very much

    Tini

  6. yves 2010 August 04

    Great!

    Try “rake db:seed” for initial data

  7. Tini 2010 August 04

    Mh, nothing happens, the tables are still empty.

    Here’s the output:

    Loaded suite /usr/bin/rake
    Started

    Finished in 0.000491 seconds.

    0 tests, 0 assertions, 0 failures, 0 errors

Leave a Reply