code: def _process_cache(self, d, path=()):
          
          for k, v in d.iteritems():
              if not isinstance(v, dict):
                  self.metrics.append((path + (k,), v))
              else:
                  self._process_cache(v, path + (k,))
docs: Recusively walk a nested recon cache dict to obtain path/values