Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Monitor your mongodb connection for bad queries in the client-side.

Installation

npm i mongodb-watcher

Usage

//connect to mongodb
const watcher = new MongoWatcher(db, {
  longCursorThreshold:  100,
  largeInsertThreshold: 1024 * 30,
  largeFetchThreshold:  1024 * 30
});

watcher.on('long.cursor.enumeration', (data) => {
  logger.error(`Detected bad query over ${data.collection} returning ${data.count} documents. \n ${data.stack}`);
});

db.collection('apples').find().toArray((apples) => {
  res.json(apples);
});

Events

long.cursor.enumeration

This event is emitted when a cursor is enumerated (.toArray) returning an array of documents with more than longCursorThreshold (defaults 100).

The data of the event contains:

  • collection: the name of the collection
  • count: the number of documents returned or inserted
  • stack: an stack trace of to identify where the call was made
  • cmd: it contains the query, limit, skip, readPreference, slaveOk, etc.

large.document.insert

This event is emitted when calling .insert([]) or .save with a document of size greater than bigInsertThreshold (defaults 30k).

  • collection: the name of the collection
  • documentId: the document._id value
  • size: the size of the doc in bytes
  • cmd: it contains the query, limit, skip, readPreference, slaveOk, etc
  • stack: an stack trace of to identify where the call was made

large.document.fetch

This event is emitted when retrieving a big document from the database.

  • collection: the name of the collection
  • documentId: the document._id value
  • size: the size of the doc in bytes
  • stack: an stack trace of to identify where the call was made

More events are welcome.

License

MIT 2016 . JOSE F. ROMANIELLO

About

Monitor your mongodb connection for bad queries.

Resources

License

Packages

No packages published