Docs Menu
Docs Home
/ / /
Node.js 드라이버
/ /

명령 모니터링

이 페이지의 내용

  • 개요
  • 이벤트 구독 예시
  • 이벤트 설명
  • 이벤트 문서 예시

이 가이드에서는 드라이버가 MongoDB 배포로 보낸 명령의 성공 또는 실패를 모니터링하는 방법을 보여 줍니다.

다음 섹션에서는 애플리케이션에서 명령 상태를 기록하고 이러한 이벤트에서 제공된 정보를 탐색하는 방법을 보여 줍니다.

애플리케이션에서 이벤트를 구독하면 해당 드라이버를 사용하여 하나 이상의 명령 모니터링 이벤트에 액세스할 수 있습니다. 다음 예시에서는 복제본 세트에 연결하고 MongoDB 배포에서 생성된 명령 모니터링 이벤트 중 하나를 구독하는 방법을 보여줍니다.

/* Subscribe to an event */
const { MongoClient } = require("mongodb");
// Replace the following with your MongoDB deployment's connection string
const uri = "mongodb+srv://<clusterUrl>/?replicaSet=rs&writeConcern=majority";
const client = new MongoClient(uri, { monitorCommands:true });
// Replace <event name> with the name of the event you are subscribing to
const eventName = "<event name>";
// Subscribe to a specified event and print a message when the event is received
client.on(eventName, event => console.log(event));
async function run() {
try {
// Establish and verify connection to the "admin" database
await client.db("admin").command({ ping: 1 });
console.log("Connected successfully");
} finally {
// Close the database connection on completion or error
await client.close();
}
}
run().catch(console.dir);

참고

명령 모니터링은 기본적으로 비활성화되어 있습니다. 명령 모니터링을 사용하려면 monitorCommands 옵션을 trueMongoClient 생성자에 전달합니다.

다음 명령 모니터링 이벤트 중 하나를 구독할 수 있습니다.

이벤트 이름
설명

commandStarted

명령이 시작될 때 생성됩니다.

commandSucceeded

명령이 성공할 때 생성됩니다.

commandFailed

명령이 실패할 때 생성됩니다.

다음 섹션에서는 각 유형의 명령 모니터링 이벤트에 대한 샘플 출력을 보여줍니다.

CommandStartedEvent {
requestId: 1534,
databaseName: "app",
commandName: "find",
address: 'localhost:27017',
connectionId: 812613,
command: {
find: { firstName: "Jane", lastName: "Doe" }
}
}
CommandSucceededEvent {
requestId: 1534,
commandName: "find",
address: 'localhost:27017',
connectionId: 812613,
duration: 15,
reply: {
cursor: {
firstBatch: [
{
_id: ObjectId("5e8e2ca217b5324fa9847435"),
firstName: "Jane",
lastName: "Doe"
}
],
_id: 0,
ns: "app.users"
},
ok: 1,
operationTime: 1586380205
}
}
CommandFailedEvent {
requestId: 1534,
commandName: "find",
address: 'localhost:27017',
connectionId: 812613,
failure: Error("something failed"),
duration: 11
}

돌아가기

클러스터