summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorSam X. Chen <sam.xi.chen@gmail.com>2019-08-13 09:31:14 -0400
committerSam X. Chen <sam.xi.chen@gmail.com>2019-08-13 09:31:14 -0400
commit7198e6b66eaf622fb8378d928bd8a85df8da7505 (patch)
tree0bd61461ec7907b245345b56f4089376fa93339e /server
parenta666883986073f9b2f00fce0b9be30d709628b22 (diff)
parent76dbadf1bad1a7ecf59b111df34751c04277db5b (diff)
downloadwekan-7198e6b66eaf622fb8378d928bd8a85df8da7505.tar.gz
wekan-7198e6b66eaf622fb8378d928bd8a85df8da7505.tar.bz2
wekan-7198e6b66eaf622fb8378d928bd8a85df8da7505.zip
Merge remote-tracking branch 'upstream/master'
Diffstat (limited to 'server')
-rw-r--r--server/statistics.js48
1 files changed, 45 insertions, 3 deletions
diff --git a/server/statistics.js b/server/statistics.js
index 1fbaecc9..288a5089 100644
--- a/server/statistics.js
+++ b/server/statistics.js
@@ -1,9 +1,13 @@
+import { MongoInternals } from 'meteor/mongo';
+
Meteor.methods({
getStatistics() {
const os = require('os');
const pjson = require('/package.json');
const statistics = {};
- statistics.version = pjson.version;
+ let wekanVersion = pjson.version;
+ wekanVersion = wekanVersion.replace('v', '');
+ statistics.version = wekanVersion;
statistics.os = {
type: os.type(),
platform: os.platform(),
@@ -15,12 +19,50 @@ Meteor.methods({
freemem: os.freemem(),
cpus: os.cpus(),
};
+ let nodeVersion = process.version;
+ nodeVersion = nodeVersion.replace('v', '');
statistics.process = {
- nodeVersion: process.version,
+ nodeVersion: nodeVersion,
pid: process.pid,
uptime: process.uptime(),
};
-
+ // Remove beginning of Meteor release text METEOR@
+ let meteorVersion = Meteor.release;
+ meteorVersion = meteorVersion.replace('METEOR@', '');
+ statistics.meteor = {
+ meteorVersion: meteorVersion,
+ };
+ // Thanks to RocketChat for MongoDB version detection !
+ // https://github.com/RocketChat/Rocket.Chat/blob/develop/app/utils/server/functions/getMongoInfo.js
+ let mongoVersion;
+ let mongoStorageEngine;
+ let mongoOplogEnabled;
+ try {
+ const { mongo } = MongoInternals.defaultRemoteCollectionDriver();
+ oplogEnabled = Boolean(
+ mongo._oplogHandle && mongo._oplogHandle.onOplogEntry,
+ );
+ const { version, storageEngine } = Promise.await(
+ mongo.db.command({ serverStatus: 1 }),
+ );
+ mongoVersion = version;
+ mongoStorageEngine = storageEngine.name;
+ mongoOplogEnabled = oplogEnabled;
+ } catch (e) {
+ try {
+ const { version } = Promise.await(mongo.db.command({ buildinfo: 1 }));
+ mongoVersion = version;
+ mongoStorageEngine = 'unknown';
+ } catch (e) {
+ mongoVersion = 'unknown';
+ mongoStorageEngine = 'unknown';
+ }
+ }
+ statistics.mongo = {
+ mongoVersion: mongoVersion,
+ mongoStorageEngine: mongoStorageEngine,
+ mongoOplogEnabled: mongoOplogEnabled,
+ };
return statistics;
},
});