writeLock.lock();
for(Iterator<MetricCalculator> metricIt = dirtyMetrics.iterator(); metricIt.hasNext(); ) {
MetricCalculator metric = metricIt.next();
metricIt.remove();
try {
MetricValue metricValue = metric.computeValue();
valueCache.put(metric, metricValue);
} catch (Exception e) {
logger.severe(e);
// Mark as not computed
valueCache.put(metric, null);