code: private synchronized void updateMetric(String value, Group group, Set<String>[] groupKeys, int index){
  		group.update(value);
  		if (index < groupKeys.length){
  			for (String key : groupKeys[index]){
  				Group subgroup = group.subgroup(key);
  				updateMetric(value, subgroup, groupKeys, index + 1);
  			}
  		}
  	}
docs: add value to the aggregation group and all subgroups in accordance with the groupKeys paths.