public synchronized void clear() {
   sampling.removeDerivedStatistic(average);
   average = new MinMaxAverage();
   sampling.addDerivedStatistic(average);
 }
 @Override
 public void end(long time, T result, long... parameters) {
   sampling.end(time, result, parameters);
 }
 @Override
 public void begin(long time) {
   sampling.begin(time);
 }
 @Override
 public void end(long time, T result) {
   sampling.end(time, result);
 }
 public LatencyMonitor(Set<T> targets) {
   this.sampling = new LatencySampling<T>(targets, 1.0);
   this.average = new MinMaxAverage();
   sampling.addDerivedStatistic(average);
 }