UNPKG

apminsight

Version:

monitor nodejs applications

56 lines (50 loc) 1.74 kB
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;