This is a rant, it won’t be to long but…
So I just started playing with graphite which is just all sorts of awesome. However most of the data I care about needs to come from SNMP, because it’s A, a SAN and I can’t just install some agents, or B) It’s a locked down Solaris box that’s got ancient versions of everything and won’t work with any of the new hotness. So I looked at collection agents that worked with graphite, and …. yeah nothing except collectd. Collectd sucks, I had nothing but issues getting it working, and it doesn’t play nice with graphite. I like graphite because it’s simple, a name, a value and a timestamp over a tcp port. Thats the sort of stuff that is awesome. collectD tries to do all this other stuff…and while I’m sure it’s great once it’s setup I don’t like it. I don’t use agents, because my servers have more important things to do than hang on a crappy plugin that doesn’t handle edge cases well.
Enough bitching though, I want to go back to the unix philosophy, do one thing, do it well. Graphite does one thing well, graphing, carbon does one thing well, getting data. SNMP does one thing…poorly…very poorly. Unfortunatley I have yet to find a decent system that can poll snmp data and present it in a useful fashion without having to go through a million steps configuring it. I don’t want my snmp poller to autodiscover my network and try to be smarter than me (OpenNMS I’m looking at you). I just want to say, these mibs, these hosts, this interval, go.
As a pet project I’m going to start working on one in python, until it’s ready for primetime I’ll deal with collectd and it screwing up my nice graphite naming scheme.