def _compute_needed_metrics(self, instance, available_metrics):
        if instance.get('all_metrics', False):
            return available_metrics

        i_key = self._instance_key(instance)
        wanted_metrics = []
        # Get only the basic metrics
        for metric in available_metrics:
            # No cache yet, skip it for now
            if (i_key not in self.metrics_metadata
                    or metric.counterId not in self.metrics_metadata[i_key]):
                continue
            if self.metrics_metadata[i_key][metric.counterId]['name'] in BASIC_METRICS:
                wanted_metrics.append(metric)

        return wanted_metrics
Given an invocation string, determine which part is the path, the program,
dataset/ETHPy150Open serverdensity/sd-agent/checks.d/vsphere.py/VSphereCheck._compute_needed_metrics--crossover with--dataset/ETHPy150Open priestc/giotto/giotto/programs/__init__.py/Manifest.parse_invocation