docs: def _cache_metrics_metadata(self, instance):
          """
          Get all the performance counters metadata meaning name/group/description...
          from the server instance, attached with the corresponding ID
          """
          # ## <TEST-INSTRUMENTATION>
          t = Timer()
          # ## </TEST-INSTRUMENTATION>
  
          i_key = self._instance_key(instance)
          self.metadata_cache.init_instance(i_key)
          self.log.info("Warming metrics metadata cache for instance {}".format(i_key))
          server_instance = self._get_server_instance(instance)
          perfManager = server_instance.content.perfManager
          custom_tags = instance.get('tags', [])
  
          new_metadata = {}
          metric_ids = []
          # Use old behaviour with metrics to collect defined by our constants
          if self.in_compatibility_mode(instance, log_warning=True):
              for counter in perfManager.perfCounter:
                  metric_name = self.format_metric_name(counter, compatibility=True)
                  new_metadata[counter.key] = {'name': metric_name, 'unit': counter.unitInfo.key}
                  # Build the list of metrics we will want to collect
                  if instance.get("all_metrics") or metric_name in BASIC_METRICS:
                      metric_ids.append(vim.PerformanceManager.MetricId(counterId=counter.key, instance="*"))
          else:
              collection_level = instance.get("collection_level", 1)
              for counter in perfManager.QueryPerfCounterByLevel(collection_level):
                  new_metadata[counter.key] = {"name": self.format_metric_name(counter), "unit": counter.unitInfo.key}
                  # Build the list of metrics we will want to collect
                  metric_ids.append(vim.PerformanceManager.MetricId(counterId=counter.key, instance="*"))
  
          self.log.info("Finished metadata collection for instance {}".format(i_key))
          # Reset metadata
          self.metadata_cache.set_metadata(i_key, new_metadata)
          self.metadata_cache.set_metric_ids(i_key, metric_ids)
  
          self.cache_config.set_last(CacheConfig.Metadata, i_key, time.time())
  
          # ## <TEST-INSTRUMENTATION>
          self.histogram('datadog.agent.vsphere.metric_metadata_collection.time', t.total(), tags=custom_tags)