diff options
author | diosmosis <benakamoorthi@fastmail.fm> | 2014-02-27 17:21:41 +0400 |
---|---|---|
committer | diosmosis <benakamoorthi@fastmail.fm> | 2014-02-27 17:21:41 +0400 |
commit | 13a08d58897ba2921a037b309e75593c3fbbabcd (patch) | |
tree | d0ed9565efaa10a1c6d71d797ddbb319f5a37177 /plugins/DBStats/MySQLMetadataDataAccess.php | |
parent | 4ad2b987467fd57c0ef5a0bbaa8c7f66845d69e1 (diff) |
Refs #4189, added expected screenshot for DBStats, added actual & mock data access class to DBStats, fix bug that occurs when deleting merged assets that do not exist and fix diffviewer generation regression (expected URL was incorrect).
Diffstat (limited to 'plugins/DBStats/MySQLMetadataDataAccess.php')
-rw-r--r-- | plugins/DBStats/MySQLMetadataDataAccess.php | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/plugins/DBStats/MySQLMetadataDataAccess.php b/plugins/DBStats/MySQLMetadataDataAccess.php new file mode 100644 index 0000000000..e5fee259a1 --- /dev/null +++ b/plugins/DBStats/MySQLMetadataDataAccess.php @@ -0,0 +1,70 @@ +<?php +/** + * Piwik - Open source web analytics + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\DBStats; + +use Piwik\Db; +use Piwik\Config; +use \Exception; + +/** + * Data Access Object that serves MySQL stats. + */ +class MySQLMetadataDataAccess +{ + public function getDBStatus() + { + if (function_exists('mysql_connect')) { + $configDb = Config::getInstance()->database; + $link = mysql_connect($configDb['host'], $configDb['username'], $configDb['password']); + $status = mysql_stat($link); + mysql_close($link); + $status = explode(" ", $status); + } else { + $fullStatus = Db::fetchAssoc('SHOW STATUS'); + if (empty($fullStatus)) { + throw new Exception('Error, SHOW STATUS failed'); + } + + $status = array( + 'Uptime' => $fullStatus['Uptime']['Value'], + 'Threads' => $fullStatus['Threads_running']['Value'], + 'Questions' => $fullStatus['Questions']['Value'], + 'Slow queries' => $fullStatus['Slow_queries']['Value'], + 'Flush tables' => $fullStatus['Flush_commands']['Value'], + 'Open tables' => $fullStatus['Open_tables']['Value'], + 'Opens' => 'unavailable', // not available via SHOW STATUS + 'Queries per second avg' => 'unavailable' // not available via SHOW STATUS + ); + } + + return $status; + } + + public function getTableStatus($tableName) + { + return Db::fetchRow("SHOW TABLE STATUS LIKE ?", array($tableName)); + } + + public function getAllTablesStatus() + { + return Db::fetchAll("SHOW TABLE STATUS"); + } + + public function getRowCountsByArchiveName($tableName, $extraCols) + { + // otherwise, create data table & cache it + $sql = "SELECT name as 'label', COUNT(*) as 'row_count'$extraCols FROM $tableName GROUP BY name"; + return Db::fetchAll($sql); + } + + public function getColumnsFromTable($tableName) + { + return Db::fetchAll("SHOW COLUMNS FROM " . $tableName); + } +}
\ No newline at end of file |