From 02441540178fbc9c0697c78df011fc1d8f6213a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Wed, 24 May 2023 20:14:58 +0200 Subject: [PATCH] Apply new structure of logs --- app/worker.php | 7 ++++--- app/workers/functions.php | 14 +++++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/worker.php b/app/worker.php index 8151381d4..4ddda9bbc 100644 --- a/app/worker.php +++ b/app/worker.php @@ -85,6 +85,8 @@ Server::setResource('queueForFunctions', function (Registry $register) { ); }, ['register']); +Server::setResource('log', fn() => new Log()); + Server::setResource('logger', function ($register) { return $register->get('logger'); }, ['register']); @@ -119,7 +121,8 @@ $server ->error() ->inject('error') ->inject('logger') - ->action(function (Throwable $error, Logger $logger) { + ->inject('log') + ->action(function (Throwable $error, Logger $logger, Log $log) { $version = App::getEnv('_APP_VERSION', 'UNKNOWN'); if ($error instanceof PDOException) { @@ -127,8 +130,6 @@ $server } if ($error->getCode() >= 500 || $error->getCode() === 0) { - $log = new Log(); - $log->setNamespace("appwrite-worker"); $log->setServer(\gethostname()); $log->setVersion($version); diff --git a/app/workers/functions.php b/app/workers/functions.php index cbd54cb4d..ffb6062ef 100644 --- a/app/workers/functions.php +++ b/app/workers/functions.php @@ -20,6 +20,7 @@ use Utopia\Database\Permission; use Utopia\Database\Query; use Utopia\Database\Role; use Utopia\Database\Validator\Authorization; +use Utopia\Logger\Log; use Utopia\Queue\Server; Authorization::disable(); @@ -27,6 +28,7 @@ Authorization::setDefaultStatus(false); Server::setResource('execute', function () { return function ( + Log $log, Func $queueForFunctions, Database $dbForProject, Client $statsd, @@ -46,6 +48,9 @@ Server::setResource('execute', function () { $functionId = $function->getId(); $deploymentId = $function->getAttribute('deployment', ''); + $log->addExtra('functionId', $functionId); + $log->addExtra('projectId', $project->getId()); + /** Check if deployment exists */ $deployment = $dbForProject->getDocument('deployments', $deploymentId); @@ -223,8 +228,7 @@ Server::setResource('execute', function () { } if (!empty($error)) { - $projectId = $project->getId(); - throw new Exception("Error in project #{$projectId}, function #{$functionId}: " . $error); + throw new Exception($error); } }; }); @@ -235,7 +239,8 @@ $server->job() ->inject('queueForFunctions') ->inject('statsd') ->inject('execute') - ->action(function (Message $message, Database $dbForProject, Func $queueForFunctions, Client $statsd, callable $execute) { + ->inject('log') + ->action(function (Message $message, Database $dbForProject, Func $queueForFunctions, Client $statsd, callable $execute, Log $log) { $payload = $message->getPayload() ?? []; if (empty($payload)) { @@ -278,6 +283,7 @@ $server->job() } Console::success('Iterating function: ' . $function->getAttribute('name')); $execute( + log: $log, statsd: $statsd, dbForProject: $dbForProject, project: $project, @@ -306,6 +312,7 @@ $server->job() $execution = new Document($payload['execution'] ?? []); $user = new Document($payload['user'] ?? []); $execute( + log: $log, project: $project, function: $function, dbForProject: $dbForProject, @@ -322,6 +329,7 @@ $server->job() break; case 'schedule': $execute( + log: $log, project: $project, function: $function, dbForProject: $dbForProject,