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 ) ; } } }
add value to the aggregation group and all subgroups in accordance with the groupKeys paths .