For all of those examples, you'd do the processing on your events and then send them to the graphite function - they're all special use cases. The graphite function should really only do one thing - send a metric to graphite. None of this logic has anything to do with graphite - it's something you'd do with, say, Libretto metrics or if you wanted to send things to statsd and so on.