モニタリング
Overview
このページでは、 MongoDB .NET/ C#ドライバーで監視を構成する方法を学習できます。モニタリングとは、アプリケーションの実行時にアプリケーションのパフォーマンスとリソース使用量に関する情報を収集するプロセスです。これにより、アプリケーションの設計およびデバッグ 時に、情報に基づいた決定を行うことができます。
ドライバーは、 イベントを発行してアプリケーションに関する情報を提供します。これらのドライバー イベントをサブスクライブして、アプリケーションを監視できます。
イベントの種類
ドライバーが発行するイベントの種類は、実行されている操作によって異なります。次の表では、ドライバーが発行するイベントの種類を説明しています。
eventType | 説明 |
---|---|
コマンド イベント | |
サーバー検出とモニタリング(SDAM)イベント | MongoDBデプロイの状態の変更に関連するイベント。 |
接続プール イベント | ドライバーによって保持される接続プールに関連するイベント。 |
ドライバーが発行するイベントの完全なリストについては、 MongoDB.Driver.Core.Events 名前空間のAPIドキュメントを参照してください。
イベントへのサブスクライブ
イベントをモニタリングするには、MongoClient
インスタンスで listner メソッドをサブスクライブする必要があります。次の手順では、イベントをサブスクライブする方法について説明します。
MongoClientSettings
オブジェクトを作成します。ClusterBuilder
オブジェクトを受け入れる Lambda 関数に、MongoClientSettings
オブジェクトのClusterConfigurator
プロパティを設定します。Lambda 関数で、サブスクライブするイベントごとに
ClusterBuilder
オブジェクトのSubscribe<TEvent>()
メソッドを呼び出します。TEvent
をイベントタイプに置き換えます。イベントハンドラー メソッドをSubscribe<TEvent>()
メソッドの引数として渡します。
次のコード例は、ClusterOpenedEvent
、ServerHeartbeatSucceededEvent
、ConnectionPoolReadyEvent
をサブスクライブする方法を示しています。この例では、ClusterEventHandler
、 HeartbeatEventHandler
、および ConnectionPoolEventHandler
メソッドがコードの他の場所で定義されていることを前提としています。
var clientSettings = MongoClientSettings.FromConnectionString(MongoConnectionString); clientSettings.ClusterConfigurator = clusterBuilder => { clusterBuilder .Subscribe<ClusterOpenedEvent>(ClusterEventHandler) .Subscribe<ServerHeartbeatSucceededEvent>(HeartbeatEventHandler) .Subscribe<ConnectionPoolReadyEvent>(ConnectionPoolEventHandler); };
Tip
任意の数のイベントをサブスクライブすることができ、これらのイベントはさまざまなタイプになります。
API ドキュメント
ドライバー内のイベントを監視するために使用されるメソッドとクラスの詳細については、次のAPIドキュメントを参照してください。