mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Add logs for pool start and end
This commit is contained in:
+42
-1
@@ -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();
|
||||
|
||||
@@ -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']);
|
||||
|
||||
Reference in New Issue
Block a user