mirror of
https://github.com/appwrite/appwrite
synced 2026-05-24 09:28:40 +00:00
Merge branch '1.8.x' into fix-nullable-validation
This commit is contained in:
commit
9ecffbf4e9
2 changed files with 34 additions and 2 deletions
|
|
@ -271,6 +271,8 @@ const METRIC_SITES_ID_REQUESTS = 'sites.{siteInternalId}.requests';
|
||||||
const METRIC_SITES_ID_INBOUND = 'sites.{siteInternalId}.inbound';
|
const METRIC_SITES_ID_INBOUND = 'sites.{siteInternalId}.inbound';
|
||||||
const METRIC_SITES_ID_OUTBOUND = 'sites.{siteInternalId}.outbound';
|
const METRIC_SITES_ID_OUTBOUND = 'sites.{siteInternalId}.outbound';
|
||||||
const METRIC_AVATARS_SCREENSHOTS_GENERATED = 'avatars.screenshotsGenerated';
|
const METRIC_AVATARS_SCREENSHOTS_GENERATED = 'avatars.screenshotsGenerated';
|
||||||
|
const METRIC_FUNCTIONS_RUNTIME = 'functions.runtimes.{runtime}';
|
||||||
|
const METRIC_SITES_FRAMEWORK = 'sites.frameworks.{framework}';
|
||||||
|
|
||||||
// Resource types
|
// Resource types
|
||||||
const RESOURCE_TYPE_PROJECTS = 'projects';
|
const RESOURCE_TYPE_PROJECTS = 'projects';
|
||||||
|
|
|
||||||
|
|
@ -335,7 +335,11 @@ class StatsResources extends Action
|
||||||
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_FUNCTIONS, METRIC_RESOURCE_TYPE_DEPLOYMENTS), $deployments);
|
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_FUNCTIONS, METRIC_RESOURCE_TYPE_DEPLOYMENTS), $deployments);
|
||||||
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_FUNCTIONS, METRIC_RESOURCE_TYPE_BUILDS), $deployments);
|
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_FUNCTIONS, METRIC_RESOURCE_TYPE_BUILDS), $deployments);
|
||||||
|
|
||||||
$this->foreachDocument($dbForProject, 'functions', [], function (Document $function) use ($dbForProject, $region) {
|
|
||||||
|
// Count runtimes
|
||||||
|
$runtimes = [];
|
||||||
|
|
||||||
|
$this->foreachDocument($dbForProject, 'functions', [], function (Document $function) use ($dbForProject, $region, &$runtimes) {
|
||||||
$functionDeploymentsStorage = $dbForProject->sum('deployments', 'sourceSize', [
|
$functionDeploymentsStorage = $dbForProject->sum('deployments', 'sourceSize', [
|
||||||
Query::equal('resourceInternalId', [$function->getSequence()]),
|
Query::equal('resourceInternalId', [$function->getSequence()]),
|
||||||
Query::equal('resourceType', [RESOURCE_TYPE_FUNCTIONS]),
|
Query::equal('resourceType', [RESOURCE_TYPE_FUNCTIONS]),
|
||||||
|
|
@ -364,7 +368,19 @@ class StatsResources extends Action
|
||||||
});
|
});
|
||||||
|
|
||||||
$this->createStatsDocuments($region, str_replace(['{resourceType}','{resourceInternalId}'], [RESOURCE_TYPE_FUNCTIONS,$function->getSequence()], METRIC_RESOURCE_TYPE_ID_BUILDS_STORAGE), $functionBuildsStorage);
|
$this->createStatsDocuments($region, str_replace(['{resourceType}','{resourceInternalId}'], [RESOURCE_TYPE_FUNCTIONS,$function->getSequence()], METRIC_RESOURCE_TYPE_ID_BUILDS_STORAGE), $functionBuildsStorage);
|
||||||
|
|
||||||
|
// Runtimes count
|
||||||
|
$runtime = $function->getAttribute('runtime');
|
||||||
|
if (!empty($runtime)) {
|
||||||
|
$runtimes[$runtime] = ($runtimes[$runtime] ?? 0) + 1;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Write runtimes counts
|
||||||
|
foreach ($runtimes as $runtime => $count) {
|
||||||
|
$this->createStatsDocuments($region, str_replace('{runtime}', $runtime, METRIC_FUNCTIONS_RUNTIME), $count);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function countForSites(Database $dbForProject, string $region)
|
protected function countForSites(Database $dbForProject, string $region)
|
||||||
|
|
@ -385,7 +401,10 @@ class StatsResources extends Action
|
||||||
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_SITES, METRIC_RESOURCE_TYPE_DEPLOYMENTS), $deployments);
|
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_SITES, METRIC_RESOURCE_TYPE_DEPLOYMENTS), $deployments);
|
||||||
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_SITES, METRIC_RESOURCE_TYPE_BUILDS), $deployments);
|
$this->createStatsDocuments($region, str_replace("{resourceType}", RESOURCE_TYPE_SITES, METRIC_RESOURCE_TYPE_BUILDS), $deployments);
|
||||||
|
|
||||||
$this->foreachDocument($dbForProject, 'sites', [], function (Document $site) use ($dbForProject, $region) {
|
// Count frameworks
|
||||||
|
$frameworks = [];
|
||||||
|
|
||||||
|
$this->foreachDocument($dbForProject, 'sites', [], function (Document $site) use ($dbForProject, $region, &$frameworks) {
|
||||||
$siteDeploymentsStorage = $dbForProject->sum('deployments', 'sourceSize', [
|
$siteDeploymentsStorage = $dbForProject->sum('deployments', 'sourceSize', [
|
||||||
Query::equal('resourceInternalId', [$site->getSequence()]),
|
Query::equal('resourceInternalId', [$site->getSequence()]),
|
||||||
Query::equal('resourceType', [RESOURCE_TYPE_SITES]),
|
Query::equal('resourceType', [RESOURCE_TYPE_SITES]),
|
||||||
|
|
@ -410,7 +429,18 @@ class StatsResources extends Action
|
||||||
]);
|
]);
|
||||||
|
|
||||||
$this->createStatsDocuments($region, str_replace(['{resourceType}','{resourceInternalId}'], [RESOURCE_TYPE_SITES,$site->getSequence()], METRIC_RESOURCE_TYPE_ID_BUILDS_STORAGE), $siteBuildsStorage);
|
$this->createStatsDocuments($region, str_replace(['{resourceType}','{resourceInternalId}'], [RESOURCE_TYPE_SITES,$site->getSequence()], METRIC_RESOURCE_TYPE_ID_BUILDS_STORAGE), $siteBuildsStorage);
|
||||||
|
|
||||||
|
// Frameworks count
|
||||||
|
$framework = $site->getAttribute('framework');
|
||||||
|
if (!empty($framework)) {
|
||||||
|
$frameworks[$framework] = ($frameworks[$framework] ?? 0) + 1;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Write frameworks counts
|
||||||
|
foreach ($frameworks as $framework => $count) {
|
||||||
|
$this->createStatsDocuments($region, str_replace('{framework}', $framework, METRIC_SITES_FRAMEWORK), $count);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function createStatsDocuments(string $region, string $metric, int $value)
|
protected function createStatsDocuments(string $region, string $metric, int $value)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue