diff options
author | fligtar@gmail.com <fligtar@gmail.com@4eb1ac78-321c-0410-a911-ec516a8615a5> | 2009-06-16 18:12:02 (GMT) |
---|---|---|
committer | fligtar@gmail.com <fligtar@gmail.com@4eb1ac78-321c-0410-a911-ec516a8615a5> | 2009-06-16 18:12:02 (GMT) |
commit | 93f67a3daae077673fd9ca45a04e1bf95c7932eb (patch) | |
tree | 046424682b39b2e9810c7da7889d2eaf43c077a6 /bin | |
parent | 5800d5cb5cf76972bff27728007cb9c9cca93efa (diff) |
adding more global_stats; bug 498266; r=clouserw
git-svn-id: http://svn.mozilla.org/addons/trunk@27879 4eb1ac78-321c-0410-a911-ec516a8615a5
Diffstat (limited to 'bin')
-rwxr-xr-x | bin/maintenance.php | 74 |
1 files changed, 53 insertions, 21 deletions
diff --git a/bin/maintenance.php b/bin/maintenance.php index 293249d..0e98475 100755 --- a/bin/maintenance.php +++ b/bin/maintenance.php @@ -504,28 +504,60 @@ switch ($action) { */ case 'global_stats': echo "Starting global stats update...\n"; + $affected_rows = 0; - $db->write(" - REPLACE INTO global_stats - (name, count, modified) - VALUES - ('addons_downloaded', ( - SELECT SUM(count) - FROM download_counts - ), now()) - "); - $affected_rows += mysql_affected_rows(); - $db->write(" - REPLACE INTO global_stats - (name, count, modified) - VALUES - ('addons_in_use', ( - SELECT SUM(count) - FROM update_counts - WHERE date > ((SELECT MAX(date) FROM update_counts) - INTERVAL 1 DAY) - ), now()) - "); - $affected_rows += mysql_affected_rows(); + + $stats = array( + // Total downloads + 'addon_total_downloads' => 'SELECT SUM(count) FROM download_counts', + + // Add-on counts + 'addon_count_public' => 'SELECT COUNT(*) FROM addons WHERE status = 4 AND inactive = 0', + 'addon_count_pending' => 'SELECT COUNT(*) FROM versions INNER JOIN files ON versions.id = files.version_id WHERE files.status = 2', + 'addon_count_experimental' => 'SELECT COUNT(*) FROM addons WHERE status = 1 AND inactive = 0', + 'addon_count_nominated' => 'SELECT COUNT(*) FROM addons WHERE status = 3 AND inactive = 0', + + // Collection counts + 'collection_count_total' => 'SELECT COUNT(*) FROM collections', + 'collection_count_private' => 'SELECT COUNT(*) FROM collections WHERE listed = 0', + 'collection_count_public' => 'SELECT COUNT(*) FROM collections WHERE listed = 1', + 'collection_count_autopublishers' => 'SELECT COUNT(*) FROM collections WHERE collection_type = 1', + 'collection_count_editorspicks' => 'SELECT COUNT(*) FROM collections WHERE collection_type = 2', + 'collection_count_normal' => 'SELECT COUNT(*) FROM collections WHERE collection_type = 0', + 'collection_addon_downloads' => 'SELECT SUM(count) FROM stats_addons_collections_counts', + + // Add-on Collector + 'collector_total_downloads' => 'SELECT SUM(count) FROM download_counts WHERE addon_id = 11950' + ); + + $date = date('Y-m-d'); + + // Update all "total" stats that don't require a date + foreach ($stats as $stat => $query) { + echo "Updating {$stat}...\n"; + + $db->write("REPLACE INTO global_stats (name, count, date) VALUES ('{$stat}', ({$query}), '{$date}')"); + + $affected_rows += mysql_affected_rows(); + } + + // These stats are specific to the latest available metrics data import + + $date = 'SELECT MAX(date) FROM update_counts'; + + $variable_date_stats = array( + 'addon_total_updatepings' => "SELECT SUM(count) FROM update_counts WHERE date = ({$date})", + 'collector_updatepings' => "SELECT count FROM update_counts WHERE addon_id = 11950 AND date = ({$date})" + ); + + foreach ($variable_date_stats as $stat => $query) { + echo "Updating {$stat}...\n"; + + $db->write("REPLACE INTO global_stats (name, count, date) VALUES ('{$stat}', ({$query}), ({$date}))"); + + $affected_rows += mysql_affected_rows(); + } + break; |