adding debug output to usage-worker
This commit is contained in:
parent
a0b38a5a7c
commit
37316f97ff
2 changed files with 51 additions and 6 deletions
|
@ -5,6 +5,7 @@ namespace Appwrite\Platform\Workers;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Utopia\CLI\Console;
|
use Utopia\CLI\Console;
|
||||||
use Utopia\Database\Database;
|
use Utopia\Database\Database;
|
||||||
|
use Utopia\Database\DateTime;
|
||||||
use Utopia\Database\Document;
|
use Utopia\Database\Document;
|
||||||
use Utopia\Platform\Action;
|
use Utopia\Platform\Action;
|
||||||
use Utopia\Queue\Message;
|
use Utopia\Queue\Message;
|
||||||
|
@ -19,7 +20,7 @@ class Usage extends Action
|
||||||
];
|
];
|
||||||
|
|
||||||
protected const INFINITY_PERIOD = '_inf_';
|
protected const INFINITY_PERIOD = '_inf_';
|
||||||
|
protected const DEBUG_PROJECT_ID = 85293;
|
||||||
public static function getName(): string
|
public static function getName(): string
|
||||||
{
|
{
|
||||||
return 'usage';
|
return 'usage';
|
||||||
|
@ -50,7 +51,6 @@ class Usage extends Action
|
||||||
public function action(Message $message, callable $getProjectDB): void
|
public function action(Message $message, callable $getProjectDB): void
|
||||||
{
|
{
|
||||||
$payload = $message->getPayload() ?? [];
|
$payload = $message->getPayload() ?? [];
|
||||||
|
|
||||||
if (empty($payload)) {
|
if (empty($payload)) {
|
||||||
throw new Exception('Missing payload');
|
throw new Exception('Missing payload');
|
||||||
}
|
}
|
||||||
|
@ -70,6 +70,16 @@ class Usage extends Action
|
||||||
getProjectDB: $getProjectDB
|
getProjectDB: $getProjectDB
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if ($project->getInternalId() == self::DEBUG_PROJECT_ID) {
|
||||||
|
var_dump([
|
||||||
|
'type' => 'payload',
|
||||||
|
'project' => $project->getInternalId(),
|
||||||
|
'database' => $project['database'] ?? '',
|
||||||
|
$payload['metrics']
|
||||||
|
]);
|
||||||
|
|
||||||
|
var_dump('==========================');
|
||||||
|
}
|
||||||
|
|
||||||
self::$stats[$projectId]['project'] = $project;
|
self::$stats[$projectId]['project'] = $project;
|
||||||
foreach ($payload['metrics'] ?? [] as $metric) {
|
foreach ($payload['metrics'] ?? [] as $metric) {
|
||||||
|
|
|
@ -46,17 +46,25 @@ class UsageHook extends Usage
|
||||||
array_splice(self::$stats, 0, $offset);
|
array_splice(self::$stats, 0, $offset);
|
||||||
foreach ($projects as $data) {
|
foreach ($projects as $data) {
|
||||||
$numberOfKeys = !empty($data['keys']) ? count($data['keys']) : 0;
|
$numberOfKeys = !empty($data['keys']) ? count($data['keys']) : 0;
|
||||||
console::log(DateTime::now() . ' Iterating over ' . $numberOfKeys . ' keys');
|
$projectInternalId = $data['project']->getInternalId();
|
||||||
|
$database = $data['project']['database'] ?? '';
|
||||||
|
|
||||||
|
console::warning('Ticker started ' . DateTime::now());
|
||||||
|
|
||||||
if ($numberOfKeys === 0) {
|
if ($numberOfKeys === 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
$projectInternalId = $data['project']->getInternalId();
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$dbForProject = $getProjectDB($data['project']);
|
$dbForProject = $getProjectDB($data['project']);
|
||||||
|
if ($projectInternalId == 85293) {
|
||||||
|
var_dump([
|
||||||
|
'project' => $projectInternalId,
|
||||||
|
'database' => $database,
|
||||||
|
'time' => DateTime::now(),
|
||||||
|
'data' => $data['keys']
|
||||||
|
]);
|
||||||
|
}
|
||||||
foreach ($data['keys'] ?? [] as $key => $value) {
|
foreach ($data['keys'] ?? [] as $key => $value) {
|
||||||
if ($value == 0) {
|
if ($value == 0) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -67,6 +75,15 @@ class UsageHook extends Usage
|
||||||
$id = \md5("{$time}_{$period}_{$key}");
|
$id = \md5("{$time}_{$period}_{$key}");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
if ($projectInternalId == self::DEBUG_PROJECT_ID) {
|
||||||
|
var_dump([
|
||||||
|
'type' => 'create',
|
||||||
|
'period' => $period,
|
||||||
|
'metric' => $key,
|
||||||
|
'id' => $id,
|
||||||
|
'value' => $value
|
||||||
|
]);
|
||||||
|
}
|
||||||
$dbForProject->createDocument('stats_v2', new Document([
|
$dbForProject->createDocument('stats_v2', new Document([
|
||||||
'$id' => $id,
|
'$id' => $id,
|
||||||
'period' => $period,
|
'period' => $period,
|
||||||
|
@ -77,6 +94,15 @@ class UsageHook extends Usage
|
||||||
]));
|
]));
|
||||||
} catch (Duplicate $th) {
|
} catch (Duplicate $th) {
|
||||||
if ($value < 0) {
|
if ($value < 0) {
|
||||||
|
if ($projectInternalId == self::DEBUG_PROJECT_ID) {
|
||||||
|
var_dump([
|
||||||
|
'type' => 'decrease',
|
||||||
|
'period' => $period,
|
||||||
|
'metric' => $key,
|
||||||
|
'id' => $id,
|
||||||
|
'value' => $value
|
||||||
|
]);
|
||||||
|
}
|
||||||
$dbForProject->decreaseDocumentAttribute(
|
$dbForProject->decreaseDocumentAttribute(
|
||||||
'stats_v2',
|
'stats_v2',
|
||||||
$id,
|
$id,
|
||||||
|
@ -84,6 +110,15 @@ class UsageHook extends Usage
|
||||||
abs($value)
|
abs($value)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
if ($projectInternalId == self::DEBUG_PROJECT_ID) {
|
||||||
|
var_dump([
|
||||||
|
'type' => 'increase',
|
||||||
|
'period' => $period,
|
||||||
|
'metric' => $key,
|
||||||
|
'id' => $id,
|
||||||
|
'value' => $value
|
||||||
|
]);
|
||||||
|
}
|
||||||
$dbForProject->increaseDocumentAttribute(
|
$dbForProject->increaseDocumentAttribute(
|
||||||
'stats_v2',
|
'stats_v2',
|
||||||
$id,
|
$id,
|
||||||
|
|
Loading…
Reference in a new issue