1
0
Fork 0
mirror of synced 2024-10-02 10:16:27 +13:00

adding build.storage usage

This commit is contained in:
shimon 2022-12-21 11:22:29 +02:00
parent c6b3fb39b1
commit c02ef7b340
6 changed files with 44 additions and 16 deletions

View file

@ -1385,6 +1385,7 @@ App::get('/v1/functions/:functionId/usage')
'functions.' . $function->getId() . '.deployments', 'functions.' . $function->getId() . '.deployments',
'functions.' . $function->getId() . '.deployments.storage', 'functions.' . $function->getId() . '.deployments.storage',
$function->getId() . '.builds', $function->getId() . '.builds',
$function->getId() . '.builds.storage',
$function->getId() . '.builds.compute', $function->getId() . '.builds.compute',
$function->getId() . '.executions', $function->getId() . '.executions',
$function->getId() . '.executions.compute', $function->getId() . '.executions.compute',
@ -1432,9 +1433,10 @@ App::get('/v1/functions/:functionId/usage')
'deployments' => $usage[$metrics[0]], 'deployments' => $usage[$metrics[0]],
'deploymentsStorage' => $usage[$metrics[1]], 'deploymentsStorage' => $usage[$metrics[1]],
'builds' => $usage[$metrics[2]], 'builds' => $usage[$metrics[2]],
'buildsCompute' => $usage[$metrics[3]], 'buildsStorage' => $usage[$metrics[3]],
'executions' => $usage[$metrics[4]], 'buildsCompute' => $usage[$metrics[4]],
'executionsCompute' => $usage[$metrics[5]], 'executions' => $usage[$metrics[5]],
'executionsCompute' => $usage[$metrics[6]],
]), Response::MODEL_USAGE_FUNCTION); ]), Response::MODEL_USAGE_FUNCTION);
}); });
@ -1461,6 +1463,7 @@ App::get('/v1/functions/usage')
'deployments', 'deployments',
'deployments.storage', 'deployments.storage',
'builds', 'builds',
'builds.storage',
'builds.compute', 'builds.compute',
'executions', 'executions',
'executions.compute', 'executions.compute',
@ -1508,8 +1511,9 @@ App::get('/v1/functions/usage')
'deployments' => $usage[$metrics[1]], 'deployments' => $usage[$metrics[1]],
'deploymentsStorage' => $usage[$metrics[2]], 'deploymentsStorage' => $usage[$metrics[2]],
'builds' => $usage[$metrics[3]], 'builds' => $usage[$metrics[3]],
'buildsCompute' => $usage[$metrics[4]], 'buildsStorage' => $usage[$metrics[4]],
'executions' => $usage[$metrics[5]], 'buildsCompute' => $usage[$metrics[5]],
'executionsCompute' => $usage[$metrics[6]], 'executions' => $usage[$metrics[6]],
'executionsCompute' => $usage[$metrics[7]],
]), Response::MODEL_USAGE_FUNCTIONS); ]), Response::MODEL_USAGE_FUNCTIONS);
}); });

View file

@ -252,9 +252,11 @@ class BuildsV1 extends Worker
->getUsageQueue() ->getUsageQueue()
->setProject($project) ->setProject($project)
->addMetric("builds", 1) // per project ->addMetric("builds", 1) // per project
->addMetric("builds.compute", $build->getAttribute('duration')) // per project ->addMetric("builds.storage", $build->getAttribute('size', 0))
->addMetric("builds.compute", $build->getAttribute('duration', 0))
->addMetric("{$function->getId()}" . ".builds", 1) // per function ->addMetric("{$function->getId()}" . ".builds", 1) // per function
->addMetric("{$function->getId()}" . ".builds.compute", $build->getAttribute('duration')) // per function ->addMetric("{$function->getId()}" . ".builds.storage", $build->getAttribute('size', 0))
->addMetric("{$function->getId()}" . ".builds.compute", $build->getAttribute('duration', 0))
->trigger() ->trigger()
; ;
} }

View file

