コマンド監視
Overview
このガイドでは、ドライバーによって MongoDB 配置に送信されたコマンドの成功または失敗を監視する方法を説明します。
次のセクションでは、アプリケーションでコマンドのステータスを記録し、これらのイベントで提供される情報を調べる方法を示します。
イベント サブスクリプションの例
アプリケーションでサブスクライブすることで、ドライバーを使用して 1 つ以上のコマンド モニタリング イベントにアクセスできます。 次の例は、レプリカセットへの接続と、MongoDB 配置によって作成されたコマンド監視イベントの 1 つへのサブスクライブを示しています。
/* 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 | コマンドが開始されたときに作成されます。 |
commandSucceeded | コマンドが成功したときに作成されます。 |
commandFailed | コマンドが失敗した場合に作成されます。 |
イベント ドキュメントの例
次のセクションでは、コマンド モニタリング イベントの各タイプのサンプル出力を示します。
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 } }
commandFailed
CommandFailedEvent { requestId: 1534, commandName: "find", address: 'localhost:27017', connectionId: 812613, failure: Error("something failed"), duration: 11 }