コマンド監視
Overview
このガイドでは、Go ドライバーを使用して、ドライバーが MongoDB 配置に送信する コマンドの結果を監視する方法を説明します。
アプリケーション内のコマンド イベントに関する情報を使用して、クエリ パフォーマンスの変化を理解し、ボトルネックを解決することができます。
イベントにサブスクライブ
アプリケーションでコマンド イベントをサブスクライブすることで、その詳細にアクセスできます。 次の例では、 CommandMonitor
をインスタンス化し、配置に接続して、 CommandStartedEvent
イベントをサブスクライブする方法を示しています。
var eventArray []*event.CommandStartedEvent cmdMonitor := &event.CommandMonitor{ Started: func(ctx context.Context, e *event.CommandStartedEvent) { eventArray = append(eventArray, e) }, } clientOpts := options.Client().ApplyURI(uri).SetMonitor(cmdMonitor) client, err := mongo.Connect(context.TODO(), clientOpts)
イベントの説明
次のコマンド モニタリング イベントの 1 つ以上にサブスクライブできます。
イベント名 | 説明 |
---|---|
CommandStartedEvent | コマンドの開始時に作成されます。 |
CommandSucceededEvent | コマンドが成功したときに作成されます。 |
CommandFailedEvent | コマンドが成功しない場合に作成されます。 |
イベント ドキュメントの例
次のセクションでは、コマンド モニタリング イベントの各タイプのサンプル出力を示します。
コマンド開始
*event.CommandStartedEvent { "Command": "...", "DatabaseName": "...", "CommandName": "...", "RequestID": ..., "ConnectionID": "...", "ServerConnectionID": ..., "ServerConnectionID64": ..., "ServiceID": "..." }
コマンドSucceededEvent
*event.CommandSucceededEvent { "DurationNanos": 38717583, "Duration": 38717583, "CommandName": "insert", "RequestID": 13, "ConnectionID": "...", "ServerConnectionID": ..., "ServerConnectionID64": ..., "ServiceID": null, "Reply": "..." }
コマンドFailedEvent
*event.CommandFailedEvent { "DurationNanos": 38717583, "Duration": 38717583, "CommandName": "insert", "RequestID": 13, "ConnectionID": "...", "ServerConnectionID": ..., "ServerConnectionID64": ..., "ServiceID": null, "Failure": "..." }
詳細情報
デプロイのモニタリングの詳細については、「 MongoDB をモニタリングするMongoDB MongoDB」 に関する記事をご覧ください。
MongoDB 操作の実行の詳細については、 CRUD 操作のガイドをご覧ください。
API ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。
コマンドモニター 型
コマンド開始 type
コマンドSucceededEvent type
コマンドFailedEvent type