Addshore has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/300703

Change subject: Factor user_groups queries into 1 script
......................................................................

Factor user_groups queries into 1 script

Change-Id: I2671c59c80fee8013eadd7effd4580ff32150a8c
---
M cron/daily.03.sh
D src/wikidata/site_stats/admins.php
D src/wikidata/site_stats/bots.php
D src/wikidata/site_stats/bureaucrats.php
D src/wikidata/site_stats/propertycreators.php
A src/wikidata/site_stats/user_groups.php
6 files changed, 44 insertions(+), 124 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/analytics/wmde/scripts 
refs/changes/03/300703/1

diff --git a/cron/daily.03.sh b/cron/daily.03.sh
index e16adff..9e8db9c 100755
--- a/cron/daily.03.sh
+++ b/cron/daily.03.sh
@@ -46,10 +46,7 @@
 eval "$1/src/wikidata/site_stats/total_pages.php"
 eval "$1/src/wikidata/site_stats/active_users.php"
 eval "$1/src/wikidata/site_stats/users.php"
-eval "$1/src/wikidata/site_stats/admins.php"
-eval "$1/src/wikidata/site_stats/bureaucrats.php"
-eval "$1/src/wikidata/site_stats/bots.php"
-eval "$1/src/wikidata/site_stats/propertycreators.php"
+eval "$1/src/wikidata/site_stats/user_groups.php"
 eval "$1/src/wikidata/site_stats/rolling_rc.php"
 eval "$1/src/wikidata/site_stats/pages_by_namespace.php"
 eval "$1/src/wikidata/site_stats/user_languages.php"
