Overview
このガイドでは、 MongoDB Rustドライバーで監視を設定および構成する方法を説明します。
モニタリングは実行中のプログラムのアクティビティに関する情報を収集します。この情報はアプリケーションパフォーマンス マネジメント ライブラリで使用できます。
Rustドライバーを監視すると、ドライバーのリソース使用量とパフォーマンスを理解できます。この情報は、アプリケーション を設計およびデバッグする際に、情報に基づいた決定を行うのに役立ちます。
このガイドでは、次のタスクを実行する方法について説明します。
コマンド イベントの監視
Rustドライバーを使用して、ドライバーがMongoDBデプロイに送信する コマンドの結果を監視できます。
アプリケーション内のコマンド イベントに関する情報を使用するか、コマンドをモニターして、ドライバーがそれらを実行する方法の詳細を学習します。
イベントの説明
次のコマンド イベントを監視できます。
イベント名 | 説明 |
|---|---|
コマンドの開始時に作成されます。 | |
コマンドが成功したときに作成されます。 | |
コマンドが成功しない場合に作成されます。 |
イベント サブスクリプションの例
command_event_handlerクライアントオプションの値として EventHandlerインスタンスを割り当てて、コマンド イベントを監視します。すべてのコマンド イベントを処理する EventHandler を構築するには、callback() メソッドまたは async_callback() メソッドを使用します。
次の例では、MongoDB 配置に接続し、クライアントに コマンド イベントを監視するように指示して、各イベントを出力します。
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.command_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
サーバー検出とモニタリング(SDAM)イベントの監視
Rustドライバーを使用して、 MongoDBインスタンス、レプリカセット、またはシャーディングされたクラスター内のトポロジーイベントを監視できます。ドライバーは、インスタンスまたはクラスターの状態が変化したときに、サーバー検出とモニタリング(SDAM)イベントとも呼ばれるトポロジーイベントを作成します。
アプリケーションのトポロジーの変更に関する情報を使用するか、クラスターの変更をモニターして、アプリケーションにどのように影響するかについて詳しく学びます。
イベントの説明
次の SDAM イベントを監視できます。
イベント名 | 説明 |
|---|---|
レプリカセット ノードがセカンダリからプライマリに変更された場合など、インスタンス状態が変更されたときに作成されます。 | |
レプリカセット ノードなどの インスタンスへの接続が開いたときに作成されます。 | |
レプリカセット ノードなどのインスタンスへの接続が閉じたときに作成されます。 | |
新しいプライマリの選出や | |
ドライバーが インスタンスに接続しようとする前に作成されます。 | |
トポロジー内のすべてのインスタンス接続が閉じた後に作成されます。 | |
ドライバーが インスタンスに | |
| |
MongoDB インスタンスに対する |
イベント サブスクリプションの例
sdam_event_handlerクライアントオプションの値として EventHandlerインスタンスを割り当てて、SDAM イベントを監視します。すべての SDAM イベントを処理する EventHandler を構築するには、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
接続プール イベントの監視
Rustドライバーを使用して、ドライバーの接続プールを監視できます。接続プールは、ドライバーがMongoDBインスタンスと維持するオープン コントロール プロトコル(TCP)接続のセットです。接続プールを使用すると、アプリケーションで作成する必要がある新しい接続の数が減るため、アプリケーションの実行が高速化されます。
アプリケーション内の接続プールの変更に関する情報を使用するか、接続プールを監視して、ドライバーが接続を使用する方法の詳細を学習します。
イベントの説明
次の接続プール イベントを監視できます。
イベント名 | 説明 |
|---|---|
接続プールが作成されたときに作成されます。 | |
接続プールが準備できたときに作成されます。 | |
接続プールがクリアされたときに作成されます。 | |
サーバー インスタンスが破棄される前に、接続プールが閉じられたときに作成されます。 | |
接続が作成されたときに作成されますが、操作に使用される場合は必ずしも作成されません。 | |
接続がハンドシェイクを正常に完了し、操作の準備が整った後に作成されます。 | |
接続が閉じられたときに作成されます。 | |
操作が実行用接続を取得しようとしたときに作成されます。 | |
操作が実行用接続を取得できない場合に作成されます。 | |
操作が実行用接続を正常に取得したときに作成されます。 | |
操作が実行された後に接続がプールにチェックバックされたときに作成されます。 |
イベント サブスクリプションの例
cmap_event_handlerクライアントオプションの値として EventHandlerインスタンスを割り当てて、接続プールイベントを監視します。すべての接続プールイベントを処理する EventHandler を構築するには、callback() メソッドまたは async_callback() メソッドを使用します。
次の例では、MongoDB 配置に接続し、クライアントに接続プール イベントを監視するように指示して、各イベントを出力します。
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.cmap_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
詳細情報
MongoDB 配置のモニタリングの詳細については、「 MongoDB をモニタリングする方法 」に関する記事を参照してください。
アプリケーションのパフォーマンス向上の詳細については、 パフォーマンスに関する考慮事項 のガイドをご覧ください。
API ドキュメント
このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。