From e5032d8cd499d1a746b20f73fa513cfee03b7131 Mon Sep 17 00:00:00 2001 From: Dragory Date: Fri, 8 Feb 2019 21:04:04 +0200 Subject: [PATCH] Add performance logging --- package-lock.json | 6 +++--- package.json | 2 +- src/index.ts | 6 ++++++ src/plugins/BotControl.ts | 15 ++++++++++++++- 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e24c017d..6de13013 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2187,9 +2187,9 @@ "dev": true }, "knub": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/knub/-/knub-16.3.0.tgz", - "integrity": "sha512-sT0sntmffQjhQaA3OjmjDBuplgnPtbmaFSGpYsi8icYtqFOmlDwXHpOOVRxBGomWH7SbHf3TP7EFQRh/WXAvNg==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/knub/-/knub-16.4.0.tgz", + "integrity": "sha512-kPWa306o4inVazFacyD5kiv4j1RR2iKuIkrGdqSlhoCAq4tYplqiXxnabl15EDAlHZzXKj9f7aSF8f9mCio/vA==", "requires": { "escape-string-regexp": "^1.0.5", "lodash.at": "^4.6.0", diff --git a/package.json b/package.json index 1cc76fae..a3829ea1 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,7 @@ "escape-string-regexp": "^1.0.5", "humanize-duration": "^3.15.0", "js-yaml": "^3.12.0", - "knub": "^16.3.0", + "knub": "^16.4.0", "lodash.at": "^4.6.0", "lodash.chunk": "^4.2.0", "lodash.difference": "^4.5.0", diff --git a/src/index.ts b/src/index.ts index 48262e79..3f94e418 100644 --- a/src/index.ts +++ b/src/index.ts @@ -144,6 +144,12 @@ connect().then(async conn => { if (level === "debug") return; const ts = moment().format("YYYY-MM-DD HH:mm:ss"); console.log(`[${ts}] [${level.toUpperCase()}] ${msg}`); + }, + + performanceDebug: { + enabled: true, + size: 30, + threshold: 200 } } }); diff --git a/src/plugins/BotControl.ts b/src/plugins/BotControl.ts index 4e384544..555b65c3 100644 --- a/src/plugins/BotControl.ts +++ b/src/plugins/BotControl.ts @@ -9,7 +9,7 @@ let activeReload: [string, string] = null; * A global plugin that allows bot owners to control the bot */ export class BotControlPlugin extends GlobalPlugin { - public static pluginName = 'bot_control'; + public static pluginName = "bot_control"; getDefaultOptions() { return { @@ -68,4 +68,17 @@ export class BotControlPlugin extends GlobalPlugin { this.knub.reloadAllGlobalPlugins(); } + + @d.command("perf") + async perfCmd(msg: Message) { + if (!this.isOwner(msg.author.id)) return; + const perfItems = this.knub.getPerformanceDebugItems(); + + if (perfItems.length) { + const content = "```" + perfItems.join("\n") + "```"; + msg.channel.createMessage(content); + } else { + msg.channel.createMessage(errorMessage("No performance data")); + } + } }