Currently the Graphite emitter blocks up to 1 sec if the queue is full. If communication to Graphite is disrupted then this will potentially block up query threads, etc, throughout the Druid process. To avoid this it would be better to drop events immediately on queue full rather than waiting for space to free up.
It'd also be nicer for the logs to only log an error periodically rather than on every dropped metric.
Generally I'm thinking something more like the implementation in HttpPostEmitter.emit.
Currently the Graphite emitter blocks up to 1 sec if the queue is full. If communication to Graphite is disrupted then this will potentially block up query threads, etc, throughout the Druid process. To avoid this it would be better to drop events immediately on queue full rather than waiting for space to free up.
It'd also be nicer for the logs to only log an error periodically rather than on every dropped metric.
Generally I'm thinking something more like the implementation in
HttpPostEmitter.emit.