@ -33,6 +33,15 @@ services:
- 8080:80 - 8080:80
- 443:443 - 443:443
- 9500:8080 - 9500:8080
ulimits:
nofile:
soft: 655350
hard: 655350
sysctls:
- net.core.somaxconn=1024
- net.ipv4.tcp_rmem=1024 4096 16384
- net.ipv4.tcp_wmem=1024 4096 16384
- net.ipv4.ip_local_port_range=1025 65535
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
- appwrite-config:/storage/config:ro - appwrite-config:/storage/config:ro
@ -53,7 +62,6 @@ services:
DEBUG: false DEBUG: false
TESTING: true TESTING: true
VERSION: dev VERSION: dev
VITE_CONSOLE_MODE: self-hosted
ports: ports:
- 9501:80 - 9501:80
networks: networks:
@ -655,7 +663,7 @@ services:
image: openruntimes/executor:0.2.0 image: openruntimes/executor:0.2.0
networks: networks:
- appwrite - appwrite
- runtimes - openruntimes-runtimes
volumes: volumes:
- /var/run/docker.sock:/var/run/docker.sock - /var/run/docker.sock:/var/run/docker.sock
- appwrite-builds:/storage/builds:rw - appwrite-builds:/storage/builds:rw
@ -811,8 +819,8 @@ networks:
name: gateway name: gateway
appwrite: appwrite:
name: appwrite name: appwrite
runtimes: openruntimes-runtimes:
name: runtimes name: openruntimes-runtimes
volumes: volumes:
appwrite-mariadb: appwrite-mariadb:
@ -825,3 +833,4 @@ volumes:
appwrite-config: appwrite-config:

View file

@ -37,6 +37,13 @@ class UsageFunction extends Model
'example' => [], 'example' => [],
'array' => true 'array' => true
]) ])
->addRule('buildsStorage', [
'type' => Response::MODEL_METRIC,
'description' => 'Aggregated stats for builds storage.',
'default' => [],
'example' => [],
'array' => true
])
->addRule('buildsCompute', [ ->addRule('buildsCompute', [
'type' => Response::MODEL_METRIC, 'type' => Response::MODEL_METRIC,
'description' => 'Aggregated stats for function build compute.', 'description' => 'Aggregated stats for function build compute.',

View file

@ -44,6 +44,13 @@ class UsageFunctions extends Model
'example' => [], 'example' => [],
'array' => true 'array' => true
]) ])
->addRule('buildsStorage', [
'type' => Response::MODEL_METRIC,
'description' => 'Aggregated stats for builds storage.',
'default' => [],
'example' => [],
'array' => true
])
->addRule('buildsCompute', [ ->addRule('buildsCompute', [
'type' => Response::MODEL_METRIC, 'type' => Response::MODEL_METRIC,
'description' => 'Aggregated stats for function build compute.', 'description' => 'Aggregated stats for function build compute.',

View file

@ -2,7 +2,6 @@
namespace Tests\E2E\General; namespace Tests\E2E\General;
use Appwrite\Tests\Retry;
use Tests\E2E\Client; use Tests\E2E\Client;
use Tests\E2E\Scopes\ProjectCustom; use Tests\E2E\Scopes\ProjectCustom;
use Tests\E2E\Scopes\Scope; use Tests\E2E\Scopes\Scope;
@ -693,7 +692,7 @@ class UsageTest extends Scope
); );
$this->assertEquals(200, $response['headers']['status-code']); $this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals(7, count($response['body'])); $this->assertEquals(8, count($response['body']));
$this->assertEquals('30d', $response['body']['range']); $this->assertEquals('30d', $response['body']['range']);
$this->assertIsArray($response['body']['deployments']); $this->assertIsArray($response['body']['deployments']);
$this->assertIsArray($response['body']['deploymentsStorage']); $this->assertIsArray($response['body']['deploymentsStorage']);
@ -717,7 +716,7 @@ class UsageTest extends Scope
); );
$this->assertEquals(200, $response['headers']['status-code']); $this->assertEquals(200, $response['headers']['status-code']);
$this->assertEquals(8, count($response['body'])); $this->assertEquals(9, count($response['body']));
$this->assertEquals($response['body']['range'], '30d'); $this->assertEquals($response['body']['range'], '30d');
$this->assertIsArray($response['body']['functions']); $this->assertIsArray($response['body']['functions']);
$this->assertIsArray($response['body']['deployments']); $this->assertIsArray($response['body']['deployments']);
@ -737,7 +736,7 @@ class UsageTest extends Scope
$this->validateDates($response['buildsCompute']); $this->validateDates($response['buildsCompute']);
} }
protected function tearDown(): void public function tearDown(): void
{ {
$this->usersCount = 0; $this->usersCount = 0;
$this->requestsCount = 0; $this->requestsCount = 0;