monitoring – Tools for monitoring driver events.¶
Tools to monitor driver events.
Use subscribe() to register subscribers for specific events. Only
events of type COMMAND are currently supported. Subscribers must be
a subclass of Subscriber and implement started(),
succeeded(), and failed().
For example, a simple logging subscriber might be implemented like this:
import logging
from pymongo import monitoring
class LoggingSubscriber(monitoring.Subscriber):
def started(self, event):
logging.info("Command {0.command_name} with request id "
"{0.request_id} started on server "
"{0.connection_id}".format(event))
def succeeded(self, event):
logging.info("Command {0.command_name} with request id "
"{0.request_id} on server {0.connection_id} "
"succeeded in {0.duration_micros} "
"microseconds".format(event))
def failed(self, event):
logging.info("Command {0.command_name} with request id "
"{0.request_id} on server {0.connection_id} "
"failed in {0.duration_micros} "
"microseconds".format(event))
monitoring.subscribe(LoggingSubscriber(), monitoring.COMMAND)
-
pymongo.monitoring.COMMAND¶ The event type of user commands.
-
pymongo.monitoring.subscribe(subscriber, events=COMMAND)¶ Register a subscriber for events.
This version of PyMongo only publishes events of type
COMMAND.Parameters: - subscriber: A subclass of abstract class
Subscriber. - events: Optional integer to set event subscriptions
- subscriber: A subclass of abstract class
-
pymongo.monitoring.get_subscribers(event=COMMAND)¶ Get the list of subscribers for event.
Parameters: - event: Return subscribers for this event type.
-
class
pymongo.monitoring.Subscriber¶ Abstract base class for all subscribers.
-
failed(event)¶ Abstract method to handle CommandFailedEvent.
Parameters: - event: An instance of
CommandFailedEvent
- event: An instance of
-
started(event)¶ Abstract method to handle CommandStartedEvent.
Parameters: - event: An instance of
CommandStartedEvent
- event: An instance of
-
succeeded(event)¶ Abstract method to handle CommandSucceededEvent.
Parameters: - event: An instance of
CommandSucceededEvent
- event: An instance of
-
-
class
pymongo.monitoring.CommandStartedEvent(command, database_name, *args)¶ Event published when a command starts.
Parameters: - command: The command document.
- database_name: The name of the database this command was run against.
- request_id: The request id for this operation.
- connection_id: The address (host, port) of the server this command was sent to.
- operation_id: An optional identifier for a series of related events.
-
command¶ The command document.
-
command_name¶ The command name.
-
connection_id¶ The address (host, port) of the server this command was sent to.
-
database_name¶ The name of the database this command was run against.
-
operation_id¶ An id for this series of events or None.
-
request_id¶ The request id for this operation.
-
class
pymongo.monitoring.CommandSucceededEvent(duration, reply, *args)¶ Event published when a command succeeds.
Parameters: - duration: The command duration as a datetime.timedelta.
- reply: The server reply document.
- command_name: The command name.
- request_id: The request id for this operation.
- connection_id: The address (host, port) of the server this command was sent to.
- operation_id: An optional identifier for a series of related events.
-
command_name¶ The command name.
-
connection_id¶ The address (host, port) of the server this command was sent to.
-
duration_micros¶ The duration of this operation in microseconds.
-
operation_id¶ An id for this series of events or None.
-
reply¶ The server failure document for this operation.
-
request_id¶ The request id for this operation.
-
class
pymongo.monitoring.CommandFailedEvent(duration, failure, *args)¶ Event published when a command fails.
Parameters: - duration: The command duration as a datetime.timedelta.
- failure: The server reply document.
- command_name: The command name.
- request_id: The request id for this operation.
- connection_id: The address (host, port) of the server this command was sent to.
- operation_id: An optional identifier for a series of related events.
-
command_name¶ The command name.
-
connection_id¶ The address (host, port) of the server this command was sent to.
-
duration_micros¶ The duration of this operation in microseconds.
-
failure¶ The server failure document for this operation.
-
operation_id¶ An id for this series of events or None.
-
request_id¶ The request id for this operation.