Skip to content

Commit 44a6dd5

Browse files
committed
Add metric: total # of users
1 parent 65db55c commit 44a6dd5

3 files changed

Lines changed: 18 additions & 0 deletions

File tree

app/Metrics/App/WikiMetrics.php

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public function saveMetrics(Wiki $wiki): void {
3535
$monthlyActions = $this->getNumberOfActions(self::INTERVAL_MONTHLY);
3636
$quarterlyActions = $this->getNumberOfActions(self::INTERVAL_QUARTERLY);
3737
$numberOfEntities = $this->getNumberOfEntities();
38+
$totalNumberOfUsers = $this->getTotalUserCount();
3839
$monthlyNumberOfUsersPerActivityType = $this->getNumberOfUsersPerActivityType();
3940

4041
$dailyMetrics = new WikiDailyMetrics([
@@ -54,6 +55,7 @@ public function saveMetrics(Wiki $wiki): void {
5455
'entity_schema_count' => $numberOfEntities['640'],
5556
'monthly_casual_users' => $monthlyNumberOfUsersPerActivityType[0],
5657
'monthly_active_users' => $monthlyNumberOfUsersPerActivityType[1],
58+
'wiki_user_count' => $totalNumberOfUsers,
5759
]);
5860

5961
// compare current record to old record and only save if there is a change
@@ -210,4 +212,16 @@ private function getNumberOfEntities(): array {
210212

211213
return $result;
212214
}
215+
216+
private function getTotalUserCount() {
217+
$wikiDb = $this->wiki->wikiDb;
218+
$tableUser = $wikiDb->name . '.' . $wikiDb->prefix . '_user';
219+
$query = "SELECT COUNT(*) AS total_users FROM $tableUser";
220+
$manager = app()->db;
221+
$manager->purge('mw');
222+
$conn = $manager->connection('mw');
223+
$pdo = $conn->getPdo();
224+
$result = $pdo->query($query)->fetchAll(PDO::FETCH_ASSOC);
225+
return $result['total_users'];
226+
}
213227
}

app/WikiDailyMetrics.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ class WikiDailyMetrics extends Model {
3333
'entity_schema_count',
3434
'monthly_casual_users',
3535
'monthly_active_users',
36+
'wiki_user_count',
3637

3738
];
3839

@@ -51,6 +52,7 @@ class WikiDailyMetrics extends Model {
5152
'entity_schema_count',
5253
'monthly_casual_users',
5354
'monthly_active_users',
55+
'wiki_user_count',
5456
];
5557

5658
public function areMetricsEqual(WikiDailyMetrics $wikiDailyMetrics): bool {

tests/Jobs/UpdateWikiDailyMetricJobTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ public function testRunJobForAllWikisIncludingDeletedWikis() {
5757
'property_count' => 0,
5858
'lexeme_count' => 0,
5959
'entity_schema_count' => 0,
60+
'wiki_user_count' => 0,
6061
]);
6162

6263
$this->assertDatabaseHas('wiki_daily_metrics', [
@@ -70,6 +71,7 @@ public function testRunJobForAllWikisIncludingDeletedWikis() {
7071
'property_count' => 0,
7172
'lexeme_count' => 0,
7273
'entity_schema_count' => 0,
74+
'wiki_user_count' => 0,
7375
]);
7476
}
7577
}

0 commit comments

Comments
 (0)