diff --git a/app/tasks/usage.php b/app/tasks/usage.php index 18e3ed8271..aa8c42bcb8 100644 --- a/app/tasks/usage.php +++ b/app/tasks/usage.php @@ -361,11 +361,13 @@ $cli $latestTime[$metric][$period['key']] = $time; } catch (\Exception $e) { // if projects are deleted this might fail Console::warning("Failed to save data for project {$projectId} and metric {$metricUpdated}: {$e->getMessage()}"); + Console::warning($e->getTraceAsString()); } } } } catch (\Exception $e) { Console::warning("Failed to Query: {$e->getMessage()}"); + Console::warning($e->getTraceAsString()); } } } @@ -375,6 +377,7 @@ $cli $loopTook = microtime(true) - $loopStart; $now = date('d-m-Y H:i:s', time()); Console::info("[{$now}] Aggregation took {$loopTook} seconds"); + Console::warning($e->getTraceAsString()); return; } @@ -416,47 +419,53 @@ $cli // Get total storage $dbForProject->setNamespace('_project_' . $projectId); - $storageTotal = $dbForProject->sum('deployments', 'size'); + $storageTotal = (int) $dbForProject->sum('deployments', 'size'); $time = (int) (floor(time() / 1800) * 1800); // Time rounded to nearest 30 minutes $id = \md5($time . '_30m_storage.deployments.total'); //Construct unique id for each metric using time, period and metric $document = $dbForProject->getDocument('stats', $id); - if ($document->isEmpty()) { - $dbForProject->createDocument('stats', new Document([ - '$id' => $id, - 'period' => '30m', - 'time' => $time, - 'metric' => 'storage.deployments.total', - 'value' => $storageTotal, - 'type' => 1, - ])); - } else { - $dbForProject->updateDocument( - 'stats', - $document->getId(), - $document->setAttribute('value', $storageTotal) - ); + try { + + if ($document->isEmpty()) { + $dbForProject->createDocument('stats', new Document([ + '$id' => $id, + 'period' => '30m', + 'time' => $time, + 'metric' => 'storage.deployments.total', + 'value' => $storageTotal, + 'type' => 1, + ])); + } else { + $dbForProject->updateDocument( + 'stats', + $document->getId(), + $document->setAttribute('value', $storageTotal) + ); + } + $time = (int) (floor(time() / 86400) * 86400); // Time rounded to nearest day + $id = \md5($time . '_1d_storage.deployments.total'); //Construct unique id for each metric using time, period and metric + $document = $dbForProject->getDocument('stats', $id); + if ($document->isEmpty()) { + $dbForProject->createDocument('stats', new Document([ + '$id' => $id, + 'period' => '1d', + 'time' => $time, + 'metric' => 'storage.deployments.total', + 'value' => $storageTotal, + 'type' => 1, + ])); + } else { + $dbForProject->updateDocument( + 'stats', + $document->getId(), + $document->setAttribute('value', $storageTotal) + ); + } + } catch(\Exception $e) { + Console::warning("Failed to save data for project {$projectId} and metric storage.deployments.total: {$e->getMessage()}"); + Console::warning($e->getTraceAsString()); } - $time = (int) (floor(time() / 86400) * 86400); // Time rounded to nearest day - $id = \md5($time . '_1d_storage.deployments.total'); //Construct unique id for each metric using time, period and metric - $document = $dbForProject->getDocument('stats', $id); - if ($document->isEmpty()) { - $dbForProject->createDocument('stats', new Document([ - '$id' => $id, - 'period' => '1d', - 'time' => $time, - 'metric' => 'storage.deployments.total', - 'value' => $storageTotal, - 'type' => 1, - ])); - } else { - $dbForProject->updateDocument( - 'stats', - $document->getId(), - $document->setAttribute('value', $storageTotal) - ); - } $collections = [ 'users' => [ @@ -749,6 +758,7 @@ $cli } } catch (\Exception$e) { Console::warning("Failed to save database counters data for project {$collection}: {$e->getMessage()}"); + Console::warning($e->getTraceAsString()); } } }