apminsight
Version:
monitor nodejs applications
56 lines (50 loc) • 1.74 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);
let isSqlCaptureEnabled = apmInsightAgentInstance.getConfig().isDataExporterEnabled();
if (!isSqlCaptureEnabled) {
let txn = asynOpnInfo && asynOpnInfo.curTxn;
const threshold = txn ? utils.getGenericThreshold(txn.getUrl()) : apmInsightAgentInstance.getThreshold();
isSqlCaptureEnabled = threshold.isSqlCaptureEnabled();
}
if (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;