diff --git a/libraries/metrics/index.js b/libraries/metrics/index.js index 104b75623d..b84994b28c 100644 --- a/libraries/metrics/index.js +++ b/libraries/metrics/index.js @@ -238,7 +238,6 @@ module.exports.prom = promClient module.exports.register = promWrapper.registry module.exports.http = require('./http') -module.exports.mongodb = require('./mongodb') module.exports.open_sockets = require('./open_sockets') module.exports.event_loop = require('./event_loop') module.exports.memory = require('./memory') diff --git a/libraries/metrics/mongodb.js b/libraries/metrics/mongodb.js deleted file mode 100644 index bc0a910366..0000000000 --- a/libraries/metrics/mongodb.js +++ /dev/null @@ -1,196 +0,0 @@ -/* - * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns - * DS207: Consider shorter variations of null checks - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ -module.exports = { - monitor(mongodbRequirePath, logger) { - let mongodb, mongodbCore - try { - // for the v1 driver the methods to wrap are in the mongodb - // module in lib/mongodb/db.js - mongodb = require(mongodbRequirePath) - } catch (error) {} - - try { - // for the v2 driver the relevant methods are in the mongodb-core - // module in lib/topologies/{server,replset,mongos}.js - const v2Path = mongodbRequirePath.replace(/\/mongodb$/, '/mongodb-core') - mongodbCore = require(v2Path) - } catch (error1) {} - - const Metrics = require('./index') - - const monitorMethod = function (base, method, type) { - let _method - if (base == null) { - return - } - if ((_method = base[method]) == null) { - return - } - const arglen = _method.length - - const mongoDriverV1Wrapper = function (dbCommand, options, callback) { - let query - if (typeof callback === 'undefined') { - callback = options - options = {} - } - - const collection = dbCommand.collectionName - if (collection.match(/\$cmd$/)) { - // Ignore noisy command methods like authenticating, ismaster and ping - return _method.call(this, dbCommand, options, callback) - } - - if (dbCommand.query != null) { - query = Object.keys(dbCommand.query).sort().join('_') - } - - const timer = new Metrics.Timer('mongo', { collection, query }) - const start = new Date() - return _method.call(this, dbCommand, options, function () { - timer.done() - logger.debug( - { - query: dbCommand.query, - query_type: type, - collection, - 'response-time': new Date() - start, - }, - 'mongo request' - ) - return callback.apply(this, arguments) - }) - } - - const mongoDriverV2Wrapper = function (ns, ops, options, callback) { - let query - if (typeof callback === 'undefined') { - callback = options - options = {} - } - - if (ns.match(/\$cmd$/)) { - // Ignore noisy command methods like authenticating, ismaster and ping - return _method.call(this, ns, ops, options, callback) - } - - let key = `mongo-requests.${ns}.${type}` - if (ops[0].q != null) { - // ops[0].q - query = Object.keys(ops[0].q).sort().join('_') - key += '.' + query - } - - const timer = new Metrics.Timer(key) - const start = new Date() - return _method.call(this, ns, ops, options, function () { - timer.done() - logger.debug( - { - query: ops[0].q, - query_type: type, - collection: ns, - 'response-time': new Date() - start, - }, - 'mongo request' - ) - return callback.apply(this, arguments) - }) - } - - if (arglen === 3) { - return (base[method] = mongoDriverV1Wrapper) - } else if (arglen === 4) { - return (base[method] = mongoDriverV2Wrapper) - } - } - - monitorMethod( - mongodb != null ? mongodb.Db.prototype : undefined, - '_executeQueryCommand', - 'query' - ) - monitorMethod( - mongodb != null ? mongodb.Db.prototype : undefined, - '_executeRemoveCommand', - 'remove' - ) - monitorMethod( - mongodb != null ? mongodb.Db.prototype : undefined, - '_executeInsertCommand', - 'insert' - ) - monitorMethod( - mongodb != null ? mongodb.Db.prototype : undefined, - '_executeUpdateCommand', - 'update' - ) - - monitorMethod( - mongodbCore != null ? mongodbCore.Server.prototype : undefined, - 'command', - 'command' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.Server.prototype : undefined, - 'remove', - 'remove' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.Server.prototype : undefined, - 'insert', - 'insert' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.Server.prototype : undefined, - 'update', - 'update' - ) - - monitorMethod( - mongodbCore != null ? mongodbCore.ReplSet.prototype : undefined, - 'command', - 'command' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.ReplSet.prototype : undefined, - 'remove', - 'remove' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.ReplSet.prototype : undefined, - 'insert', - 'insert' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.ReplSet.prototype : undefined, - 'update', - 'update' - ) - - monitorMethod( - mongodbCore != null ? mongodbCore.Mongos.prototype : undefined, - 'command', - 'command' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.Mongos.prototype : undefined, - 'remove', - 'remove' - ) - monitorMethod( - mongodbCore != null ? mongodbCore.Mongos.prototype : undefined, - 'insert', - 'insert' - ) - return monitorMethod( - mongodbCore != null ? mongodbCore.Mongos.prototype : undefined, - 'update', - 'update' - ) - }, -} diff --git a/services/document-updater/app.js b/services/document-updater/app.js index 25f5a22781..de826c887e 100644 --- a/services/document-updater/app.js +++ b/services/document-updater/app.js @@ -20,13 +20,8 @@ const HttpController = require('./app/js/HttpController') const mongodb = require('./app/js/mongodb') const async = require('async') -const Path = require('path') const bodyParser = require('body-parser') -Metrics.mongodb.monitor( - Path.resolve(__dirname, '/node_modules/mongodb'), - logger -) Metrics.event_loop.monitor(logger, 100) const app = express()