Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Pymongo ドライバー
/

モニタリング

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

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

注意

イベント ログ

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

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

eventType
説明

コマンド イベント

MongoDBデータベースコマンドに関連するイベント(findinsertdeletecount など)。 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
listeners = [MyCommandListener(), MyServerListener(), MyPoolListener()]
client = MongoClient("<connection URI>", event_listeners=listeners)

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

戻る

モニタリングとロギング

項目一覧