diff --git a/src/wikidata/site_stats/admins.php 
b/src/wikidata/site_stats/admins.php
deleted file mode 100755
index ec60627..0000000
--- a/src/wikidata/site_stats/admins.php
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/php
-<?php
-
-/**
- * @author Addshore
- * Used by: https://grafana.wikimedia.org/dashboard/db/wikidata-site-stats
- */
-
-require_once( __DIR__ . '/../../../lib/load.php' );
-Output::startScript( __FILE__ );
-
-$metrics = new WikidataAdmins();
-$metrics->execute();
-
-class WikidataAdmins{
-
-       public function execute() {
-               $pdo = WikimediaDb::getPdo();
-               $result = $pdo->query( "select count(*) as count from 
wikidatawiki.user_groups where ug_group = 'sysop' group by ug_group" );
-
-               if( $result === false ) {
-                       throw new RuntimeException( "Something went wrong with 
the db query for admins" );
-               }
-               $rows = $result->fetchAll();
-               $count = $rows[0]['count'];
-               WikimediaGraphite::sendNow( 
"daily.wikidata.site_stats.user_groups.admins", $count );
-       }
-
-}
diff --git a/src/wikidata/site_stats/bots.php b/src/wikidata/site_stats/bots.php
deleted file mode 100755
index 8a4f5a5..0000000
--- a/src/wikidata/site_stats/bots.php
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/php
-<?php
-
-/**
- * @author Addshore
- * Used by: https://grafana.wikimedia.org/dashboard/db/wikidata-site-stats
- */
-
-require_once( __DIR__ . '/../../../lib/load.php' );
-Output::startScript( __FILE__ );
-
-$metrics = new WikidataBots();
-$metrics->execute();
-
-class WikidataBots{
-
-       public function execute() {
-               $pdo = WikimediaDb::getPdo();
-               $result = $pdo->query( "select count(*) as count from 
wikidatawiki.user_groups where ug_group = 'bot' group by ug_group" );
-
-               if( $result === false ) {
-                       throw new RuntimeException( "Something went wrong with 
the db query for bots" );
-               }
-               $rows = $result->fetchAll();
-               $count = $rows[0]['count'];
-               WikimediaGraphite::sendNow( 
"daily.wikidata.site_stats.user_groups.bots", $count );
-       }
-
-}
diff --git a/src/wikidata/site_stats/bureaucrats.php 
b/src/wikidata/site_stats/bureaucrats.php
deleted file mode 100755
index 9f51469..0000000
--- a/src/wikidata/site_stats/bureaucrats.php
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/php
-<?php
-
-/**
- * @author Addshore
- * Used by: https://grafana.wikimedia.org/dashboard/db/wikidata-site-stats
- */
-
-require_once( __DIR__ . '/../../../lib/load.php' );
-Output::startScript( __FILE__ );
-
-$metrics = new WikidataBureaucrats();
-$metrics->execute();
-
-class WikidataBureaucrats{
-
-       public function execute() {
-               $pdo = WikimediaDb::getPdo();
-               $result = $pdo->query( "select count(*) as count from 
wikidatawiki.user_groups where ug_group = 'bureaucrat' group by ug_group" );
-
-               if( $result === false ) {
-                       throw new RuntimeException( "Something went wrong with 
the db query for bureaucrats" );
-               }
-               $rows = $result->fetchAll();
-               $count = $rows[0]['count'];
-               WikimediaGraphite::sendNow( 
"daily.wikidata.site_stats.user_groups.bureaucrats", $count );
-       }
-
-}
diff --git a/src/wikidata/site_stats/propertycreators.php 
b/src/wikidata/site_stats/propertycreators.php
deleted file mode 100755
index cc08115..0000000
--- a/src/wikidata/site_stats/propertycreators.php
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/usr/bin/php
-<?php
-
-/**
- * @author Addshore
- * Used by: https://grafana.wikimedia.org/dashboard/db/wikidata-site-stats
- */
-
-require_once( __DIR__ . '/../../../lib/load.php' );
-Output::startScript( __FILE__ );
-
-$metrics = new WikidataPropertycreators();
-$metrics->execute();
-
-class WikidataPropertycreators{
-
-       public function execute() {
-               $pdo = WikimediaDb::getPdo();
-               $result = $pdo->query( "select count(*) as count from 
wikidatawiki.user_groups where ug_group = 'propertycreator' group by ug_group" 
);
-
-               if( $result === false ) {
-                       throw new RuntimeException(
-                               "Something went wrong with the db query for 
propertycreators"
-                       );
-               }
-               $rows = $result->fetchAll();
-               $count = $rows[0]['count'];
-               WikimediaGraphite::sendNow(
-                       
"daily.wikidata.site_stats.user_groups.propertycreators",
-                       $count );
-       }
-
-}
diff --git a/src/wikidata/site_stats/user_groups.php 
b/src/wikidata/site_stats/user_groups.php
new file mode 100644
index 0000000..4e3caf2
--- /dev/null
+++ b/src/wikidata/site_stats/user_groups.php
@@ -0,0 +1,43 @@
+#!/usr/bin/php
+<?php
+
+/**
+ * @author Addshore
+ * Used by: https://grafana.wikimedia.org/dashboard/db/wikidata-site-stats
+ */
+
+require_once( __DIR__ . '/../../../lib/load.php' );
+Output::startScript( __FILE__ );
+
+// Map of group name => metric name
+$groupMap = array(
+       'sysop' => 'admins',
+       'bureaucrat' => 'bureaucrats',
+       'bot' => 'bots',
+       'propertycreator' => 'propertycreators',
+);
+
+$metrics = new WikidataUserGroups();
+$metrics->execute( $groupMap );
+
+class WikidataUserGroups{
+
+       public function execute( array $groupMap ) {
+               $pdo = WikimediaDb::getPdo();
+               foreach ( $groupMap as $group => $metricName ) {
+                       Output::timestampedMessage( "Running query for 
$metricName group" );
+                       $result = $pdo->query(
+                               "SELECT count(*) AS count FROM 
wikidatawiki.user_groups WHERE ug_group = '$group' GROUP BY ug_group"
+                       );
+
+                       if( $result === false ) {
+                               Output::timestampedMessage( "DB query for 
$metricName failed" );
+                               continue;
+                       }
+                       $rows = $result->fetchAll();
+                       $count = $rows[0]['count'];
+                       WikimediaGraphite::sendNow( 
"daily.wikidata.site_stats.user_groups.$metricName", $count );
+               }
+       }
+
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/300703
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2671c59c80fee8013eadd7effd4580ff32150a8c
Gerrit-PatchSet: 1
Gerrit-Project: analytics/wmde/scripts
Gerrit-Branch: master
Gerrit-Owner: Addshore <addshorew...@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to