mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-04-23 19:21:04 +08:00
计算储存空间时计算数据库占用
This commit is contained in:
@@ -10,35 +10,43 @@ module.exports =
|
||||
callback()
|
||||
|
||||
widget: (account, callback) ->
|
||||
mysql = require '../mysql/service'
|
||||
mongodb = require '../mongodb/service'
|
||||
|
||||
monitor.monitoringStorage ->
|
||||
jade.renderFile path.join(__dirname, 'view/widget.jade'),
|
||||
account: account
|
||||
resources_usage: do ->
|
||||
usage = monitor.resources_usage[account.username] ? {cpu: 0, memory: 0}
|
||||
return {
|
||||
cpu:
|
||||
now_per: (usage.cpu / account.attribute.resources_limit.cpu * 100).toFixed()
|
||||
now: usage.cpu.toFixed(1)
|
||||
limit: account.attribute.resources_limit.cpu
|
||||
memory:
|
||||
now_per: (usage.memory / account.attribute.resources_limit.memory * 100).toFixed()
|
||||
now: usage.memory.toFixed(1)
|
||||
limit: account.attribute.resources_limit.memory
|
||||
}
|
||||
async.parallel
|
||||
mysql: _.partial(mysql.storage, account)
|
||||
mongodb: _.partial(mongodb.storage, account)
|
||||
, (err, plugin_storage) ->
|
||||
jade.renderFile path.join(__dirname, 'view/widget.jade'),
|
||||
account: account
|
||||
resources_usage: do ->
|
||||
usage = monitor.resources_usage[account.username] ? {cpu: 0, memory: 0}
|
||||
return {
|
||||
cpu:
|
||||
now_per: (usage.cpu / account.attribute.resources_limit.cpu * 100).toFixed()
|
||||
now: usage.cpu.toFixed(1)
|
||||
limit: account.attribute.resources_limit.cpu
|
||||
memory:
|
||||
now_per: (usage.memory / account.attribute.resources_limit.memory * 100).toFixed()
|
||||
now: usage.memory.toFixed(1)
|
||||
limit: account.attribute.resources_limit.memory
|
||||
}
|
||||
|
||||
storage_usage: do ->
|
||||
usage = monitor.storage_usage[account.username]
|
||||
now_per = (usage.size_used / 1000 / account.attribute.resources_limit.storage * 100).toFixed()
|
||||
return {
|
||||
now_per: now_per
|
||||
now: (usage.size_used / 1000).toFixed(1)
|
||||
limit: account.attribute.resources_limit.storage
|
||||
color: if now_per < 90 then 'success' else 'danger'
|
||||
}
|
||||
storage_usage: do ->
|
||||
usage = monitor.storage_usage[account.username]
|
||||
usage.size_used = parseInt(usage.size_used) + plugin_storage.mysql * 1000 + plugin_storage.mongodb * 1000
|
||||
now_per = (usage.size_used / 1000 / account.attribute.resources_limit.storage * 100).toFixed()
|
||||
return {
|
||||
now_per: now_per
|
||||
now: (usage.size_used / 1000).toFixed(1)
|
||||
limit: account.attribute.resources_limit.storage
|
||||
color: if now_per < 90 then 'success' else 'danger'
|
||||
}
|
||||
|
||||
, (err, html) ->
|
||||
throw err if err
|
||||
callback html
|
||||
, (err, html) ->
|
||||
throw err if err
|
||||
callback html
|
||||
|
||||
preview: (callback) ->
|
||||
jade.renderFile path.join(__dirname, 'view/preview.jade'), {}, (err, html) ->
|
||||
|
||||
@@ -51,6 +51,15 @@ module.exports =
|
||||
, (err, html) ->
|
||||
callback html
|
||||
|
||||
storage: (account, callback) ->
|
||||
mongodb.admin.listDatabases (err, result) ->
|
||||
dbs = _.filter result.databases, (i) ->
|
||||
return i.name[..account.username.length] == "#{account.username}_"
|
||||
|
||||
callback null, _.reduce dbs, (memo, db) ->
|
||||
return memo + db.sizeOnDisk / 1024 / 1024
|
||||
, 0
|
||||
|
||||
preview: (callback) ->
|
||||
jade.renderFile path.join(__dirname, 'view/preview.jade'), {}, (err, html) ->
|
||||
callback html
|
||||
|
||||
@@ -47,6 +47,12 @@ module.exports =
|
||||
, (err, html) ->
|
||||
callback html
|
||||
|
||||
storage: (account, callback) ->
|
||||
connection.query "SELECT `table_schema` 'name', sum(`data_length` + `index_length`) / 1024 / 1024 'size', sum(`data_free`) / 1024 / 1024 'free' FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA` LIKE '#{account.username}_%' GROUP BY table_schema;", (err, rows) ->
|
||||
callback null, _.reduce rows, (memo, db) ->
|
||||
return memo + db.size
|
||||
, 0
|
||||
|
||||
preview: (callback) ->
|
||||
jade.renderFile path.join(__dirname, 'view/preview.jade'), {}, (err, html) ->
|
||||
callback html
|
||||
|
||||
Reference in New Issue
Block a user