Added the database usage statistics.
This commit is contained in:
parent
6cf4f00f92
commit
0873d44162
@ -327,8 +327,8 @@ function IDF_Views_Admin_getForgeSize()
|
||||
.escapeshellarg(Pluf::f('upload_issue_path'));
|
||||
$out = split(' ', shell_exec($cmd), 2);
|
||||
$res['attachments'] = $out[0]*1024;
|
||||
$res['total'] = $res['repositories'] + $res['downloads'] + $res['attachments'];
|
||||
// TODO: now we need the db
|
||||
$res['database'] = IDF_Views_Admin_getForgeDbSize();
|
||||
$res['total'] = $res['repositories'] + $res['downloads'] + $res['attachments'] + $res['database'];
|
||||
return $res;
|
||||
}
|
||||
|
||||
@ -339,9 +339,36 @@ function IDF_Views_Admin_getForgeSize()
|
||||
*/
|
||||
function IDF_Views_Admin_getForgeDbSize()
|
||||
{
|
||||
|
||||
// MySQL: SHOW TABLE STATUS FROM database;
|
||||
// then sum Data_length and Index_length for each table
|
||||
// PostgreSQL:
|
||||
// Directly stats the database file
|
||||
$db = Pluf::db();
|
||||
if (Pluf::f('db_engine') == 'SQLite') {
|
||||
return filesize(Pluf::f('db_database'));
|
||||
}
|
||||
switch (Pluf::f('db_engine')) {
|
||||
case 'PostgreSQL':
|
||||
$sql = 'SELECT relname, pg_total_relation_size(relname) AS size FROM pg_class AS pgc, pg_namespace AS pgn
|
||||
WHERE pg_table_is_visible(pgc.oid) IS TRUE AND relkind = \'r\'
|
||||
AND pgc.relnamespace = pgn.oid
|
||||
AND pgn.nspname NOT IN (\'information_schema\', \'pg_catalog\')';
|
||||
break;
|
||||
case 'MySQL':
|
||||
default:
|
||||
$sql = 'SHOW TABLE STATUS FROM '.Pluf::f('db_database');
|
||||
break;
|
||||
}
|
||||
$rs = $db->select($sql);
|
||||
$total = 0;
|
||||
switch (Pluf::f('db_engine')) {
|
||||
case 'PostgreSQL':
|
||||
foreach ($rs as $table) {
|
||||
$total += $table['size'];
|
||||
}
|
||||
break;
|
||||
case 'MySQL':
|
||||
default:
|
||||
foreach ($rs as $table) {
|
||||
$total += $table['Data_length'] + $table['Index_length'];
|
||||
}
|
||||
break;
|
||||
}
|
||||
return $total;
|
||||
}
|
||||
|
@ -8,13 +8,15 @@
|
||||
|
||||
{block context}
|
||||
<div class="issue-submit-info">
|
||||
<p><strong>{trans 'Space Usage Statistics'}</strong></p>
|
||||
<ul>
|
||||
<li>{trans 'Repository size:'} {$size['repositories']|size}</li>
|
||||
<li>{trans 'Attachment size:'} {$size['attachments']|size}</li>
|
||||
<li>{trans 'Download size:'} {$size['downloads']|size}</li>
|
||||
<li>{trans 'Forge size:'} {$size['total']|size}</li>
|
||||
<li>{trans 'Repositories:'} {$size['repositories']|size}</li>
|
||||
<li>{trans 'Attachments:'} {$size['attachments']|size}</li>
|
||||
<li>{trans 'Downloads:'} {$size['downloads']|size}</li>
|
||||
<li>{trans 'Database:'} {$size['database']|size}</li>
|
||||
<li><strong>{trans 'Total Forge:'} {$size['total']|size}</strong></li>
|
||||
</ul>
|
||||
<p>{trans 'The forge size does not include the database space yet.'}</p>
|
||||
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user