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
}