OPTIONS
Note: You are currently viewing version 3.6 of the Node.js driver documentation. Click here for the latest version.

Connection Pool Monitoring

The Node.js driver 3.5.0 or higher features Connection Pool Monitoring events, allowing an application or tool to monitor the internal workings of the driver’s connection pool.

NOTE: Connection pool monitoring is only available when the “Unified Topology” is enabled

Overview of CMAP events

Event Description
connectionPoolCreated Emitted when a connection pool is created
connectionPoolClosed Emitted when a connection pool is closed, prior to server instance destruction
connectionCreated Emitted when a connection is created, but not necessarily when it is used for an operation
connectionReady Emitted after a connection has successfully completed a handshake, and is ready to be used for operations
connectionClosed Emitted when a connection is closed
connectionCheckOutStarted Emitted when an operation attempts to acquire a connection for execution
connectionCheckOutFailed Emitted when an operation fails to acquire a connection for execution
connectionCheckedOut Emitted when an operation successfully acquires a connection for execution
connectionCheckedIn Emitted when a connection is returned to the pool after operation execution
connectionPoolCleared Emitted when the connection pool’s generation count is increased

Simple Code Example

The following example demonstrates connecting to a replica set and printing out all CMAP related events:

const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:31000,localhost:31001/?replicaSet=rs';
const client = new MongoClient(url);
client.on('connectionPoolCreated', event => console.dir(event));
client.on('connectionPoolClosed', event => console.dir(event));
client.on('connectionCreated', event => console.dir(event));
client.on('connectionReady', event => console.dir(event));
client.on('connectionClosed', event => console.dir(event));
client.on('connectionCheckOutStarted', event => console.dir(event));
client.on('connectionCheckOutFailed', event => console.dir(event));
client.on('connectionCheckedOut', event => console.dir(event));
client.on('connectionCheckedIn', event => console.dir(event));
client.on('connectionPoolCleared', event => console.dir(event));
client.connect((err, client) => {
 if (err) throw err;
});

Example Events

connectionPoolCreated

ConnectionPoolCreatedEvent {
 time: 2020年01月14日T13:46:15.536Z,
 address: 'localhost:31003',
 options: { ... }
}

connectionPoolClosed

ConnectionPoolClosedEvent {
 time: 2020年01月14日T13:54:53.570Z,
 address: '127.0.0.1:34849'
}

connectionCreated

ConnectionCreatedEvent {
 time: 2020年01月14日T13:54:53.579Z,
 address: '127.0.0.1:34849',
 connectionId: 1
}

connectionReady

ConnectionReadyEvent {
 time: 2020年01月14日T13:54:53.579Z,
 address: '127.0.0.1:34849',
 connectionId: 1
}

connectionClosed

ConnectionClosedEvent {
 time: 2020年01月14日T13:54:53.564Z,
 address: '127.0.0.1:34849',
 connectionId: 2,
 reason: ...
}

connectionCheckOutStarted

ConnectionCheckOutStartedEvent {
 time: 2020年01月14日T13:49:59.271Z,
 address: 'localhost:31000'
}

connectionCheckOutFailed

ConnectionCheckOutFailedEvent {
 time: 2020年01月14日T13:49:59.271Z,
 address: 'localhost:31000'
 reason: ...
}

connectionCheckedOut

ConnectionCheckedOutEvent {
 time: 2020年01月14日T13:48:42.541Z,
 address: 'localhost:31000',
 connectionId: 1
}

connectionCheckedIn

ConnectionCheckedInEvent {
 time: 2020年01月14日T13:48:42.543Z,
 address: 'localhost:31000',
 connectionId: 1
}

connectionPoolCleared

ConnectionPoolClearedEvent {
 time: 2020年01月14日T13:58:11.437Z,
 address: '127.0.0.1:45005'
}

AltStyle によって変換されたページ (->オリジナル) /