in lib/instrumentation/modules/elasticsearch.js [25:64]
function getTargetUrlFromTransportConfig(config) {
const transportHosts = config ? config.host || config.hosts : null;
if (!transportHosts) {
return null;
}
let firstTransportHost = Array.isArray(transportHosts)
? transportHosts[0]
: transportHosts;
if (!firstTransportHost) {
return null;
}
if (typeof firstTransportHost === 'string') {
// "example.com:42" or "someprotocol://example.com:42" or
// "someprotocol://example.com".
if (!startsWithProtocolRE.test(firstTransportHost)) {
firstTransportHost = 'http://' + firstTransportHost;
}
try {
return new URL(firstTransportHost);
} catch (_err) {
return null;
}
} else if (typeof firstTransportHost === 'object') {
let proto = firstTransportHost.protocol || 'http:';
if (!proto.endsWith(':')) {
proto += ':';
}
const hostname = firstTransportHost.hostname || firstTransportHost.host;
const port = firstTransportHost.port || DEFAULT_PORT;
try {
return new URL(proto + '//' + hostname + ':' + port);
} catch (_ignoredErr) {
return null;
}
}
return null;
}