MongoDB::Monitoring - Internal event monitoring API for instrumentation
version v2.0.3
The MongoDB::MongoClient takes an optional monitoring_callback attribute, which can be used to monitor events that occur during the operation of the driver.
monitoring_callback
The API is very simple: given a code reference, a hashref for each event is passed to the code reference. Here is a simple example that just accumulates events in an array:
our @events; my $cb = sub { push @events, $_[0] }; MongoDB->connect( $uri, { monitoring_callback => $cb } );
Every event is a hash reference, with a type field indicating the type, e.g. command_started. Each type is described below.
type
command_started
This event is sent just before a command is put one the wire. It will be followed by either a command_succeeded or command_failed event.
command_succeeded
command_failed
Fields:
type: "command_started"
databaseName: the name of the database to which the command applies
commandName: the name of the command being executed; for legacy operations that don't use commands, the driver will convert them to appear as if they are in command form.
command: a hash reference representing the full command to be sent
requestId: the request identifier sent to the server
connectionId: address and port of the destination server
This event is sent just after a command reply is received, but only if the database reply document contains a non-false ok field. NOTE: write errors will have ok:1 even though they have write errors; for writes, success indicates that the write attempt was valid, not that the write succeeded.
ok
ok:1
type: "command_succeeded"
commandName: the name of the command being executed
durationSecs: the elapsed time in seconds since the command_started event.
reply: a hash reference representing the full database reply
This event is sent just after a command reply is received, but only if the database reply document contains a false ok field or if an exception occurred during send or receive operations.
type: "command_failed"
failure: a string with a error message about the failure
eval_error: if an exception occurs, this contains the value of $@ when the exception was caught
$@
reply: a hash reference representing the full database reply or an empty hashref if the failure is due to an exception
Certain commands are considered sensitive. When any of the following commands are seen in monitoring, the command body and database reply body are replaced with an empty document:
authenticate
saslStart
saslContinue
getnonce
createUser
updateUser
copydbgetnonce
copydbsaslstart
copydb
David Golden <david@mongodb.com>
Rassi <rassi@mongodb.com>
Mike Friedman <friedo@friedo.com>
Kristina Chodorow <k.chodorow@gmail.com>
Florian Ragwitz <rafl@debian.org>
This software is Copyright (c) 2019 by MongoDB, Inc.
This is free software, licensed under:
The Apache License, Version 2.0, January 2004
To install MongoDB, copy and paste the appropriate command in to your terminal.
cpanm
cpanm MongoDB
CPAN shell
perl -MCPAN -e shell install MongoDB
For more information on module installation, please visit the detailed CPAN module installation guide.