Monitor Anything on ServerDensity
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
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".