クラスター モニタリング
項目一覧
Overview
このガイドでは、Rust ドライバーを使用して MongoDB インスタンス、レプリカセット、またはシャーディングされたクラスター内のトポロジー イベントを監視する方法を説明します。 ドライバーは、接続しているインスタンスまたはクラスターの状態が変更されたときに、サーバー検出とモニタリング(SDAM)イベントとも呼ばれるトポロジー イベントを作成します。
アプリケーション内のトポロジーの変更に関する情報を使用することも、クラスターの変更を監視して、アプリケーションにどのように影響するかをより詳しく知ることもできます。
このガイドには、次のセクションが含まれています。
イベントの説明では、ドライバーが生成できる SDAM イベントについて説明します。
「イベント サブスクリプションの例」 では、SDAM イベントをサブスクライブする方法を示すサンプル コードが提供されています。
サンプルイベント ドキュメントでは、各 SDAM イベントのサンプルが提供されています。
追加情報では、このガイドで言及されている型とメソッドのリソースとAPIドキュメントへのリンクを提供します。
イベントの説明
次の SDAM イベントを監視できます。
イベント名 | 説明 |
---|---|
レプリカセット ノードがセカンダリからプライマリに変更された場合など、インスタンス状態が変更されたときに作成されます。 | |
レプリカセット ノードなどの インスタンスへの接続が開いたときに作成されます。 | |
レプリカセット ノードなどのインスタンスへの接続が閉じたときに作成されます。 | |
新しいプライマリの選出がある場合や mongos プロキシが 切断 された場合など、トポロジーの説明が変更されたときに作成されます。 | |
ドライバーが インスタンスに接続しようとする前に作成されます。 | |
トポロジー内のすべてのインスタンス接続が閉じた後に作成されます。 | |
ドライバーが インスタンスに hello コマンドを発行する前に作成されます。 | |
hello コマンドが MongoDB インスタンスから正常に返されたときに作成されます。 | |
MongoDB インスタンスに対する hello コマンドが成功した応答を返さない場合に作成されます。 |
イベント モニタリングの例
SDAM イベントを監視するには、 sdam_event_handler
クライアント オプションの値としてEventHandler
インスタンスを割り当てます。 EventHandler
すべての SDAM イベントを処理するcallback()
async_callback()
を構築するには、 メソッドまたは メソッドを使用します。
次の例では、MongoDB 配置に接続し、クライアントに SDAM イベントを監視するように指示して、各イベントを出力します。
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.sdam_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
イベント ドキュメントの例
次のセクションは、各 SDAM イベントのタイプごとのサンプル出力を示しています。
Server Description ChangedEvent
ServerDescriptionChangedEvent { address: ..., topology_id: ..., previous_description: ..., new_description: ..., }
ServerOpenEvent
ServerOpeningEvent { address: ..., topology_id: ..., }
ServerClosedEvent
ServerClosedEvent { address: ..., topology_id: ..., }
トポロジーの説明を変更したイベント
TopologyDescriptionChangedEvent { topology_id: ..., previous_description: ..., new_description: ..., }
トポロジーを開くイベント
TopologyOpeningEvent { topology_id: ..., }
トポロジーが閉じたイベント
TopologyClosedEvent { topology_id: ..., }
ServerHeartbeatStartedEvent
ServerHeartbeatStartedEvent { server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
ServerハートビートSucceededEvent
ServerHeartbeatSucceededEvent { duration: ..., reply: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
ServerハートビートFailedEvent
ServerHeartbeatFailedEvent { duration: ..., failure: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
詳細情報
MongoDB 配置のモニタリングの詳細については、「 MongoDB をモニタリングする方法 」に関する記事を参照してください。
MongoDB への接続の詳細については、「 接続ガイド 」を参照してください。
API ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。