Docs Menu

モニタリング

このページでは、 MongoDB .NET/ C#ドライバーで監視を構成する方法を学習できます。モニタリングとは、アプリケーションの実行時にアプリケーションのパフォーマンスとリソース使用量に関する情報を収集するプロセスです。 これにより、アプリケーションの設計およびデバッグ 時に、情報に基づいた決定を行うことができます。

ドライバーは、 イベントを発行してアプリケーションに関する情報を提供します。 これらのドライバー イベントをサブスクライブして、アプリケーションを監視できます。

注意

イベント ログ

このページでは、コード内でアプリケーションを監視する方法について説明します。 この情報を外部ログにレコード方法については、「 ログ記録 」を参照してください。

ドライバーが発行するイベントの種類は、実行されている操作によって異なります。 次の表では、ドライバーが発行するイベントの種類を説明しています。

eventType
説明

コマンド イベント

MongoDBデータベースコマンドに関連するイベント(findinsertdeletecount など)。 .NET/ C#ドライバーを使用してデータベースコマンドを実行する方法については、「 データベースコマンドの実行 」を参照してください。MongoDBデータベースコマンドの詳細については、 MongoDB Serverマニュアルの「 データベースコマンド 」を参照してください。

セキュリティ対策として、ドライバーは一部のコマンド イベントの内容を編集します。 これにより、これらのコマンド イベントに含まれる機密情報が保護されます。

サーバー検出とモニタリング(SDAM)イベント

MongoDBデプロイの状態の変更に関連するイベント。

接続プール イベント

ドライバーによって保持される接続プールに関連するイベント。

ドライバーが発行するイベントの完全なリストについては、 MongoDB.Driver.Core.Events 名前空間のAPIドキュメントを参照してください。

イベント をモニタリングするには、MongoClientインスタンスで listner メソッドをサブスクライブする必要があります。 次の手順では、イベントをサブスクライブする方法について説明します。

  1. MongoClientSettingsオブジェクトを作成します。

  2. ClusterBuilderオブジェクトを受け入れる Lambda 関数に、MongoClientSettingsオブジェクトの ClusterConfiguratorプロパティを設定します。

  3. Lambda 関数で、サブスクライブするイベントごとに ClusterBuilderオブジェクトの Subscribe<TEvent>() メソッドを呼び出します。 TEvent をイベントタイプに置き換えます。 イベントハンドラー メソッドを Subscribe<TEvent>() メソッドの引数として渡します。

次のコード例は、 ClusterOpenedEventServerHeartbeatSucceededEventConnectionPoolReadyEvent をサブスクライブする方法を示しています。 この例では、 ClusterEventHandlerHeartbeatEventHandlerConnectionPoolEventHandler メソッドがコードの他の場所で定義されていることを前提としています。

var clientSettings = MongoClientSettings.FromConnectionString(MongoConnectionString);
clientSettings.ClusterConfigurator = clusterBuilder =>
{
clusterBuilder
.Subscribe<ClusterOpenedEvent>(ClusterEventHandler)
.Subscribe<ServerHeartbeatSucceededEvent>(HeartbeatEventHandler)
.Subscribe<ConnectionPoolReadyEvent>(ConnectionPoolEventHandler);
};

Tip

任意の数のイベントをサブスクライブすることができ、これらのイベントはさまざまなタイプになります。

ドライバー内のイベントを監視するために使用されるメソッドとクラスの詳細については、次のAPIドキュメントを参照してください。