public StringBuilder counterSnapshot(final Collection<Counter> instances) {
final long ts = System.currentTimeMillis();
final StringBuilder events = newEventStream();
for (final Counter counter : instances) {
buildEvent(events, COUNTER_TYPE, ts, new MapBuilder()
.add(NAME, counter.getKey().getName())
.add(ROLE, counter.getKey().getRole().getName())
.add(UNIT, counter.getKey().getRole().getUnit().getName())
.add(CONCURRENCY, counter.currentConcurrency().intValue())
.add(MEAN, counter.getMean())
.add(VARIANCE, counter.getVariance())
.add(HITS, counter.getHits())
.add(MAX, counter.getMax())
.add(MIN, counter.getMin())
.add(SUM, counter.getSum())
.add(M_2, counter.getSecondMoment())
.map());
}
return events;
}