I needed a tool to alert me when my cron jobs silently fail. There are already some existing services for this, but it seemed like a fun thing to build myself. A month of spare-time hacking later, I present to you:

I am using this myself and it has already been useful for me a couple times. Say, a seemingly benign code change in one service causes my batch job to fail 12 hours later, in the middle of night. Without any monitoring I might be blissfully unaware for days or months, until I need those backups or whatever, but now I get an email alert and can get it sorted in minutes. Sweet!

I licenced this under BSD licence, hoping it might be useful for other people too. It’s such a simple service it feels wrong to charge big bucks for it. You can grab the code from Github, run it, extend it, add unicorns or raptors, and so on. Or you can use the hosted service which is free. I cannot make guarantees that I’ll keep the hosted service around for ten years, though. The running costs for me currently are: $5/mo DigitalOcean box, two domain names and SSL certificates, a bit of space on S3 for daily backups, and my own time for maintaining this.

On implementation side, it’s a pretty straightforward Django app with nothing particularly clever going on, which is a good thing. It does make use of a database trigger (which works with both PostgreSQL and MySQL), and it has some sweet JS horizontal slider widgets for setting duration parameters.

What’s next: I’m not sure. Basically, it is already useful for me as-is. There’s a list of features I’m considering, but I also want to keep the codebase simple, with few dependencies, and easily deployable.