AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

クラスター モニタリング

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

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

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

次の 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ドキュメントを参照してください。