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);