Amon - web application debugging and monitoring toolkit
github.com
github.com
I can only hope this trend continues and in an open-architecture style. The ability to basically develop a skeleton monitoring UI that I can plug my own software into is fantastic.
My only thought is: why is this local to the machine I put it on? I'd rather have a central repository that I send me data to, like getexceptional. I don't mind having to set-up the process for each server I spin up, but I would prefer it if the information all aggregated to one source that I could browse through.
What I sort of imagine is registering for an Amon account and getting a unique key and identifier. Whenever I install Amon on a machine or want to call it from my code, I use that unique key and give the hardware a unique name and register my software service (pulling the hardware name from some config file automatically). Then, when I log into my central Amon account, I can browse through my exceptions and hardware details by machine name or software service.
Give me the ability to have multiple logging levels and I am in heaven.
Take it one step further: let fall-back be to either a local db or file-system and have a cron-job go through to try to fulfill the upload tasks.
That is definitely something I would pay $25-$50 a month for.
http://eqatec.com/Analytics/Overview.aspx
Edit: Per the Amon website, local-to-the-machine is a feature: "You don’t trust cloud based solutions and want to be in full control of your data"
So, as you may see, there's a point for this.
Also, don't forget that all you want for the replication already exists. You can easily replicate the mongodb data to another machine or back it up and save it somewhere else periodically.
As for giving each machine a unique id, this is a cool idea, but this implies that you have enough resources to set up your own monitoring system to monitor multiple hosts. That implies that you can implement something redundant.
I cannot judge the safety in general, but can you list a single reason for using the -f argument here? I'd bet that this is 'just in case' combined with muscle memory gone bad.
First, it downloads and installs a non-checksummed i686 binary version of mongodb. This is outrageously anti-social and one should be embarrassed for releasing that. Ditto ez_setup and all that crap. This is 2011.
I'm only looking at the Debian script now, but it's littered with other bugs such as not calling update-rc.d for amon (it is called for amond). The suggestion to run "curl uninstall.amon.cx | sh" is particularly unsafe as the script has a Bash shebang and /bin/sh could be anything.
A glance at the rpm script suggests bugs fixed in one have not been copied over - for example, you use pgrep correctly in the debian script but in the rpm script you essentially do [ "$(ps aux | grep -c mongo)" = 1 ] which gives you completely the opposite result to what you want.
The uninstallation scripts are perhaps worse, riddled with typos ("/etc.init.d/amond", "torando", etc.) which demonstrate the code has never once been tested, deleting /usr/bin/mongo* even though you install it to /usr/local/ (and screw anyone who had their own version running), deleting any systemwide versions of jinja, and. It won't even uninstall on Darwin due to "[ "$(uname -s)" != "Darwin" ];". And you call "set +e" (a no-op as it's the default) so that if the site_packages shell expansion fails you try and delete "/jinja2", etc.
I'm going home now. This is just what I see on my first glance but I think I've seen enough, frankly.
First, it downloads and installs a non-checksummed i686 binary version of mongodb. This is outrageously anti-social and one should be embarrassed for releasing that. Ditto ez_setup and all that crap. This is 2011.
Amon is language agnostic, so there is enourmous chance, that a person who has 0 python knowledge could use it. By default none of the Linux distributions out there have pip or easy_install, so I thats why I have to install it.
I'm only looking at the Debian script now, but it's littered with other bugs such as not calling update-rc.d for amon (it is called for amond)
That is for reason. Some people, especially on small VPS's prefer to keep their memory usage low, so that's why the web part is running on demand only.
It won't even uninstall on Darwin due to "[ "$(uname -s)" != "Darwin" ];"
It's not running on MacOS at all at the moment, that's still work in progress.
I will try to deploy this on Heroku and see how it compares to my django-sentry [https://github.com/dcramer/django-sentry] installation.
Don't hesitate to charge a reasonable monthly fee. There's a lot of room to undercut the existing players (newrelic et al) and still make it a sustainable business.
P.S And of course the Open Source version will do the job for most people
Is user authentication in the works? Is there an easy workaround for securing the web app?