Skip to content

Commit 469ac59

Browse files
authored
Merge pull request #10240 from appwrite/pla-3153
feat: telemetry for cache hits and misses
2 parents 596657a + 58d556a commit 469ac59

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

app/controllers/shared/api.php

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
use Utopia\Database\Validator\Authorization;
3232
use Utopia\Queue\Publisher;
3333
use Utopia\System\System;
34+
use Utopia\Telemetry\Adapter as Telemetry;
3435
use Utopia\Validator\WhiteList;
3536

3637
$parseLabel = function (string $label, array $responsePayload, array $requestParams, Document $user) {
@@ -421,7 +422,8 @@
421422
->inject('apiKey')
422423
->inject('plan')
423424
->inject('devKey')
424-
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Publisher $publisher, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, StatsUsage $queueForStatsUsage, Database $dbForProject, callable $timelimit, Document $resourceToken, string $mode, ?Key $apiKey, array $plan, Document $devKey) use ($usageDatabaseListener, $eventDatabaseListener) {
425+
->inject('telemetry')
426+
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Publisher $publisher, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, StatsUsage $queueForStatsUsage, Database $dbForProject, callable $timelimit, Document $resourceToken, string $mode, ?Key $apiKey, array $plan, Document $devKey, Telemetry $telemetry) use ($usageDatabaseListener, $eventDatabaseListener) {
425427

426428
$route = $utopia->getRoute();
427429

@@ -554,6 +556,7 @@
554556
));
555557

556558
$useCache = $route->getLabel('cache', false);
559+
$storageCacheOperationsCounter = $telemetry->createCounter('storage.cache.operations.load');
557560
if ($useCache) {
558561
$route = $utopia->match($request);
559562
$isImageTransformation = $route->getPath() === '/v1/storage/buckets/:bucketId/files/:fileId/preview';
@@ -619,10 +622,12 @@
619622
->addHeader('Cache-Control', sprintf('private, max-age=%d', $timestamp))
620623
->addHeader('X-Appwrite-Cache', 'hit')
621624
->setContentType($cacheLog->getAttribute('mimeType'));
625+
$storageCacheOperationsCounter->add(1, ['result' => 'hit']);
622626
if (!$isImageTransformation || !$isDisabled) {
623627
$response->send($data);
624628
}
625629
} else {
630+
$storageCacheOperationsCounter->add(1, ['result' => 'miss']);
626631
$response
627632
->addHeader('Cache-Control', 'no-cache, no-store, must-revalidate')
628633
->addHeader('Pragma', 'no-cache')

0 commit comments

Comments
 (0)