| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 | import { MongoInternals } from 'meteor/mongo';Meteor.methods({  getStatistics() {    const os = require('os');    const pjson = require('/package.json');    const statistics = {};    let wekanVersion = pjson.version;    wekanVersion = wekanVersion.replace('v', '');    statistics.version = wekanVersion;    statistics.os = {      type: os.type(),      platform: os.platform(),      arch: os.arch(),      release: os.release(),      uptime: os.uptime(),      loadavg: os.loadavg(),      totalmem: os.totalmem(),      freemem: os.freemem(),      cpus: os.cpus(),    };    let nodeVersion = process.version;    nodeVersion = nodeVersion.replace('v', '');    statistics.process = {      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,    };    // 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,      mongoStorageEngine,      mongoOplogEnabled,    };    return statistics;  },});
 |