1
0
Fork 0
mirror of synced 2024-06-02 10:54:44 +12:00

buckets related metrics

This commit is contained in:
Damodar Lohani 2021-09-10 14:34:16 +05:45
parent 2b55e50c68
commit 2f9849f957
3 changed files with 62 additions and 16 deletions

View file

@ -55,10 +55,12 @@ App::post('/v1/storage/buckets')
->inject('response')
->inject('dbForInternal')
->inject('audits')
->action(function ($bucketId, $name, $read, $write, $maximumFileSize, $allowedFileExtensions, $enabled, $adapter, $encryption, $antiVirus, $response, $dbForInternal, $audits) {
->inject('usage')
->action(function ($bucketId, $name, $read, $write, $maximumFileSize, $allowedFileExtensions, $enabled, $adapter, $encryption, $antiVirus, $response, $dbForInternal, $audits, $usage) {
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Database\Database $dbForInternal */
/** @var Appwrite\Event\Event $audits */
/** @var Appwrite\Stats\Stats $usage */
$bucketId = $bucketId == 'unique()' ? $dbForInternal->getId() : $bucketId;
try {
@ -260,6 +262,8 @@ App::post('/v1/storage/buckets')
->setParam('data', $bucket->getArrayCopy())
;
$usage->setParam('storage.buckets.create', 1);
$response->setStatusCode(Response::STATUS_CODE_CREATED);
$response->dynamic($bucket, Response::MODEL_BUCKET);
});
@ -282,9 +286,11 @@ App::get('/v1/storage/buckets')
->param('orderType', 'ASC', new WhiteList(['ASC', 'DESC'], true), 'Order result by ASC or DESC order.', true)
->inject('response')
->inject('dbForInternal')
->action(function ($search, $limit, $offset, $after, $orderType, $response, $dbForInternal) {
->inject('usage')
->action(function ($search, $limit, $offset, $after, $orderType, $response, $dbForInternal, $usage) {
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Database\Database $dbForInternal */
/** @var Appwrite\Stats\Stats $usage */
$queries = ($search) ? [new Query('name', Query::TYPE_SEARCH, $search)] : [];
@ -296,6 +302,8 @@ App::get('/v1/storage/buckets')
}
}
$usage->setParam('storage.buckets.read', 1);
$response->dynamic(new Document([
'buckets' => $dbForInternal->find('buckets', $queries, $limit, $offset, [], [$orderType], $afterBucket ?? null),
'sum' => $dbForInternal->count('buckets', $queries, APP_LIMIT_COUNT),
@ -316,9 +324,11 @@ App::get('/v1/storage/buckets/:bucketId')
->param('bucketId', '', new UID(), 'Bucket unique ID.')
->inject('response')
->inject('dbForInternal')
->action(function ($bucketId, $response, $dbForInternal) {
->inject('usage')
->action(function ($bucketId, $response, $dbForInternal, $usage) {
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Database\Database $dbForInternal */
/** @var Appwrite\Stats\Stats $usage */
$bucket = $dbForInternal->getDocument('buckets', $bucketId);
@ -326,6 +336,8 @@ App::get('/v1/storage/buckets/:bucketId')
throw new Exception('Bucket not found', 404);
}
$usage->setParam('storage.buckets.read', 1);
$response->dynamic($bucket, Response::MODEL_BUCKET);
});
@ -353,10 +365,12 @@ App::put('/v1/storage/buckets/:bucketId')
->inject('response')
->inject('dbForInternal')
->inject('audits')
->action(function ($bucketId, $name, $read, $write, $maximumFileSize, $allowedFileExtensions, $enabled, $encryption, $antiVirus, $response, $dbForInternal, $audits) {
->inject('usage')
->action(function ($bucketId, $name, $read, $write, $maximumFileSize, $allowedFileExtensions, $enabled, $encryption, $antiVirus, $response, $dbForInternal, $audits, $usage) {
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Database\Database $dbForInternal */
/** @var Appwrite\Event\Event $audits */
/** @var Appwrite\Stats\Stats $usage */
$bucket = $dbForInternal->getDocument('buckets', $bucketId);
@ -391,6 +405,8 @@ App::put('/v1/storage/buckets/:bucketId')
->setParam('data', $bucket->getArrayCopy())
;
$usage->setParam('storage.buckets.update', 1);
$response->dynamic($bucket, Response::MODEL_BUCKET);
});
@ -411,12 +427,14 @@ App::delete('/v1/storage/buckets/:bucketId')
->inject('audits')
->inject('deletes')
->inject('events')
->action(function ($bucketId, $response, $dbForInternal, $audits, $deletes, $events) {
->inject('usage')
->action(function ($bucketId, $response, $dbForInternal, $audits, $deletes, $events, $usage) {
/** @var Appwrite\Utopia\Response $response */
/** @var Utopia\Database\Database $dbForInternal */
/** @var Appwrite\Event\Event $audits */
/** @var Appwrite\Event\Event $deletes */
/** @var Appwrite\Event\Event $events */
/** @var Appwrite\Stats\Stats $usage */
$bucket = $dbForInternal->getDocument('buckets', $bucketId);
@ -443,6 +461,8 @@ App::delete('/v1/storage/buckets/:bucketId')
->setParam('data', $bucket->getArrayCopy())
;
$usage->setParam('storage.buckets.delete', 1);
$response->noContent();
});
@ -599,7 +619,7 @@ App::post('/v1/storage/buckets/:bucketId/files')
$usage
->setParam('storage', $sizeActual)
->setParam('storage.files.create', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
$response->setStatusCode(Response::STATUS_CODE_CREATED);
@ -655,7 +675,7 @@ App::get('/v1/storage/buckets/:bucketId/files')
$usage
->setParam('storage.files.read', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
$response->dynamic(new Document([
@ -699,7 +719,7 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId')
}
$usage
->setParam('storage.files.read', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
$response->dynamic($file, Response::MODEL_FILE);
});
@ -858,7 +878,7 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/preview')
$usage
->setParam('storage.files.read', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
$response
@ -931,7 +951,7 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/download')
$usage
->setParam('storage.files.read', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
// Response
@ -1012,7 +1032,7 @@ App::get('/v1/storage/buckets/:bucketId/files/:fileId/view')
$usage
->setParam('storage.files.read', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
// Response
@ -1078,7 +1098,7 @@ App::put('/v1/storage/buckets/:bucketId/files/:fileId')
$usage
->setParam('storage.files.update', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
$response->dynamic($file, Response::MODEL_FILE);
@ -1138,7 +1158,7 @@ App::delete('/v1/storage/buckets/:bucketId/files/:fileId')
$usage
->setParam('storage', $file->getAttribute('size', 0) * -1)
->setParam('storage.files.delete', 1)
->setParam('bucketId', 'default')
->setParam('bucketId', $bucketId)
;
$events

View file

@ -38,7 +38,11 @@ use Utopia\Database\Validator\Authorization;
* database.collections.{collectionId}.documents.delete
*
* Storage
*
*
* storage.buckets.create
* storage.buckets.read
* storage.buckets.update
* storage.buckets.delete
* storage.buckets.{bucketId}.files.create
* storage.buckets.{bucketId}.files.read
* storage.buckets.{bucketId}.files.update
@ -63,6 +67,7 @@ use Utopia\Database\Validator\Authorization;
* Counters
*
* users.count
* storage.buckets.count
* storage.files.count
* database.collections.count
* database.documents.count
@ -144,6 +149,18 @@ $cli
'table' => 'appwrite_usage_database_documents_delete',
'groupBy' => 'collectionId',
],
'storage.buckets.create' => [
'table' => 'appwrite_usage_storage_buckets_create',
],
'storage.buckets.read' => [
'table' => 'appwrite_usage_storage_buckets_read',
],
'storage.buckets.update' => [
'table' => 'appwrite_usage_storage_buckets_update',
],
'storage.buckets.delete' => [
'table' => 'appwrite_usage_storage_buckets_delete',
],
'storage.buckets.bucketId.files.create' => [
'table' => 'appwrite_usage_storage_files_create',
'groupBy' => 'bucketId',
@ -380,10 +397,15 @@ $cli
],
],
],
'files' => [
'buckets' => [
'metricPrefix' => 'storage',
'namespace' => 'internal',
],
'subCollections' => [
'files' => [
'namespace' => 'internal',
],
]
]
];
foreach ($collections as $collection => $options) {

View file

@ -132,6 +132,10 @@ class Stats
}
$storageMertics = [
'storage.buckets.create',
'storage.buckets.read',
'storage.buckets.update',
'storage.buckets.delete',
'storage.files.create',
'storage.files.read',
'storage.files.update',