1.3.0 • Published 5 years ago

mongodb-watcher v1.3.0

Weekly downloads
75
License
-
Repository
github
Last release
5 years ago

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

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago

0.1.2

8 years ago

0.1.1

8 years ago

0.1.0

8 years ago