So I got into the IRC channel and got this
<jY> what are the benefits of putting statsd in front of graphite
<vvuksan> data aggregation
<vvuksan> say you wanted to find out how many registrations you have per time period
<vvuksan> you can either keep track of it yourself
<vvuksan> send to graphite every minute
<vvuksan> or
<vvuksan> any time there is a successful registration send a packet to statsd and let statsd deal with it
<jY> ok.. so i just keep incing the counter then to statsd?
<vvuksan> no
<vvuksan> you just send to statsd
<vvuksan> statsd will increment it for you
<jY> ok
<vvuksan> you can do all this yourself
<vvuksan> it's just more work
<jY> could i also send stuff like load avg to statsd.. or should that go right to graphite?
<vvuksan> that should go right to graphite
<vvuksan> cause that is already a composite metric
<vvuksan> not just a data point
<jY> ok so it's really only app specific stuff
<jY> ok thanks.. clears up a lot
<jY> statsd would be good to send logins to.. so i can see how many logins per minute i get in other words
<vvuksan> yeah
<vvuksan> or what's average response time of an external API
<vvuksan> it will also do percentiles which is useful
<vvuksan> you could even do how long it took to execute a particular important query
<jY> great.. thanks that cleared up a lot
So my take away is send system stats like free memory/drive space/users logged in right to graphite and send app stats like if a user logged in to statsd and lets statsd do its magic to generate nice data for graphite to graph