diff --git a/src/Appwrite/Stats/Usage.php b/src/Appwrite/Stats/Usage.php index b136d7e92b..473f55c227 100644 --- a/src/Appwrite/Stats/Usage.php +++ b/src/Appwrite/Stats/Usage.php @@ -316,39 +316,46 @@ class Usage $query .= "AND \"metric_type\"='counter' {$filters} "; $query .= "GROUP BY time({$period['key']}), \"projectId\" {$groupBy} "; $query .= "FILL(null)"; - - $result = $this->influxDB->query($query); - - $points = $result->getPoints(); - foreach ($points as $point) { - $projectId = $point['projectId']; - - if (!empty($projectId) && $projectId !== 'console') { - $metricUpdated = $metric; - - if (!empty($groupBy)) { - foreach ($options['groupBy'] as $groupBy) { - $groupedBy = $point[$groupBy] ?? ''; - if (empty($groupedBy)) { - continue; + try { + $result = $this->influxDB->query($query); + $points = $result->getPoints(); + foreach ($points as $point) { + $projectId = $point['projectId']; + + if (!empty($projectId) && $projectId !== 'console') { + $metricUpdated = $metric; + + if (!empty($groupBy)) { + foreach ($options['groupBy'] as $groupBy) { + $groupedBy = $point[$groupBy] ?? ''; + if (empty($groupedBy)) { + continue; + } + $metricUpdated = str_replace($groupBy, $groupedBy, $metricUpdated); } - $metricUpdated = str_replace($groupBy, $groupedBy, $metricUpdated); } + + $time = \strtotime($point['time']); + $value = (!empty($point['value'])) ? $point['value'] : 0; + + $this->createOrUpdateMetric( + $projectId, + $time, + $period['key'], + $metricUpdated, + $value, + 0 + ); } - - $time = \strtotime($point['time']); - $value = (!empty($point['value'])) ? $point['value'] : 0; - - $this->createOrUpdateMetric( - $projectId, - $time, - $period['key'], - $metricUpdated, - $value, - 0 - ); + } + } catch (\Exception $e) { // if projects are deleted this might fail + if (is_callable($this->errorHandler)) { + call_user_func($this->errorHandler, $e, "sync_metric_{$metric}_influxdb"); + } else { + throw $e; } } + } /** diff --git a/tests/e2e/General/UsageTest.php b/tests/e2e/General/UsageTest.php index bf329a4f32..a04da9d258 100644 --- a/tests/e2e/General/UsageTest.php +++ b/tests/e2e/General/UsageTest.php @@ -57,7 +57,7 @@ class UsageTest extends Scope } - sleep(25); + sleep(35); // console request $headers = [ @@ -177,7 +177,7 @@ class UsageTest extends Scope } } - sleep(25); + sleep(35); // console request $headers = [