apminsight
Version:
monitor nodejs applications
51 lines (46 loc) • 1.59 kB
JavaScript
var constants = require("./../../constants"); //No I18N
var url = require("url");
var logger = require("./../../util/logger");
var componentName = "ELASTICSEARCH"; //No I18N
var moduleInfo = {
functions: [
{
functionName: "Transport.prototype.request",
component: componentName,
trackerType: constants.esTracker,
extractInfo: extractHostInfo
}
]
};
/* eslint-disable no-unused-vars */
function extractHostInfo(invoker, params, returnObj, tracker) {
var info = {};
info.params = params;
try {
if (
invoker &&
invoker.connectionPool &&
invoker.connectionPool.connections &&
invoker.connectionPool.connections[0].url
) {
var urlInfo = invoker.connectionPool.connections[0].url;
info.host = urlInfo.hostname
? urlInfo.protocol + "//" + urlInfo.hostname
: "";
info.port = urlInfo.port ? urlInfo.port : 80;
} else if (invoker && invoker._config && invoker._config.host) {
var hostInfo = invoker._config.host;
var { protocol, hostname, port } = new url.URL(hostInfo);
info.host = hostname ? protocol + "//" + hostname : "";
info.port = port ? port : 80;
}
} catch (err) {
logger.error(
"Error while getting the host details in Elastic search component. :: ",
err
);
}
tracker.updateInfo(info);
}
/* eslint-enable no-unused-vars */
module.exports = moduleInfo;