Skip to content

Commit bb96a53

Browse files
authored
fix(mongodb): Deprecated exception in v1.20+ (#2870)
1 parent 77f1a7f commit bb96a53

1 file changed

Lines changed: 14 additions & 2 deletions

File tree

src/DDTrace/Integrations/MongoDB/MongoDBIntegration.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,25 @@ function register_subscriber()
1717
{
1818
class DatadogSubscriber implements \MongoDB\Driver\Monitoring\CommandSubscriber
1919
{
20+
private static $useDeprecatedMethods = null;
21+
2022
#[\ReturnTypeWillChange]
2123
public function commandStarted(\MongoDB\Driver\Monitoring\CommandStartedEvent $event)
2224
{
2325
$span = \DDTrace\active_span();
2426
if ($span) {
25-
$span->meta['out.host'] = $event->getServer()->getHost();
26-
$span->meta['out.port'] = $event->getServer()->getPort();
27+
if (is_null(self::$useDeprecatedMethods)) {
28+
// v1.20+: getServer() is deprecated in favor of getHost() and getPort()
29+
self::$useDeprecatedMethods = !method_exists($event, 'getHost') || method_exists($event, 'getPort');
30+
}
31+
32+
if (self::$useDeprecatedMethods) {
33+
$span->meta['out.host'] = $event->getServer()->getHost();
34+
$span->meta['out.port'] = $event->getServer()->getPort();
35+
} else {
36+
$span->meta['out.host'] = $event->getHost();
37+
$span->meta['out.port'] = $event->getPort();
38+
}
2739
}
2840
}
2941

0 commit comments

Comments
 (0)