mirror of https://github.com/xwiki-labs/cryptpad
profile worker commands by total running time in seconds
This commit is contained in:
parent
93c807524f
commit
93d56e5e3d
|
@ -56,6 +56,11 @@ var getCacheStats = function (env, server, cb) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// CryptPad_AsyncStore.rpc.send('ADMIN', ['GET_WORKER_PROFILES'], console.log)
|
||||||
|
var getWorkerProfiles = function (Env, Server, cb) {
|
||||||
|
cb(void 0, Env.commandTimers);
|
||||||
|
};
|
||||||
|
|
||||||
var getActiveSessions = function (Env, Server, cb) {
|
var getActiveSessions = function (Env, Server, cb) {
|
||||||
var stats = Server.getSessionStats();
|
var stats = Server.getSessionStats();
|
||||||
cb(void 0, [
|
cb(void 0, [
|
||||||
|
@ -315,6 +320,7 @@ var commands = {
|
||||||
INSTANCE_STATUS: instanceStatus,
|
INSTANCE_STATUS: instanceStatus,
|
||||||
GET_LIMITS: getLimits,
|
GET_LIMITS: getLimits,
|
||||||
SET_LAST_EVICTION: setLastEviction,
|
SET_LAST_EVICTION: setLastEviction,
|
||||||
|
GET_WORKER_PROFILES: getWorkerProfiles,
|
||||||
};
|
};
|
||||||
|
|
||||||
Admin.command = function (Env, safeKey, data, _cb, Server) {
|
Admin.command = function (Env, safeKey, data, _cb, Server) {
|
||||||
|
|
|
@ -94,6 +94,7 @@ module.exports.create = function (config) {
|
||||||
disableIntegratedEviction: config.disableIntegratedEviction || false,
|
disableIntegratedEviction: config.disableIntegratedEviction || false,
|
||||||
lastEviction: +new Date(),
|
lastEviction: +new Date(),
|
||||||
evictionReport: {},
|
evictionReport: {},
|
||||||
|
commandTimers: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
(function () {
|
(function () {
|
||||||
|
|
|
@ -14,6 +14,14 @@ const DEFAULT_QUERY_TIMEOUT = 60000 * 15; // increased from three to fifteen min
|
||||||
Workers.initialize = function (Env, config, _cb) {
|
Workers.initialize = function (Env, config, _cb) {
|
||||||
var cb = Util.once(Util.mkAsync(_cb));
|
var cb = Util.once(Util.mkAsync(_cb));
|
||||||
|
|
||||||
|
var incrementTime = function (command, start) {
|
||||||
|
if (!command) { return; }
|
||||||
|
var end = +new Date();
|
||||||
|
var T = Env.commandTimers;
|
||||||
|
var diff = (end - start);
|
||||||
|
T[command] = (T[command] || 0) + (diff / 1000);
|
||||||
|
};
|
||||||
|
|
||||||
const workers = [];
|
const workers = [];
|
||||||
|
|
||||||
const response = Util.response(function (errLabel, info) {
|
const response = Util.response(function (errLabel, info) {
|
||||||
|
@ -112,7 +120,9 @@ Workers.initialize = function (Env, config, _cb) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const txid = guid();
|
const txid = guid();
|
||||||
|
var start = +new Date();
|
||||||
var cb = Util.once(Util.mkAsync(Util.both(_cb, function (err /*, value */) {
|
var cb = Util.once(Util.mkAsync(Util.both(_cb, function (err /*, value */) {
|
||||||
|
incrementTime(msg && msg.command, start);
|
||||||
if (err !== 'TIMEOUT') { return; }
|
if (err !== 'TIMEOUT') { return; }
|
||||||
Log.debug("WORKER_TIMEOUT_CAUSE", msg);
|
Log.debug("WORKER_TIMEOUT_CAUSE", msg);
|
||||||
// in the event of a timeout the user will receive an error
|
// in the event of a timeout the user will receive an error
|
||||||
|
|
Loading…
Reference in New Issue