명령 모니터링
개요
이 가이드에서는 드라이버가 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
옵션을 true
로 MongoClient
생성자에 전달합니다.
이벤트 설명
다음 명령 모니터링 이벤트 중 하나를 구독할 수 있습니다.
이벤트 이름 | 설명 |
---|---|
| 명령이 시작될 때 생성됩니다. |
| 명령이 성공할 때 생성됩니다. |
| 명령이 실패할 때 생성됩니다. |
이벤트 문서 예시
다음 섹션에서는 각 유형의 명령 모니터링 이벤트에 대한 샘플 출력을 보여줍니다.
commandStarted
CommandStartedEvent { requestId: 1534, databaseName: "app", commandName: "find", address: 'localhost:27017', connectionId: 812613, command: { find: { firstName: "Jane", lastName: "Doe" } } }
commandSucceeded
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 }