infinity daily metric

This commit is contained in:
shimon
2023-12-13 19:00:53 +02:00
parent e9087dfec7
commit 77c34e3283
2 changed files with 15 additions and 7 deletions
+1 -1
View File
@@ -16,7 +16,7 @@ class Usage extends Action
'1h' => 'Y-m-d H:00',
'1d' => 'Y-m-d 00:00',
'inf' => '0000-00-00 00:00',
'inf_d' => 'Y-m-d 00:00',
'infd' => 'Y-m-d 00:00',
];
protected const INFINITY_PERIOD = '_inf_';
+14 -6
View File
@@ -70,21 +70,29 @@ class UsageHook extends Usage
/**
* Infinity daily
*/
if ('inf_d' === $period) {
$infinity = $dbForProject->getDocument('stats', \md5("{self::INFINITY_PERIOD}{$key}"));
if ('infd' === $period) {
$isInfDaily = array_reduce(["files", "buckets", "users"], function ($carry, $word) use ($key) {
return $carry || str_contains($key, $word);
}, false);
if (!$isInfDaily) {
continue;
}
$infinity = $dbForProject->getDocument('stats', \md5(self::INFINITY_PERIOD . $key));
$infinityDaily = $dbForProject->getDocument('stats', $id);
if (empty($infinityDaily) && $infinityDaily->isEmpty()) {
if ($infinityDaily->isEmpty()) {
$dbForProject->createDocument('stats', new Document([
'$id' => $id,
'period' => $period,
'time' => $time,
'metric' => $key,
'value' => $infinity['value'],
'value' => $infinity['value'] ?? 0,
'region' => App::getEnv('_APP_REGION', 'default'),
]));
} else {
$infinityDaily->setAttribute('value', $infinity['value']);
$infinityDaily->setAttribute('value', $infinity['value'] ?? 0);
$dbForProject->updateDocument('stats', $infinityDaily->getId(), $infinityDaily);
}
continue;
@@ -120,7 +128,7 @@ class UsageHook extends Usage
}
}
} catch (\Exception $e) {
console::error("[logger] " . " {DateTime::now()} " . " {$projectInternalId} " . " {$e->getMessage()}");
var_dump($e->getMessage());
} finally {
$pools->reclaim();
}