Skip to content

Commit fd74893

Browse files
committed
added logic for counting and saving entities count in the metrics
1 parent 10a08c7 commit fd74893

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

app/Metrics/App/WikiMetrics.php

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use Illuminate\Support\Arr;
99
use Illuminate\Support\Facades\Http;
1010
use Illuminate\Support\Facades\Log;
11+
use PDO;
1112

1213
class WikiMetrics
1314
{
@@ -32,7 +33,7 @@ public function saveMetrics(Wiki $wiki): void
3233
$weeklyActions = $this->getNumberOfActions(self::INTERVAL_WEEKLY);
3334
$monthlyActions = $this->getNumberOfActions(self::INTERVAL_MONTHLY);
3435
$quarterlyActions = $this->getNumberOfActions(self::INTERVAL_QUARTERLY);
35-
36+
$numberOfEntities = $this->getNumberOfEntities();
3637
$monthlyNumberOfUsersPerActivityType = $this->getNumberOfUsersPerActivityType();
3738

3839
$dailyMetrics = new WikiDailyMetrics([
@@ -46,6 +47,10 @@ public function saveMetrics(Wiki $wiki): void
4647
'weekly_actions' => $weeklyActions,
4748
'monthly_actions' => $monthlyActions,
4849
'quarterly_actions' => $quarterlyActions,
50+
'item_count' => $numberOfEntities['120'],
51+
'property_count' => $numberOfEntities['122'],
52+
'lexeme_count' => $numberOfEntities['146'],
53+
'entity_schema_count' => $numberOfEntities['640'],
4954
'monthly_casual_users' => $monthlyNumberOfUsersPerActivityType[0],
5055
'monthly_active_users' => $monthlyNumberOfUsersPerActivityType[1],
5156
]);
@@ -171,4 +176,30 @@ private function getNumberOfUsersPerActivityType() : array
171176
Arr::get($result, 'monthly_active_users',null)
172177
];
173178
}
179+
180+
private function getNumberOfEntities() : array
181+
{
182+
$resultArray = [ 120 => 0, 122 => 0, 146 => 0, 640 => 0 ];
183+
$wikiDb = $this->wiki->wikiDb;
184+
$tablePage = $wikiDb->name . '.' . $wikiDb->prefix . '_page';
185+
$query = "SELECT
186+
page_namespace AS namespace,
187+
COUNT(*) AS count
188+
FROM $tablePage
189+
WHERE page_namespace in (120, 146, 122, 640)
190+
AND page_is_redirect=0 -- non-redirects only
191+
GROUP BY page_namespace";
192+
193+
$manager = app()->db;
194+
$manager->purge('mw');
195+
$conn = $manager->connection('mw');
196+
$pdo = $conn->getPdo();
197+
$result = $pdo->query($query)->fetchAll(PDO::FETCH_ASSOC);
198+
if (count($result) === 0){
199+
return $resultArray;
200+
}
201+
$resultArray = array_column($result, 'count', 'namespace');
202+
203+
return $resultArray;
204+
}
174205
}

app/WikiDailyMetrics.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,10 @@ class WikiDailyMetrics extends Model
2828
'monthly_actions',
2929
'quarterly_actions',
3030
'number_of_triples',
31+
'item_count',
32+
'property_count',
33+
'lexeme_count',
34+
'entity_schema_count',
3135
'monthly_casual_users',
3236
'monthly_active_users',
3337

@@ -42,6 +46,10 @@ class WikiDailyMetrics extends Model
4246
'monthly_actions',
4347
'quarterly_actions',
4448
'number_of_triples',
49+
'item_count',
50+
'property_count',
51+
'lexeme_count',
52+
'entity_schema_count',
4553
'monthly_casual_users',
4654
'monthly_active_users',
4755
];

0 commit comments

Comments
 (0)