From 868bb9f7743e4c59aef59987e88a873eaf9cb6cd Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Wed, 12 Mar 2025 11:35:32 +0000 Subject: [PATCH] chore: add missing messaging metrics in stats worker --- app/init.php | 9 +-- .../Platform/Workers/StatsResources.php | 55 +++++++++++++++++++ 2 files changed, 58 insertions(+), 6 deletions(-) diff --git a/app/init.php b/app/init.php index 17c1a884f9..e3dd43cb62 100644 --- a/app/init.php +++ b/app/init.php @@ -243,12 +243,9 @@ const METRIC_AUTH_METHOD_PHONE_COUNTRY_CODE = METRIC_AUTH_METHOD_PHONE . '.{cou const METRIC_MESSAGES = 'messages'; const METRIC_MESSAGES_SENT = METRIC_MESSAGES . '.sent'; const METRIC_MESSAGES_FAILED = METRIC_MESSAGES . '.failed'; -const METRIC_MESSAGES_TYPE = METRIC_MESSAGES . '.{type}'; -const METRIC_MESSAGES_TYPE_SENT = METRIC_MESSAGES . '.{type}.sent'; -const METRIC_MESSAGES_TYPE_FAILED = METRIC_MESSAGES . '.{type}.failed'; -const METRIC_MESSAGES_TYPE_PROVIDER = METRIC_MESSAGES . '.{type}.{provider}'; -const METRIC_MESSAGES_TYPE_PROVIDER_SENT = METRIC_MESSAGES . '.{type}.{provider}.sent'; -const METRIC_MESSAGES_TYPE_PROVIDER_FAILED = METRIC_MESSAGES . '.{type}.{provider}.failed'; +const METRIC_MESSAGES_PROVIDER_TYPE = METRIC_MESSAGES . '.{providerType}'; +const METRIC_MESSAGES_PROVIDER_TYPE_SENT = METRIC_MESSAGES . '.{providerType}.sent'; +const METRIC_MESSAGES_PROVIDER_TYPE_FAILED = METRIC_MESSAGES . '.{providerType}.failed'; const METRIC_SESSIONS = 'sessions'; const METRIC_DATABASES = 'databases'; const METRIC_COLLECTIONS = 'collections'; diff --git a/src/Appwrite/Platform/Workers/StatsResources.php b/src/Appwrite/Platform/Workers/StatsResources.php index 969d43e895..f925e636eb 100644 --- a/src/Appwrite/Platform/Workers/StatsResources.php +++ b/src/Appwrite/Platform/Workers/StatsResources.php @@ -2,6 +2,7 @@ namespace Appwrite\Platform\Workers; +use Appwrite\Messaging\Status as MessageStatus; use Appwrite\Platform\Action; use Exception; use Throwable; @@ -131,6 +132,49 @@ class StatsResources extends Action $functions = $dbForProject->count('functions'); $messages = $dbForProject->count('messages'); + $messagesSent = $dbForProject->count('messages', [ + Query::equal('status', [MessageStatus::SENT]) + ]); + $messagesFailed = $dbForProject->count('messages', [ + Query::equal('status', [MessageStatus::FAILED]) + ]); + + $emailMessages = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_EMAIL]) + ]); + $pushMessages = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_PUSH]) + ]); + $smsMessages = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_SMS]) + ]); + + $emailMessagesSent = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_EMAIL]), + Query::equal('status', [MessageStatus::SENT]) + ]); + $pushMessagesSent = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_PUSH]), + Query::equal('status', [MessageStatus::SENT]) + ]); + $smsMessagesSent = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_SMS]), + Query::equal('status', [MessageStatus::SENT]) + ]); + + $emailMessagesFailed = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_EMAIL]), + Query::equal('status', [MessageStatus::FAILED]) + ]); + $pushMessagesFailed = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_PUSH]), + Query::equal('status', [MessageStatus::FAILED]) + ]); + $smsMessagesFailed = $dbForProject->count('messages', [ + Query::equal('providerType', [MESSAGE_TYPE_SMS]), + Query::equal('status', [MessageStatus::FAILED]) + ]); + $providers = $dbForProject->count('providers'); $topics = $dbForProject->count('topics'); $targets = $dbForProject->count('targets'); @@ -151,6 +195,17 @@ class StatsResources extends Action METRIC_FUNCTIONS => $functions, METRIC_TEAMS => $teams, METRIC_MESSAGES => $messages, + METRIC_MESSAGES_SENT => $messagesSent, + METRIC_MESSAGES_FAILED => $messagesFailed, + str_replace('{providerType}', MESSAGE_TYPE_EMAIL, METRIC_MESSAGES_PROVIDER_TYPE) => $emailMessages, + str_replace('{providerType}', MESSAGE_TYPE_PUSH, METRIC_MESSAGES_PROVIDER_TYPE) => $pushMessages, + str_replace('{providerType}', MESSAGE_TYPE_SMS, METRIC_MESSAGES_PROVIDER_TYPE) => $smsMessages, + str_replace('{providerType}', MESSAGE_TYPE_EMAIL, METRIC_MESSAGES_PROVIDER_TYPE_SENT) => $emailMessagesSent, + str_replace('{providerType}', MESSAGE_TYPE_PUSH, METRIC_MESSAGES_PROVIDER_TYPE_SENT) => $pushMessagesSent, + str_replace('{providerType}', MESSAGE_TYPE_SMS, METRIC_MESSAGES_PROVIDER_TYPE_SENT) => $smsMessagesSent, + str_replace('{providerType}', MESSAGE_TYPE_EMAIL, METRIC_MESSAGES_PROVIDER_TYPE_FAILED) => $emailMessagesFailed, + str_replace('{providerType}', MESSAGE_TYPE_PUSH, METRIC_MESSAGES_PROVIDER_TYPE_FAILED) => $pushMessagesFailed, + str_replace('{providerType}', MESSAGE_TYPE_SMS, METRIC_MESSAGES_PROVIDER_TYPE_FAILED) => $smsMessagesFailed, METRIC_MAU => $usersMAU, METRIC_DAU => $usersDAU, METRIC_WAU => $usersWAU,