func NewElasticsearchClient()

in pkg/client/elasticsearch/client.go [112:150]


func NewElasticsearchClient(
	metricServerCfg config.MetricServer,
	client dynamic.Interface,
	mapper apimeta.RESTMapper,
	tracer *apm.Tracer,
) (*MetricsClient, error) {
	logger := log.ForPackage("elasticsearch")

	tlsConfig, err := newTLSClientConfig(logger, metricServerCfg.ClientConfig.TLSClientConfig)
	if err != nil {
		return nil, err
	}
	transport := &http.Transport{
		TLSClientConfig: tlsConfig,
	}

	cfg := esv8.Config{
		Addresses: []string{os.ExpandEnv(metricServerCfg.ClientConfig.Host)},
		Transport: apmelasticsearch.WrapRoundTripper(transport),
	}

	if metricServerCfg.ClientConfig.AuthenticationConfig != nil {
		cfg.Username = os.ExpandEnv(metricServerCfg.ClientConfig.AuthenticationConfig.Username)
		cfg.Password = os.ExpandEnv(metricServerCfg.ClientConfig.AuthenticationConfig.Password)
	}

	esClient, err := esv8.NewClient(cfg)
	if err != nil {
		return nil, err
	}
	return &MetricsClient{
		logger:          logger,
		Client:          esClient,
		metricServerCfg: metricServerCfg,
		client:          client,
		mapper:          mapper,
		tracer:          tracer,
	}, nil
}