public Object getState() {
Map<String, Object> state = new HashMap<>();
final double arrivalRateInSecs = arrivalsTracker.reportRate();
long tuplePop = population();
final double sojournTime = tuplePop / Math.max(arrivalRateInSecs, 0.00001) * 1000.0;
long cap = capacity();
float pctFull = (1.0F * tuplePop / cap);
state.put("capacity", cap);
state.put("pct_full", pctFull);
state.put("population", tuplePop);
state.put("arrival_rate_secs", arrivalRateInSecs);
state.put("sojourn_time_ms", sojournTime);
state.put("insert_failures", insertFailuresTracker.reportRate());
state.put("dropped_messages", droppedMessages);
state.put("overflow", overflowQ.size());
return state;
}