Docs Menu
Docs Home
/ /

クラスター モニタリング

このガイドでは、Rust ドライバーを使用して MongoDB インスタンス、レプリカセット、またはシャーディングされたクラスター内のトポロジー イベントを監視する方法を説明します。 ドライバーは、接続しているインスタンスまたはクラスターの状態が変更されたときに、サーバー検出とモニタリング(SDAM)イベントとも呼ばれるトポロジー イベントを作成します。

アプリケーション内のトポロジーの変更に関する情報を使用することも、クラスターの変更を監視して、アプリケーションにどのように影響するかをより詳しく知ることもできます。

このガイドには、次のセクションが含まれています。

  • イベントの説明では、ドライバーが生成できる SDAM イベントについて説明します

  • イベント サブスクリプションの例」では、SDAM イベントをサブスクライブする方法を示すサンプル コードが提供されています

  • サンプルイベント ドキュメントは、各 SDAM イベントのサンプルを提供します

  • 追加情報では、このガイドで言及されている型とメソッドのリソースとAPIドキュメントへのリンクを提供します

次の SDAM イベントの 1 つ以上にサブスクライブできます。

イベント名
説明

レプリカセット ノードがセカンダリからプライマリに変更された場合など、インスタンス状態が変更されたときに作成されます。

レプリカセット ノードなどの インスタンスへの接続が開いたときに作成されます。

レプリカセット ノードなどのインスタンスへの接続が閉じたときに作成されます。

新しいプライマリの選出がある場合や mongosプロキシが 切断 された場合など、トポロジーの説明が変更されたときに作成されます。

ドライバーが インスタンスに接続しようとする前に作成されます。

トポロジー内のすべてのインスタンス接続が閉じた後に作成されます。

ドライバーが インスタンスにhelloコマンドを発行する前に作成されます。

helloコマンドが MongoDB インスタンスから正常に返されたときに作成されます。

MongoDB インスタンスに対するhelloコマンドが成功した応答を返さない場合に作成されます。

アプリケーションでサブスクライブすることで、1 つ以上の SDAM イベントにアクセスできます。 次の例では MongoDB 配置に接続し、 ServerOpeningEventイベントタイプにサブスクライブします。

struct ServerOpenHandler;
impl SdamEventHandler for ServerOpenHandler {
fn handle_server_opening_event(&self, event: ServerOpeningEvent) {
eprintln!("Server opening: {:?}", event);
}
}
let handler: Arc<dyn SdamEventHandler> = Arc::new(ServerOpenHandler);
client_options.sdam_event_handler = Some(handler);
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ドキュメントを参照してください。

戻る

Async & Sync APIs