in internal/elasticsearch/client.go [68:116]
func NewClientParams(args ClientParams) (*Client, error) {
if args.Config == nil {
return nil, errConfigMissing
}
transport := args.Transport
if transport == nil {
httpTransport, err := NewHTTPTransport(args.Config)
if err != nil {
return nil, err
}
transport = httpTransport
}
addrs, err := addresses(args.Config)
if err != nil {
return nil, err
}
headers := make(http.Header, len(args.Config.Headers)+2)
if len(args.Config.Headers) > 0 {
for k, v := range args.Config.Headers {
headers.Set(k, v)
}
}
headers.Set("X-Elastic-Product-Origin", "observability")
if headers.Get("User-Agent") == "" {
headers.Set("User-Agent", userAgent)
}
var apikey string
if args.Config.APIKey != "" {
apikey = base64.StdEncoding.EncodeToString([]byte(args.Config.APIKey))
}
return elastictransport.New(elastictransport.Config{
APIKey: apikey,
Username: args.Config.Username,
Password: args.Config.Password,
URLs: addrs,
Header: headers,
Transport: apmelasticsearch.WrapRoundTripper(transport),
MaxRetries: args.Config.MaxRetries,
RetryBackoff: exponentialBackoff(args.Config.Backoff),
RetryOnError: args.RetryOnError,
RetryOnStatus: retryableStatuses,
})
}