apminsight
Version:
monitor nodejs applications
56 lines (50 loc) • 1.58 kB
JavaScript
var constants = require("./../../constants");
var utils = require("./../../util/utils");
var logger = require("./../../util/logger");
var componentName = "MYSQL";
var moduleInfo = {
functions: [
{
functionName: [
"Connection.prototype.query",
"Connection.prototype.execute"
],
component: componentName,
trackerType: constants.dbTracker,
extractInfo: getQuery
}
]
};
function getQuery(invoker, params, returnObj, tracker, asynOpnInfo) {
var info = getRemoteHost(invoker, params);
var th;
if (asynOpnInfo && asynOpnInfo.curTxn) {
th = utils.getGenericThreshold(asynOpnInfo.curTxn.getUrl());
} else {
th = apmInsightAgentInstance.getThreshold();
}
if (th.isSqlCaptureEnabled() && params && params.length > 0) {
var queryInfo = params[0];
if (typeof queryInfo === "string") {
info.query = queryInfo;
} else if (typeof queryInfo === "object") {
info.query = queryInfo.sql;
}
}
tracker.updateInfo(info);
}
/* eslint-disable no-unused-vars */
function getRemoteHost(invoker, params) {
var info = {};
try {
if (invoker && invoker.config.host && invoker.config.port) {
info.host = invoker.config.host;
info.port = invoker.config.port;
}
} catch (e) {
logger.error("Error occured while getting host details in mysql2");
}
return info;
}
/* eslint-enable no-unused-vars */
module.exports = moduleInfo;