Skip to content

Commit e890d36

Browse files
perf: log slow DNS operations
Signed-off-by: Christoph Wurst <[email protected]>
1 parent c313dd6 commit e890d36

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

lib/private/Http/Client/DnsPinMiddleware.php

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,20 @@
88
*/
99
namespace OC\Http\Client;
1010

11+
use OC\Diagnostics\TLogSlowOperation;
1112
use OC\Net\IpAddressClassifier;
1213
use OCP\Http\Client\LocalServerException;
1314
use Psr\Http\Message\RequestInterface;
15+
use Psr\Log\LoggerInterface;
1416

1517
class DnsPinMiddleware {
1618

19+
use TLogSlowOperation;
20+
1721
public function __construct(
1822
private NegativeDnsCache $negativeDnsCache,
1923
private IpAddressClassifier $ipAddressClassifier,
24+
private LoggerInterface $logger,
2025
) {
2126
}
2227

@@ -88,7 +93,11 @@ private function dnsResolve(string $target, int $recursionCount) : array {
8893
* Wrapper for dns_get_record
8994
*/
9095
protected function dnsGetRecord(string $hostname, int $type): array|false {
91-
return \dns_get_record($hostname, $type);
96+
return $this->monitorAndLog(
97+
$this->logger,
98+
'dns_get_record',
99+
fn () => \dns_get_record($hostname, $type),
100+
);
92101
}
93102

94103
public function addDnsPinning(): callable {

tests/lib/Http/Client/DnsPinMiddlewareTest.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use OCP\Http\Client\LocalServerException;
2121
use OCP\ICacheFactory;
2222
use Psr\Http\Message\RequestInterface;
23+
use Psr\Log\NullLogger;
2324
use Test\TestCase;
2425

2526
class DnsPinMiddlewareTest extends TestCase {
@@ -35,9 +36,10 @@ protected function setUp(): void {
3536

3637
$ipAddressClassifier = new IpAddressClassifier();
3738
$negativeDnsCache = new NegativeDnsCache($cacheFactory);
39+
$logger = new NullLogger();
3840

3941
$this->dnsPinMiddleware = $this->getMockBuilder(DnsPinMiddleware::class)
40-
->setConstructorArgs([$negativeDnsCache, $ipAddressClassifier])
42+
->setConstructorArgs([$negativeDnsCache, $ipAddressClassifier, $logger])
4143
->onlyMethods(['dnsGetRecord'])
4244
->getMock();
4345
}

0 commit comments

Comments
 (0)