public void collectAll() {
log(Level.DEBUG, "Starting collect");
Timer timer = (Timer) getParent();
long start = System.currentTimeMillis();
startCollect();
String oldThreadName = Thread.currentThread().getName();
for(Probe<?, ?> probe: allProbes) {
if(!isCollectRunning())
break;
long duration = (System.currentTimeMillis() - start) / 1000;
if(duration > (probe.getStep() / 2)) {
log(Level.ERROR, "Collect too slow: %ds for timer %s", duration, timer);
break;
}
log(Level.TRACE, "Starting collect for %s", probe);
log(Level.DEBUG, "Collect all stats for host " + host.getName());
setRunningname(oldThreadName + "/" + probe.getName());
probe.collect();
setRunningname(oldThreadName + ":finished");
}
stopCollect();
long end = System.currentTimeMillis();
float elapsed = (end - start) / 1000f;
log(Level.DEBUG, "Collect time for %s: %fs", host.getName(), elapsed);
}