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

モニタリング

このガイドでは、PyMongo のコールバックベースのインターフェースを使用して、 PyMongoでモニタリングを構成する方法を学習できます。モニタリングとは、アプリケーションの実行における動作に関する情報を収集するプロセスです。この情報は、アプリケーションの設計とデバッグ時に情報に基づいた決定を行う際に役立ちます。また、モニタリング イベントの情報を使用して、アプリケーションのパフォーマンスとリソース使用量を追跡できます。

ドライバーは、 イベントを発行してアプリケーションに関する情報を提供します。 ドライバー イベントをリッスンしてアプリケーションをモニター できます。

注意

イベント ログ

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

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

eventType
説明

コマンド イベント

MongoDBデータベースコマンドに関連するイベント(find、insert、delete、count など)。 PyMongo を使用してデータベースコマンドを実行する方法については、「 データベースコマンドの実行 」を参照してください。MongoDBデータベースコマンドの詳細については、 MongoDB Serverマニュアルの「 データベースコマンド 」を参照してください。

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

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

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

接続プール イベント

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

ドライバーが発行するイベントの完全なリストについては、pymongo.monitoring APIドキュメントを参照してください。

イベント をモニターするには、アプリケーションの MongoClient にイベントリスナーを渡す必要があります。 次の手順では、イベントリスナーを使用してアプリケーションを監視する方法について説明します。

  1. PyMongoが提供するイベントリスナーの基本クラスの 1 から継承するクラスを作成します。 選択する基本クラスは、監視するイベントのタイプによって異なります。 例、 コマンド イベントを監視するには、CommandListener から継承するクラスを作成します。

  2. 監視するイベントに対応する基本クラスのメソッドを実装します。

  3. リスナークラスのインスタンスを MongoClient コンストラクターに渡します。

次のコードでは、コマンド イベントをリッスンするための CommandListener、SDAM イベントをリッスンするための ServerListener、接続プールイベントをリッスンするための ConnectionPoolListener を実装します。

class MyCommandListener(CommandListener):
def succeeded(self, event: CommandSucceededEvent):
print(f"Command {event.command_name} succeeded")
# Include other event method implementations here
class MyServerListener(ServerListener):
def heartbeat_started(self, event: ServerHeartbeatStartedEvent):
print(f"Heartbeat started on server with id: {event.connection_id}")
# Include other event method implementations here
class MyPoolListener(ConnectionPoolListener):
def connection_created(self, event: ConnectionCreatedEvent):
print(f"Connection {event.connection_id} created")
# Include other event method implementations here

次のコードでは、前述のリスナーのインスタンスを MongoClient コンストラクターに渡します。対応するコードを表示するには、Synchronous タブまたは Asynchronousタブを選択します。

listeners = [MyCommandListener(), MyServerListener(), MyPoolListener()]
client = MongoClient("<connection URI>", event_listeners=listeners)
listeners = [MyCommandListener(), MyServerListener(), MyPoolListener()]
client = AsyncMongoClient("<connection URI>", event_listeners=listeners)

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