perf: Log requests using high amount of memory as warning

Signed-off-by: Julius Knorr <jus@bitgrid.net>
pull/52219/head
Julius Knorr 2024-10-16 18:12:05 +07:00
parent 82efa591f4
commit 44d6f4390e
No known key found for this signature in database
GPG Key ID: 4C614C6ED2CDE6DF
1 changed files with 15 additions and 0 deletions

@ -836,6 +836,21 @@ class OC {
register_shutdown_function(function () use ($eventLogger) {
$eventLogger->end('request');
});
register_shutdown_function(function () {
$memoryPeak = memory_get_peak_usage();
$logLevel = match (true) {
$memoryPeak > 500_000_000 => ILogger::FATAL,
$memoryPeak > 400_000_000 => ILogger::ERROR,
$memoryPeak > 300_000_000 => ILogger::WARN,
default => null,
};
if ($logLevel !== null) {
$message = 'Request used more than 300 MB of RAM: ' . \OCP\Util::humanFileSize($memoryPeak);
$logger = Server::get(LoggerInterface::class);
$logger->log($logLevel, $message, ['app' => 'core']);
}
});
}
/**