Skip to content

Commit 82e8dc5

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

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
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 {

lib/private/Session/Internal.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,9 @@
1212
use OC\Authentication\Token\IProvider;
1313
use OC\Diagnostics\TLogSlowOperation;
1414
use OCP\Authentication\Exceptions\InvalidTokenException;
15-
use OCP\ILogger;
1615
use OCP\Session\Exceptions\SessionNotAvailableException;
1716
use Psr\Log\LoggerInterface;
1817
use function call_user_func_array;
19-
use function microtime;
2018

2119
/**
2220
* Class Internal
@@ -198,7 +196,7 @@ private function invoke(string $functionName, array $parameters = [], bool $sile
198196
return $this->monitorAndLog(
199197
$this->logger,
200198
$functionName,
201-
function () use ($silence, $functionName, $parameters){
199+
function () use ($silence, $functionName, $parameters) {
202200
if ($silence) {
203201
return @call_user_func_array($functionName, $parameters);
204202
} else {

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)