Skip to content

Commit 0e389e2

Browse files
authored
Merge pull request #1 from andrew-demb/allow-disable-auto-subscribe
Allow to disable auto register subscriber on bundle boot
2 parents 78dea89 + bf03f4e commit 0e389e2

File tree

3 files changed

+46
-1
lines changed

3 files changed

+46
-1
lines changed

src/JaegerMongoDbBundle.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,10 @@ class JaegerMongoDbBundle extends Bundle
1111
public function boot()
1212
{
1313
parent::boot();
14-
\MongoDB\Driver\Monitoring\addSubscriber($this->container->get('jaeger.mongodb.query.time.collector'));
14+
15+
if ($this->container->getParameter('jaeger.mongodb.auto_subscribe')) {
16+
\MongoDB\Driver\Monitoring\addSubscriber($this->container->get('jaeger.mongodb.query.time.collector'));
17+
}
1518
}
1619

1720

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<?php
2+
declare(strict_types=1);
3+
4+
namespace Jaeger\MongoDb\Symfony\Resources\DependencyInjection;
5+
6+
use Symfony\Component\Config\Definition\Builder\TreeBuilder;
7+
use Symfony\Component\Config\Definition\ConfigurationInterface;
8+
9+
class Configuration implements ConfigurationInterface
10+
{
11+
public function getConfigTreeBuilder()
12+
{
13+
$treeBuilder = new TreeBuilder('jaeger_mongodb');
14+
if (method_exists($treeBuilder, 'getRootNode')) {
15+
$rootNode = $treeBuilder->getRootNode();
16+
} else {
17+
$rootNode = $treeBuilder->root('jaeger_mongodb');
18+
}
19+
20+
// @formatter:off
21+
$rootNode
22+
->children()
23+
->booleanNode('auto_subscribe')
24+
->info('Register collector on bundle boot')
25+
->defaultTrue()
26+
->end()
27+
->end();
28+
// @formatter:on
29+
30+
return $treeBuilder;
31+
}
32+
}

src/Resources/DependencyInjection/JaegerMongoDbExtension.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,15 @@ public function load(array $configs, ContainerBuilder $container)
1818
new FileLocator(__DIR__ . '/../config')
1919
);
2020
$loader->load('services.yml');
21+
22+
$configuration = $this->getConfiguration($configs, $container);
23+
$config = $this->processConfiguration($configuration, $configs);
24+
25+
$container->setParameter('jaeger.mongodb.auto_subscribe', $config['auto_subscribe']);
26+
}
27+
28+
public function getAlias(): string
29+
{
30+
return 'jaeger_mongodb';
2131
}
2232
}

0 commit comments

Comments
 (0)