Merge pull request #5577 from appwrite/feat-improve-logs
Feat: Improve logs
This commit is contained in:
commit
7d19fe87f5
4 changed files with 34 additions and 16 deletions
|
@ -85,6 +85,8 @@ Server::setResource('queueForFunctions', function (Registry $register) {
|
||||||
);
|
);
|
||||||
}, ['register']);
|
}, ['register']);
|
||||||
|
|
||||||
|
Server::setResource('log', fn() => new Log());
|
||||||
|
|
||||||
Server::setResource('logger', function ($register) {
|
Server::setResource('logger', function ($register) {
|
||||||
return $register->get('logger');
|
return $register->get('logger');
|
||||||
}, ['register']);
|
}, ['register']);
|
||||||
|
@ -119,16 +121,15 @@ $server
|
||||||
->error()
|
->error()
|
||||||
->inject('error')
|
->inject('error')
|
||||||
->inject('logger')
|
->inject('logger')
|
||||||
->action(function (Throwable $error, Logger $logger) {
|
->inject('log')
|
||||||
|
->action(function (Throwable $error, Logger $logger, Log $log) {
|
||||||
$version = App::getEnv('_APP_VERSION', 'UNKNOWN');
|
$version = App::getEnv('_APP_VERSION', 'UNKNOWN');
|
||||||
|
|
||||||
if ($error instanceof PDOException) {
|
if ($error instanceof PDOException) {
|
||||||
throw $error;
|
throw $error;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($error->getCode() >= 500 || $error->getCode() === 0) {
|
if ($logger && ($error->getCode() >= 500 || $error->getCode() === 0)) {
|
||||||
$log = new Log();
|
|
||||||
|
|
||||||
$log->setNamespace("appwrite-worker");
|
$log->setNamespace("appwrite-worker");
|
||||||
$log->setServer(\gethostname());
|
$log->setServer(\gethostname());
|
||||||
$log->setVersion($version);
|
$log->setVersion($version);
|
||||||
|
@ -146,7 +147,8 @@ $server
|
||||||
$isProduction = App::getEnv('_APP_ENV', 'development') === 'production';
|
$isProduction = App::getEnv('_APP_ENV', 'development') === 'production';
|
||||||
$log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING);
|
$log->setEnvironment($isProduction ? Log::ENVIRONMENT_PRODUCTION : Log::ENVIRONMENT_STAGING);
|
||||||
|
|
||||||
$logger->addLog($log);
|
$responseCode = $logger->addLog($log);
|
||||||
|
Console::info('Usage stats log pushed with status code: ' . $responseCode);
|
||||||
}
|
}
|
||||||
|
|
||||||
Console::error('[Error] Type: ' . get_class($error));
|
Console::error('[Error] Type: ' . get_class($error));
|
||||||
|
|
|
@ -20,6 +20,7 @@ use Utopia\Database\Permission;
|
||||||
use Utopia\Database\Query;
|
use Utopia\Database\Query;
|
||||||
use Utopia\Database\Role;
|
use Utopia\Database\Role;
|
||||||
use Utopia\Database\Validator\Authorization;
|
use Utopia\Database\Validator\Authorization;
|
||||||
|
use Utopia\Logger\Log;
|
||||||
use Utopia\Queue\Server;
|
use Utopia\Queue\Server;
|
||||||
|
|
||||||
Authorization::disable();
|
Authorization::disable();
|
||||||
|
@ -27,6 +28,7 @@ Authorization::setDefaultStatus(false);
|
||||||
|
|
||||||
Server::setResource('execute', function () {
|
Server::setResource('execute', function () {
|
||||||
return function (
|
return function (
|
||||||
|
Log $log,
|
||||||
Func $queueForFunctions,
|
Func $queueForFunctions,
|
||||||
Database $dbForProject,
|
Database $dbForProject,
|
||||||
Client $statsd,
|
Client $statsd,
|
||||||
|
@ -40,10 +42,16 @@ Server::setResource('execute', function () {
|
||||||
string $eventData = null,
|
string $eventData = null,
|
||||||
string $executionId = null,
|
string $executionId = null,
|
||||||
) {
|
) {
|
||||||
|
$error = null; // Used to re-throw at the end to trigger Logger (Sentry)
|
||||||
|
$errorCode = 0;
|
||||||
|
|
||||||
$user ??= new Document();
|
$user ??= new Document();
|
||||||
$functionId = $function->getId();
|
$functionId = $function->getId();
|
||||||
$deploymentId = $function->getAttribute('deployment', '');
|
$deploymentId = $function->getAttribute('deployment', '');
|
||||||
|
|
||||||
|
$log->addExtra('functionId', $functionId);
|
||||||
|
$log->addExtra('projectId', $project->getId());
|
||||||
|
|
||||||
/** Check if deployment exists */
|
/** Check if deployment exists */
|
||||||
$deployment = $dbForProject->getDocument('deployments', $deploymentId);
|
$deployment = $dbForProject->getDocument('deployments', $deploymentId);
|
||||||
|
|
||||||
|
@ -153,10 +161,8 @@ Server::setResource('execute', function () {
|
||||||
->setAttribute('statusCode', $th->getCode())
|
->setAttribute('statusCode', $th->getCode())
|
||||||
->setAttribute('stderr', $th->getMessage());
|
->setAttribute('stderr', $th->getMessage());
|
||||||
|
|
||||||
Console::error($th->getTraceAsString());
|
$error = $th->getMessage();
|
||||||
Console::error($th->getFile());
|
$errorCode = $th->getCode();
|
||||||
Console::error($th->getLine());
|
|
||||||
Console::error($th->getMessage());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$execution = $dbForProject->updateDocument('executions', $executionId, $execution);
|
$execution = $dbForProject->updateDocument('executions', $executionId, $execution);
|
||||||
|
@ -217,6 +223,10 @@ Server::setResource('execute', function () {
|
||||||
->setParam('networkResponseSize', 0)
|
->setParam('networkResponseSize', 0)
|
||||||
->submit();
|
->submit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!empty($error)) {
|
||||||
|
throw new Exception($error, $errorCode);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -226,7 +236,8 @@ $server->job()
|
||||||
->inject('queueForFunctions')
|
->inject('queueForFunctions')
|
||||||
->inject('statsd')
|
->inject('statsd')
|
||||||
->inject('execute')
|
->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() ?? [];
|
$payload = $message->getPayload() ?? [];
|
||||||
|
|
||||||
if (empty($payload)) {
|
if (empty($payload)) {
|
||||||
|
@ -269,6 +280,7 @@ $server->job()
|
||||||
}
|
}
|
||||||
Console::success('Iterating function: ' . $function->getAttribute('name'));
|
Console::success('Iterating function: ' . $function->getAttribute('name'));
|
||||||
$execute(
|
$execute(
|
||||||
|
log: $log,
|
||||||
statsd: $statsd,
|
statsd: $statsd,
|
||||||
dbForProject: $dbForProject,
|
dbForProject: $dbForProject,
|
||||||
project: $project,
|
project: $project,
|
||||||
|
@ -297,6 +309,7 @@ $server->job()
|
||||||
$execution = new Document($payload['execution'] ?? []);
|
$execution = new Document($payload['execution'] ?? []);
|
||||||
$user = new Document($payload['user'] ?? []);
|
$user = new Document($payload['user'] ?? []);
|
||||||
$execute(
|
$execute(
|
||||||
|
log: $log,
|
||||||
project: $project,
|
project: $project,
|
||||||
function: $function,
|
function: $function,
|
||||||
dbForProject: $dbForProject,
|
dbForProject: $dbForProject,
|
||||||
|
@ -313,6 +326,7 @@ $server->job()
|
||||||
break;
|
break;
|
||||||
case 'schedule':
|
case 'schedule':
|
||||||
$execute(
|
$execute(
|
||||||
|
log: $log,
|
||||||
project: $project,
|
project: $project,
|
||||||
function: $function,
|
function: $function,
|
||||||
dbForProject: $dbForProject,
|
dbForProject: $dbForProject,
|
||||||
|
|
12
composer.lock
generated
12
composer.lock
generated
|
@ -2509,16 +2509,16 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/queue",
|
"name": "utopia-php/queue",
|
||||||
"version": "0.5.2",
|
"version": "0.5.3",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/utopia-php/queue.git",
|
"url": "https://github.com/utopia-php/queue.git",
|
||||||
"reference": "310271c5cd477541208d7fa74a4dea64df8e04a0"
|
"reference": "8e8b6cb27172713fe5d8b7b092ce68516caf129a"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/utopia-php/queue/zipball/310271c5cd477541208d7fa74a4dea64df8e04a0",
|
"url": "https://api.github.com/repos/utopia-php/queue/zipball/8e8b6cb27172713fe5d8b7b092ce68516caf129a",
|
||||||
"reference": "310271c5cd477541208d7fa74a4dea64df8e04a0",
|
"reference": "8e8b6cb27172713fe5d8b7b092ce68516caf129a",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
|
@ -2564,9 +2564,9 @@
|
||||||
],
|
],
|
||||||
"support": {
|
"support": {
|
||||||
"issues": "https://github.com/utopia-php/queue/issues",
|
"issues": "https://github.com/utopia-php/queue/issues",
|
||||||
"source": "https://github.com/utopia-php/queue/tree/0.5.2"
|
"source": "https://github.com/utopia-php/queue/tree/0.5.3"
|
||||||
},
|
},
|
||||||
"time": "2023-03-07T08:54:10+00:00"
|
"time": "2023-05-24T19:06:04+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "utopia-php/registry",
|
"name": "utopia-php/registry",
|
||||||
|
|
|
@ -483,6 +483,8 @@ services:
|
||||||
- _APP_USAGE_STATS
|
- _APP_USAGE_STATS
|
||||||
- DOCKERHUB_PULL_USERNAME
|
- DOCKERHUB_PULL_USERNAME
|
||||||
- DOCKERHUB_PULL_PASSWORD
|
- DOCKERHUB_PULL_PASSWORD
|
||||||
|
- _APP_LOGGING_CONFIG
|
||||||
|
- _APP_LOGGING_PROVIDER
|
||||||
|
|
||||||
appwrite-worker-mails:
|
appwrite-worker-mails:
|
||||||
entrypoint: worker-mails
|
entrypoint: worker-mails
|
||||||
|
|
Loading…
Reference in a new issue