What´s your favorite monitoring tool? rrdtool? Nagios?  MRTG? Zabbix? Ganglia?

Well, everybody has a favorite. I don´t. They are all complicated to maintain  and/or awkward to scale.

For monitoring I use ServerDensity and I monitor anything I want using it´s plugin system.

It took me a while to make it work at first, but just by editing a simple Python script I was able to monitor things like our gros revenue in the last ten minutes and our queue size on Sidekiq which runs on a third-party Redis SaaS provider.


Basically the idea behind its plugins is that anything that outputs a Python data struct can be graphed at serverdensity:


class Plugin1 (object):
     def __init__(self, agentConfig, checksLogger, rawConfig):
     self.agentConfig = agentConfig
     self.checksLogger = checksLogger
     self.rawConfig = rawConfig

     def run(self):
         data = {'hats': 5, 'Dinosaur Rex': 25.4}
         return data
Read the whole story at [ServerDensity][] http://support.serverdensity.com/knowledgebase/articles/76018-writing-a-plugin-linux-mac-and-freebsd


A little fiddling and I can call MongoDB using javascript, I can call URL´s or a redis-client program to read the queue status on Sidekiq, and so many things.


And that´s about it, the data will start to be collected and graphed for me instantly. That´s great for capacity planning and application debugging.

A little more tweaking and we can also send Alerts to yourself or to PagerDuty based on custom thresholds on those features you just added on ytour custom plugin: for instance, you can be paged when your 'hats' reach a limit of 10 or your 'Dinossaur Rex' reaches 100.0


Another good use of ServerDensity is it´s cool blog and it´s weekly tips: the "Sysadmin Sunday".