Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Rust ドライバー
/ /

クラスター モニタリング

このガイドでは、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 イベントのタイプごとのサンプル出力を示しています。

ServerDescriptionChangedEvent {
address: ...,
topology_id: ...,
previous_description: ...,
new_description: ...,
}
ServerOpeningEvent {
address: ...,
topology_id: ...,
}
ServerClosedEvent {
address: ...,
topology_id: ...,
}
TopologyDescriptionChangedEvent {
topology_id: ...,
previous_description: ...,
new_description: ...,
}
TopologyOpeningEvent {
topology_id: ...,
}
TopologyClosedEvent {
topology_id: ...,
}
ServerHeartbeatStartedEvent {
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}
ServerHeartbeatSucceededEvent {
duration: ...,
reply: ...,
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}
ServerHeartbeatFailedEvent {
duration: ...,
failure: ...,
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}

MongoDB 配置のモニタリングの詳細については、「 MongoDB をモニタリングする方法 」に関する記事を参照してください。

MongoDB への接続の詳細については、「 接続ガイド 」を参照してください。

このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

モニタリング