Skip to content

Commit

Permalink
Add more comments to Mongo integration
Browse files Browse the repository at this point in the history
  • Loading branch information
SammyK committed Dec 4, 2018
1 parent 8db065c commit 63d48ea
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 4 deletions.
11 changes: 9 additions & 2 deletions src/DDTrace/Integrations/Mongo/MongoClientIntegration.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ final class MongoClientIntegration extends Integration

protected static function loadIntegration()
{
// MongoClient::__construct ([ string $server = "mongodb://localhost:27017"
// [, array $options = array("connect" => TRUE) [, array $driver_options ]]] )
self::traceMethod('__construct', function (Span $span, array $args) {
if (isset($args[0])) {
$span->setTag(Tags\MONGODB_SERVER, Obfuscation::dsn($args[0]));
Expand All @@ -25,24 +27,29 @@ protected static function loadIntegration()
$span->setTag(Tags\MONGODB_DATABASE, $args[1]['db']);
}
});
// MongoCollection MongoClient::selectCollection ( string $db , string $collection )
self::traceMethod('selectCollection', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_DATABASE, $args[0]);
$span->setTag(Tags\MONGODB_COLLECTION, $args[1]);
});
// MongoDB MongoClient::selectDB ( string $name )
self::traceMethod('selectDB', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_DATABASE, $args[0]);
});
// bool MongoClient::setReadPreference ( string $read_preference [, array $tags ] )
self::traceMethod('setReadPreference', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_READ_PREFERENCE, $args[0]);
});
//self::traceMethod('getConnections');
// Methods that don't need extra tags added
self::traceMethod('getHosts');
self::traceMethod('getReadPreference');
self::traceMethod('getWriteConcern');
//self::traceMethod('listDBs');
self::traceMethod('listDBs');
self::traceMethod('setWriteConcern');
}

// If the `db` option isn't provided via the constructor, we extract
// the database name from the DSN string if it exists.
private static function extractDatabaseNameFromDsn($dsn)
{
$matches = [];
Expand Down
13 changes: 13 additions & 0 deletions src/DDTrace/Integrations/Mongo/MongoCollectionIntegration.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,18 @@ final class MongoCollectionIntegration extends Integration

protected static function loadIntegration()
{
// MongoCollection::__construct ( MongoDB $db , string $name )
self::traceMethod('__construct', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_DATABASE, (string) $args[0]);
$span->setTag(Tags\MONGODB_COLLECTION, $args[1]);
});
// int MongoCollection::count ([ array $query = array() [, array $options = array() ]] )
self::traceMethod('count', function (Span $span, array $args) {
if (isset($args[0])) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[0]));
}
});
// array MongoCollection::createDBRef ( mixed $document_or_id )
self::traceMethod('createDBRef', null, function (Span $span, $ref) {
if (!is_array($ref)) {
return;
Expand All @@ -32,24 +35,30 @@ protected static function loadIntegration()
$span->setTag(Tags\MONGODB_COLLECTION, $ref['$ref']);
}
});
// array MongoCollection::distinct ( string $key [, array $query ] )
self::traceMethod('distinct', function (Span $span, array $args) {
if (isset($args[1])) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[1]));
}
});
// MongoCursor MongoCollection::find ([ array $query = array() [, array $fields = array() ]] )
self::traceMethod('find', function (Span $span, array $args) {
if (isset($args[0])) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[0]));
}
});
// array MongoCollection::findAndModify ( array $query [, array $update [, array $fields [, array $options ]]] )
self::traceMethod('findAndModify', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[0]));
});
// array MongoCollection::findOne ([ array $query = array() [, array $fields = array()
// [, array $options = array() ]]] )
self::traceMethod('findOne', function (Span $span, array $args) {
if (isset($args[0])) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[0]));
}
});
// array MongoCollection::getDBRef ( array $ref )
self::traceMethod('getDBRef', function (Span $span, array $args) {
if (isset($args[0]['$id'])) {
$span->setTag(Tags\MONGODB_BSON_ID, $args[0]['$id']);
Expand All @@ -58,19 +67,23 @@ protected static function loadIntegration()
$span->setTag(Tags\MONGODB_COLLECTION, $args[0]['$ref']);
}
});
// bool|array MongoCollection::remove ([ array $criteria = array() [, array $options = array() ]] )
self::traceMethod('remove', function (Span $span, array $args) {
if (isset($args[0])) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[0]));
}
});
// bool MongoCollection::setReadPreference ( string $read_preference [, array $tags ] )
self::traceMethod('setReadPreference', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_READ_PREFERENCE, $args[0]);
});
// bool|array MongoCollection::update ( array $criteria , array $new_object [, array $options = array() ] )
self::traceMethod('update', function (Span $span, array $args) {
if (isset($args[0])) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[0]));
}
});
// Methods that don't need extra tags added
self::traceMethod('aggregate');
self::traceMethod('aggregateCursor');
self::traceMethod('batchInsert');
Expand Down
8 changes: 8 additions & 0 deletions src/DDTrace/Integrations/Mongo/MongoDBIntegration.php
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ final class MongoDBIntegration extends Integration

protected static function loadIntegration()
{
// array MongoDB::command ( array $command [, array $options = array() [, string &$hash ]] )
self::traceMethod('command', function (Span $span, array $args) {
if (isset($args[0]['query'])) {
$span->setTag(Tags\MONGODB_QUERY, json_encode($args[0]['query']));
Expand All @@ -22,30 +23,37 @@ protected static function loadIntegration()
$span->setTag(Tags\MONGODB_TIMEOUT, $args[1]['timeout']);
}
});
// array MongoDB::createDBRef ( string $collection , mixed $document_or_id )
self::traceMethod('createDBRef', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_COLLECTION, $args[0]);
}, function (Span $span, $ref) {
if (is_array($ref) && isset($ref['$id'])) {
$span->setTag(Tags\MONGODB_BSON_ID, (string) $ref['$id']);
}
});
// MongoCollection MongoDB::createCollection ( string $name [, array $options ] )
self::traceMethod('createCollection', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_COLLECTION, $args[0]);
});
// MongoCollection MongoDB::selectCollection ( string $name )
self::traceMethod('selectCollection', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_COLLECTION, $args[0]);
});
// array MongoDB::getDBRef ( array $ref )
self::traceMethod('getDBRef', function (Span $span, array $args) {
if (isset($args[0]['$ref'])) {
$span->setTag(Tags\MONGODB_COLLECTION, $args[0]['$ref']);
}
});
// int MongoDB::setProfilingLevel ( int $level )
self::traceMethod('setProfilingLevel', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_PROFILING_LEVEL, $args[0]);
});
// bool MongoDB::setReadPreference ( string $read_preference [, array $tags ] )
self::traceMethod('setReadPreference', function (Span $span, array $args) {
$span->setTag(Tags\MONGODB_READ_PREFERENCE, $args[0]);
});
// Methods that don't need extra tags added
self::traceMethod('drop');
self::traceMethod('execute');
self::traceMethod('forceError');
Expand Down
3 changes: 1 addition & 2 deletions tests/Integration/Integrations/Mongo/MongoTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -175,11 +175,10 @@ public function testClientMethods($method)
public function clientMethods()
{
return [
//['getConnections'],
['getHosts'],
['getReadPreference'],
['getWriteConcern'],
//['listDBs'],
['listDBs'],
];
}

Expand Down

0 comments on commit 63d48ea

Please sign in to comment.