Add logs for pool start and end

This commit is contained in:
Khushboo Verma
2024-03-12 10:24:15 +01:00
parent 4daa5b9c93
commit c13a0cbdbf
2 changed files with 42 additions and 2 deletions
+42 -1
View File
@@ -2,6 +2,7 @@
require_once __DIR__ . '/../vendor/autoload.php';
use Appwrite\Extend\Exception;
use Appwrite\Utopia\Response;
use Swoole\Process;
use Swoole\Http\Server;
@@ -26,6 +27,24 @@ use Utopia\Pools\Group;
$http = new Server("0.0.0.0", App::getEnv('PORT', 80));
App::setResource('startTime', function() {
return \microtime(true);
});
App::init()
->inject('startTime')
->inject('log')
->inject('http')
->action(function(float $startTime, Log $log, mixed $http) {
$stats = $http->stats();
$workersIdle = $stats['idle_worker_num'] ?? -1;
$workersTotal = $stats['worker_num'] ?? -1;
$log->addExtra('workersIdle', \strval($workersIdle));
$log->addExtra('workersTotal', \strval($workersTotal));
$log->addExtra('veryFirstInit', \strval(\microtime(true)));
});
$payloadSize = 6 * (1024 * 1024); // 6MB
$workerNumber = swoole_cpu_num() * intval(App::getEnv('_APP_WORKER_PER_CORE', 6));
@@ -222,9 +241,10 @@ $http->on('start', function (Server $http) use ($payloadSize, $register) {
});
});
$http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swooleResponse) use ($register) {
$http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swooleResponse) use ($register, $http) {
App::setResource('swooleRequest', fn () => $swooleRequest);
App::setResource('swooleResponse', fn () => $swooleResponse);
App::setResource('http', fn () => $http);
$request = new Request($swooleRequest);
$response = new Response($swooleResponse);
@@ -243,9 +263,16 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo
$app = new App('UTC');
$l = new Log();
App::setResource('log', fn() => $l);
$l->addExtra('GetPoolsStart', \strval(\microtime(true)));
$pools = $register->get('pools');
App::setResource('pools', fn () => $pools);
$l->addExtra('GetPoolsEnd', \strval(\microtime(true)));
try {
Authorization::cleanRoles();
Authorization::setRole(Role::any()->toString());
@@ -327,4 +354,18 @@ $http->on('request', function (SwooleRequest $swooleRequest, SwooleResponse $swo
}
});
App::shutdown()
->inject('startTime')
->inject('log')
->action(function(float $startTime, Log $log) {
$endTime = \microtime(true);
$log->addExtra('veryLastShutdown', \strval(\microtime(true)));
$log->addExtra('duration', \strval($endTime - $startTime));
if($endTime - $startTime < 10) {
throw new Exception(Exception::GENERAL_SERVER_ERROR, 'Our amazing timeout.');
}
});
$http->start();
-1
View File
@@ -866,7 +866,6 @@ foreach ($locales as $locale) {
]);
// Runtime Execution
App::setResource('log', fn() => new Log());
App::setResource('logger', function ($register) {
return $register->get('logger');
}, ['register']);