diff --git a/public/templates/admin/redis.tpl b/public/templates/admin/database.tpl
similarity index 67%
rename from public/templates/admin/redis.tpl
rename to public/templates/admin/database.tpl
index aa127ef893..0176d4d697 100644
--- a/public/templates/admin/redis.tpl
+++ b/public/templates/admin/database.tpl
@@ -1,3 +1,6 @@
+
+
+
Redis
@@ -21,4 +24,19 @@
Keyspace Hits {keyspace_hits}
Keyspace Misses {keyspace_misses}
+
+
+Mongo
+
+
+
+ Collections {collections}
+ Objects {objects}
+ Avg. Object Size {avgObjSize} kb
+
+ Data Size {dataSize} kb
+ Storage Size {storageSize} kb
+ File Size {fileSize} kb
+
+
diff --git a/public/templates/admin/header.tpl b/public/templates/admin/header.tpl
index 786b8bcfaa..66ef0fe982 100644
--- a/public/templates/admin/header.tpl
+++ b/public/templates/admin/header.tpl
@@ -105,7 +105,7 @@
Themes
Plugins
Settings
- Redis
+ Database
Logger
MOTD
diff --git a/public/templates/config.json b/public/templates/config.json
index fa435245ae..45e922c3df 100644
--- a/public/templates/config.json
+++ b/public/templates/config.json
@@ -4,7 +4,7 @@
"^admin/topics.*": "admin/topics",
"^admin/categories.*": "admin/categories",
"^admin/users.*": "admin/users",
- "^admin/redis.*": "admin/redis",
+ "^admin/database.*": "admin/database",
"^admin/index.*": "admin/index",
"^admin/themes.*": "admin/themes",
"^admin/plugins/?$": "admin/plugins",
diff --git a/src/database/mongo.js b/src/database/mongo.js
index 4b577cf9c6..d41ccfddaa 100644
--- a/src/database/mongo.js
+++ b/src/database/mongo.js
@@ -71,7 +71,15 @@
}
module.info = function(callback) {
- throw new Error('not-implemented');
+ db.stats({scale:1024}, function(err, stats) {
+
+ stats.avgObjSize = (stats.avgObjSize / 1024).toFixed(2);
+
+ stats.mongo = true;
+ //remove this when andrew adds in undefined checking to templates
+ stats.redis = false;
+ callback(err, stats);
+ });
}
// key
diff --git a/src/database/redis.js b/src/database/redis.js
index cfb34dad10..14eebdcb3a 100644
--- a/src/database/redis.js
+++ b/src/database/redis.js
@@ -103,7 +103,7 @@
}
data = data.split("\r\n");
- var finalData = {};
+ var redisData = {};
for (var i in data) {
@@ -116,14 +116,18 @@
var jsonObject = JSON.parse(json);
for (var key in jsonObject) {
- finalData[key] = jsonObject[key];
+ redisData[key] = jsonObject[key];
}
} catch (err) {
winston.warn('can\'t parse redis status variable, ignoring', i, data[i], err);
}
}
- callback(null, finalData);
+ redisData.redis = true;
+ //remove this when andrew adds in undefined checking to templates
+ redisData.mongo = false;
+
+ callback(null, redisData);
});
}
diff --git a/src/routes/admin.js b/src/routes/admin.js
index e8402442f9..2831787434 100644
--- a/src/routes/admin.js
+++ b/src/routes/admin.js
@@ -55,7 +55,7 @@ var nconf = require('nconf'),
(function () {
var routes = [
'categories/active', 'categories/disabled', 'users', 'topics', 'settings', 'themes',
- 'twitter', 'facebook', 'gplus', 'redis', 'motd', 'groups', 'plugins', 'logger',
+ 'twitter', 'facebook', 'gplus', 'database', 'motd', 'groups', 'plugins', 'logger',
'users/latest', 'users/sort-posts', 'users/sort-reputation',
'users/search'
];
@@ -265,7 +265,7 @@ var nconf = require('nconf'),
});
});
- app.namespace('/redis', function () {
+ app.namespace('/database', function () {
app.get('/', function (req, res) {
db.info(function (err, data) {
res.json(data);