func()

in main.go [143:187]


func (a *ElasticsearchAdapter) newMetricsClients(adapterCfg *config.Config, tracer *apm.Tracer) ([]client.Interface, error) {
	dynamicClient, err := a.DynamicClient()
	if err != nil {
		return nil, fmt.Errorf("unable to construct dynamic dynamicClient: %w", err)
	}

	mapper, err := a.RESTMapper()
	if err != nil {
		return nil, fmt.Errorf("unable to construct dynamicClient REST mapper: %w", err)
	}

	var clients []client.Interface
	for _, clientCfg := range adapterCfg.MetricServers {
		switch clientCfg.ServerType {
		case elastisearchMetricServerType:
			esMetricClient, err := elasticsearch.NewElasticsearchClient(
				clientCfg,
				dynamicClient,
				mapper,
				tracer,
			)
			if err != nil {
				return nil, fmt.Errorf("unable to construct Elasticsearch dynamicClient: %w", err)
			}
			clients = append(clients, esMetricClient)
		case customMetricServerType:
			kubeClientCfg, err := a.ClientConfig()
			if err != nil {
				return nil, fmt.Errorf("unable to construct Kubernetes dynamicClient config: %w", err)
			}
			kubeClient, err := kubernetes.NewForConfig(kubeClientCfg)
			if err != nil {
				return nil, fmt.Errorf("unable to construct Kubernetes dynamicClient: %w", err)
			}
			metricApiClient, err := custom_api.NewMetricApiClientProvider(kubeClientCfg, mapper).NewClient(kubeClient, clientCfg)
			if err != nil {
				return nil, fmt.Errorf("unable to construct Kubernetes custom metric API dynamicClient: %w", err)
			}
			clients = append(clients, metricApiClient)
		}

	}

	return clients, nil
}