From b96904ec75763abf4e3060e91aaac2ddc31a64bc Mon Sep 17 00:00:00 2001 From: Damodar Lohani Date: Wed, 10 Aug 2022 01:46:36 +0000 Subject: [PATCH] renaming usage stats on influx to contain scope placeholder --- src/Appwrite/Usage/Calculators/TimeSeries.php | 177 +++++++++++------- src/Appwrite/Usage/Stats.php | 70 +++---- 2 files changed, 140 insertions(+), 107 deletions(-) diff --git a/src/Appwrite/Usage/Calculators/TimeSeries.php b/src/Appwrite/Usage/Calculators/TimeSeries.php index c5d4f75d97..065a1ade77 100644 --- a/src/Appwrite/Usage/Calculators/TimeSeries.php +++ b/src/Appwrite/Usage/Calculators/TimeSeries.php @@ -18,220 +18,253 @@ class TimeSeries extends Calculator { // all the mertics that we are collecting protected array $metrics = [ 'project.$all.network.requests' => [ - 'table' => 'appwrite_usage_network_requests', + 'table' => 'appwrite_usage_network_{scope}_requests', ], 'project.$all.network.bandwidth' => [ - 'table' => 'appwrite_usage_network_bandwidth', + 'table' => 'appwrite_usage_network_{scope}_bandwidth', ], 'project.$all.network.inbound' => [ - 'table' => 'appwrite_usage_network_inbound', + 'table' => 'appwrite_usage_network_{scope}_inbound', ], 'project.$all.network.outbound' => [ - 'table' => 'appwrite_usage_network_outbound', + 'table' => 'appwrite_usage_network_{scope}_outbound', ], /* Users service metrics */ 'users.$all.requests.create' => [ - 'table' => 'appwrite_usage_users_requests_create', + 'table' => 'appwrite_usage_users_{scope}_requests_create', ], 'users.$all.requests.read' => [ - 'table' => 'appwrite_usage_users_requests_read', + 'table' => 'appwrite_usage_users_{scope}_requests_read', ], 'users.$all.requests.update' => [ - 'table' => 'appwrite_usage_users_requests_update', + 'table' => 'appwrite_usage_users_{scope}_requests_update', ], 'users.$all.requests.delete' => [ - 'table' => 'appwrite_usage_users_requests_delete', + 'table' => 'appwrite_usage_users_{scope}_requests_delete', ], 'databases.$all.requests.create' => [ - 'table' => 'appwrite_usage_databases_requests_create', + 'table' => 'appwrite_usage_databases_{scope}_requests_create', ], 'databases.$all.requests.read' => [ - 'table' => 'appwrite_usage_databases_requests_read', + 'table' => 'appwrite_usage_databases_{scope}_requests_read', ], 'databases.$all.requests.update' => [ - 'table' => 'appwrite_usage_databases_requests_update', + 'table' => 'appwrite_usage_databases_{scope}_requests_update', ], 'databases.$all.requests.delete' => [ - 'table' => 'appwrite_usage_databases_requests_delete', + 'table' => 'appwrite_usage_databases_{scope}_requests_delete', ], 'collections.$all.requests.create' => [ - 'table' => 'appwrite_usage_dollections_requests_create', + 'table' => 'appwrite_usage_dollections_{scope}_requests_create', ], 'collections.$all.requests.read' => [ - 'table' => 'appwrite_usage_collections_requests_read', + 'table' => 'appwrite_usage_collections_{scope}_requests_read', ], 'collections.$all.requests.update' => [ - 'table' => 'appwrite_usage_collections_requests_update', + 'table' => 'appwrite_usage_collections_{scope}_requests_update', ], 'collections.$all.requests.delete' => [ - 'table' => 'appwrite_usage_collections_requests_delete', + 'table' => 'appwrite_usage_collections_{scope}_requests_delete', ], 'documents.$all.requests.create' => [ - 'table' => 'appwrite_usage_documents_requests_create', + 'table' => 'appwrite_usage_documents_{scope}_requests_create', ], 'documents.$all.requests.read' => [ - 'table' => 'appwrite_usage_documents_requests_read', + 'table' => 'appwrite_usage_documents_{scope}_requests_read', ], 'documents.$all.requests.update' => [ - 'table' => 'appwrite_usage_documents_requests_update', + 'table' => 'appwrite_usage_documents_{scope}_requests_update', ], 'documents.$all.requests.delete' => [ - 'table' => 'appwrite_usage_documents_requests_delete', + 'table' => 'appwrite_usage_documents_{scope}_requests_delete', ], 'collections.databaseId.requests.create' => [ - 'table' => 'appwrite_usage_collections_requests_create', + 'table' => 'appwrite_usage_collections_{scope}_requests_create', 'groupBy' => ['databaseId'], ], 'collections.databaseId.requests.read' => [ - 'table' => 'appwrite_usage_collections_requests_read', + 'table' => 'appwrite_usage_collections_{scope}_requests_read', 'groupBy' => ['databaseId'], ], 'collections.databaseId.requests.update' => [ - 'table' => 'appwrite_usage_collections_requests_update', + 'table' => 'appwrite_usage_collections_{scope}_requests_update', 'groupBy' => ['databaseId'], ], 'collections.databaseId.requests.delete' => [ - 'table' => 'appwrite_usage_collections_requests_delete', + 'table' => 'appwrite_usage_collections_{scope}_requests_delete', 'groupBy' => ['databaseId'], ], 'documents.databaseId.requests.create' => [ - 'table' => 'appwrite_usage_documents_requests_create', + 'table' => 'appwrite_usage_documents_{scope}_requests_create', 'groupBy' => ['databaseId'], ], 'documents.databaseId.requests.read' => [ - 'table' => 'appwrite_usage_documents_requests_read', + 'table' => 'appwrite_usage_documents_{scope}_requests_read', 'groupBy' => ['databaseId'], ], 'documents.databaseId.requests.update' => [ - 'table' => 'appwrite_usage_documents_requests_update', + 'table' => 'appwrite_usage_documents_{scope}_requests_update', 'groupBy' => ['databaseId'], ], 'documents.databaseId.requests.delete' => [ - 'table' => 'appwrite_usage_documents_requests_delete', + 'table' => 'appwrite_usage_documents_{scope}_requests_delete', 'groupBy' => ['databaseId'], ], 'documents.databaseId/collectionId.requests.create' => [ - 'table' => 'appwrite_usage_documents_requests_create', + 'table' => 'appwrite_usage_documents_{scope}_requests_create', 'groupBy' => ['databaseId', 'collectionId'], ], 'documents.databaseId/collectionId.requests.read' => [ - 'table' => 'appwrite_usage_documents_requests_read', + 'table' => 'appwrite_usage_documents_{scope}_requests_read', 'groupBy' => ['databaseId', 'collectionId'], ], 'documents.databaseId/collectionId.requests.update' => [ - 'table' => 'appwrite_usage_documents_requests_update', + 'table' => 'appwrite_usage_documents_{scope}_requests_update', 'groupBy' => ['databaseId', 'collectionId'], ], 'documents.databaseId/collectionId.requests.delete' => [ - 'table' => 'appwrite_usage_documents_requests_delete', + 'table' => 'appwrite_usage_documents_{scope}_requests_delete', 'groupBy' => ['databaseId', 'collectionId'], ], 'buckets.$all.requests.create' => [ - 'table' => 'appwrite_usage_buckets_requests_create', + 'table' => 'appwrite_usage_buckets_{scope}_requests_create', ], 'buckets.$all.requests.read' => [ - 'table' => 'appwrite_usage_buckets_requests_read', + 'table' => 'appwrite_usage_buckets_{scope}_requests_read', ], 'buckets.$all.requests.update' => [ - 'table' => 'appwrite_usage_buckets_requests_update', + 'table' => 'appwrite_usage_buckets_{scope}_requests_update', ], 'buckets.$all.requests.delete' => [ - 'table' => 'appwrite_usage_buckets_requests_delete', + 'table' => 'appwrite_usage_buckets_{scope}_requests_delete', ], 'files.$all.requests.create' => [ - 'table' => 'appwrite_usage_files_requests_create', + 'table' => 'appwrite_usage_files_{scope}_requests_create', ], 'files.$all.requests.read' => [ - 'table' => 'appwrite_usage_files_requests_read', + 'table' => 'appwrite_usage_files_{scope}_requests_read', ], 'files.$all.requests.update' => [ - 'table' => 'appwrite_usage_files_requests_update', + 'table' => 'appwrite_usage_files_{scope}_requests_update', ], 'files.$all.requests.delete' => [ - 'table' => 'appwrite_usage_files_requests_delete', + 'table' => 'appwrite_usage_files_{scope}_requests_delete', ], 'files.bucketId.requests.create' => [ - 'table' => 'appwrite_usage_files_requests_create', + 'table' => 'appwrite_usage_files_{scope}_requests_create', 'groupBy' => ['bucketId'], ], 'files.bucketId.requests.read' => [ - 'table' => 'appwrite_usage_files_requests_read', + 'table' => 'appwrite_usage_files_{scope}_requests_read', 'groupBy' => ['bucketId'], ], 'files.bucketId.requests.update' => [ - 'table' => 'appwrite_usage_files_requests_update', + 'table' => 'appwrite_usage_files_{scope}_requests_update', 'groupBy' => ['bucketId'], ], 'files.bucketId.requests.delete' => [ - 'table' => 'appwrite_usage_files_requests_delete', + 'table' => 'appwrite_usage_files_{scope}_requests_delete', 'groupBy' => ['bucketId'], ], - 'users.sessions.create' => [ - 'table' => 'appwrite_usage_users_sessions_create', + 'sessions.$all.requests.create' => [ + 'table' => 'appwrite_usage_sessions__{scope}_requests_create', ], - 'users.sessions.provider.create' => [ - 'table' => 'appwrite_usage_users_sessions_create', + 'sessions.provider.requests.create' => [ + 'table' => 'appwrite_usage_sessions_{scope}_requests_create', 'groupBy' => ['provider'], ], - 'users.sessions.delete' => [ - 'table' => 'appwrite_usage_users_sessions_delete', + 'sessions.$all.requests.delete' => [ + 'table' => 'appwrite_usage_sessions_{scope}_requests_delete', ], - 'functions.executions' => [ - 'table' => 'appwrite_usage_functions_executions_all', + 'executions.$all.compute.total' => [ + 'table' => 'appwrite_usage_executions_{scope}_compute', ], - 'functions.builds' => [ - 'table' => 'appwrite_usage_functions_builds_all', + 'builds.$all.compute.total' => [ + 'table' => 'appwrite_usage_builds_{scope}_compute', ], - 'functions.failures' => [ - 'table' => 'appwrite_usage_functions_executions_all', + 'executions.$all.compute.failures' => [ + 'table' => 'appwrite_usage_executions_{scope}_compute', 'filters' => [ 'functionStatus' => 'failed', ], ], - 'functions.functionId.executions' => [ - 'table' => 'appwrite_usage_functions_executions_all', + 'builds.$all.compute.failures' => [ + 'table' => 'appwrite_usage_builds_{scope}_compute', + 'filters' => [ + 'functionStatus' => 'failed', + ], + ], + 'executions.$all.compute.success' => [ + 'table' => 'appwrite_usage_executions_{scope}_compute', + 'filters' => [ + 'functionStatus' => 'success', + ], + ], + 'builds.$all.compute.success' => [ + 'table' => 'appwrite_usage_builds_{scope}_compute', + 'filters' => [ + 'functionStatus' => 'success', + ], + ], + 'executions.functionId.compute.total' => [ + 'table' => 'appwrite_usage_executions_{scope}_compute', 'groupBy' => ['functionId'], ], - 'functions.functionId.builds' => [ - 'table' => 'appwrite_usage_functions_builds_all', + 'builds.functionId.compute.total' => [ + 'table' => 'appwrite_usage_builds_{scope}_compute', 'groupBy' => ['functionId'], ], - 'functions.functionId.execution' => [ - 'table' => 'appwrite_usage_functions_executions_time', + 'executions.functionId.compute.time' => [ + 'table' => 'appwrite_usage_executions_{scope}_compute_time', 'groupBy' => ['functionId'], ], - 'functions.functionId.build' => [ - 'table' => 'appwrite_usage_functions_builds_time', + 'builds.functionId.compute.time' => [ + 'table' => 'appwrite_usage_builds_{scope}_compute_time', 'groupBy' => ['functionId'], ], - 'functions.functionId.compute' => [ // Built time + execution time - 'table' => 'appwrite_usage_functions_compute_time', - 'groupBy' => ['functionId'], - ], - 'functions.functionId.executions.failures' => [ - 'table' => 'appwrite_usage_functions_executions_all', + 'executions.functionId.compute.failures' => [ + 'table' => 'appwrite_usage_executions_{scope}_compute', 'groupBy' => ['functionId'], 'filters' => [ 'functionStatus' => 'failed', ], ], - 'functions.functionId.builds.failures' => [ - 'table' => 'appwrite_usage_functions_builds_all', + 'builds.functionId.compute.failures' => [ + 'table' => 'appwrite_usage_builds_{scope}_compute', 'groupBy' => ['functionId'], 'filters' => [ 'functionBuildStatus' => 'failed', ], ], + 'executions.functionId.compute.success' => [ + 'table' => 'appwrite_usage_executions_{scope}_compute', + 'groupBy' => ['functionId'], + 'filters' => [ + 'functionStatus' => 'success', + ], + ], + 'builds.functionId.compute.success' => [ + 'table' => 'appwrite_usage_builds_{scope}_compute', + 'groupBy' => ['functionId'], + 'filters' => [ + 'functionBuildStatus' => 'success', + ], + ], + + 'project.$all.compute.time' => [ // Built time + execution time + 'table' => 'appwrite_usage_project_{scope}_compute_time', + 'groupBy' => ['functionId'], + ], ]; protected array $period = [ diff --git a/src/Appwrite/Usage/Stats.php b/src/Appwrite/Usage/Stats.php index 4e4ceacfd3..7c5649fdd8 100644 --- a/src/Appwrite/Usage/Stats.php +++ b/src/Appwrite/Usage/Stats.php @@ -104,17 +104,17 @@ class Stats $this->statsd->setNamespace($this->namespace); if ($httpRequest >= 1) { - $this->statsd->increment('network.requests' . $tags . ',method=' . \strtolower($httpMethod)); + $this->statsd->increment('project.{scope}.network.requests' . $tags . ',method=' . \strtolower($httpMethod)); } - $this->statsd->count('network.inbound' . $tags, $networkRequestSize); - $this->statsd->count('network.outbound' . $tags, $networkResponseSize); - $this->statsd->count('network.bandwidth' . $tags, $networkRequestSize + $networkResponseSize); + $this->statsd->count('project.{scope}.network.inbound' . $tags, $networkRequestSize); + $this->statsd->count('project.{scope}.network.outbound' . $tags, $networkResponseSize); + $this->statsd->count('project.{scope}.network.bandwidth' . $tags, $networkRequestSize + $networkResponseSize); $usersMetrics = [ - 'users.requests.create', - 'users.requests.read', - 'users.requests.update', - 'users.requests.delete', + 'users.{scope}.requests.create', + 'users.{scope}.requests.read', + 'users.{scope}.requests.update', + 'users.{scope}.requests.delete', ]; foreach ($usersMetrics as $metric) { @@ -125,18 +125,18 @@ class Stats } $dbMetrics = [ - 'databases.requests.create', - 'databases.requests.read', - 'databases.requests.update', - 'databases.requests.delete', - 'collections.requests.create', - 'collections.requests.read', - 'collections.requests.update', - 'collections.requests.delete', - 'documents.requests.create', - 'documents.requests.read', - 'documents.requests.update', - 'documents.requests.delete', + 'databases.{scope}.requests.create', + 'databases.{scope}.requests.read', + 'databases.{scope}.requests.update', + 'databases.{scope}.requests.delete', + 'collections.{scope}.requests.create', + 'collections.{scope}.requests.read', + 'collections.{scope}.requests.update', + 'collections.{scope}.requests.delete', + 'documents.{scope}.requests.create', + 'documents.{scope}.requests.read', + 'documents.{scope}.requests.update', + 'documents.{scope}.requests.delete', ]; foreach ($dbMetrics as $metric) { @@ -148,14 +148,14 @@ class Stats } $storageMertics = [ - 'buckets.requests.create', - 'buckets.requests.read', - 'buckets.requests.update', - 'buckets.requests.delete', - 'files.requests.create', - 'files.requests.read', - 'files.requests.update', - 'files.requests.delete', + 'buckets.{scope}.requests.create', + 'buckets.{scope}.requests.read', + 'buckets.{scope}.requests.update', + 'buckets.{scope}.requests.delete', + 'files.{scope}.requests.create', + 'files.{scope}.requests.read', + 'files.{scope}.requests.update', + 'files.{scope}.requests.delete', ]; foreach ($storageMertics as $metric) { @@ -167,8 +167,8 @@ class Stats } $sessionsMetrics = [ - 'users.sessions.create', - 'users.sessions.delete', + 'sessions.{scope}.requests.create', + 'sessions.{scope}.requests.delete', ]; foreach ($sessionsMetrics as $metric) { @@ -185,15 +185,15 @@ class Stats } if ($functionExecution >= 1) { - $this->statsd->increment('executions.compute' . $tags . ',functionId=' . $functionId . ',functionStatus=' . $functionStatus); - $this->statsd->count('executions.compute.time' . $tags . ',functionId=' . $functionId, $functionExecutionTime); + $this->statsd->increment('executions.{scope}.compute' . $tags . ',functionId=' . $functionId . ',functionStatus=' . $functionStatus); + $this->statsd->count('executions.{scope}.compute.time' . $tags . ',functionId=' . $functionId, $functionExecutionTime); } if ($functionBuild >= 1) { - $this->statsd->increment('builds.compute' . $tags . ',functionId=' . $functionId . ',functionBuildStatus=' . $functionBuildStatus); - $this->statsd->count('builds.compute.time' . $tags . ',functionId=' . $functionId, $functionExecutionTime); + $this->statsd->increment('builds.{scope}.compute' . $tags . ',functionId=' . $functionId . ',functionBuildStatus=' . $functionBuildStatus); + $this->statsd->count('builds.{scope}.compute.time' . $tags . ',functionId=' . $functionId, $functionExecutionTime); } if ($functionBuild + $functionExecution >= 1) { - $this->statsd->count('compute.time' . $tags . ',functionId=' . $functionId, $functionCompute); + $this->statsd->count('project.{scope}.compute.time' . $tags . ',functionId=' . $functionId, $functionCompute); } $this->reset();