|
@@ -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;
|
|
|
},
|
|
|
});
|