diff --git a/src/events/create.guild.ts b/src/events/create.guild.ts index c56f4aa..33227b1 100644 --- a/src/events/create.guild.ts +++ b/src/events/create.guild.ts @@ -1,12 +1,13 @@ import Logger from "../utils/logger" import config from "../../config" import { Guild } from "discord.js" - +import Prom from "../utils/init.prometheus"; export = { name: "guildCreate", // @ts-ignore run: async (client, guild: Guild) => { - console.log(guild) + Prom.guildCount.inc() + Prom.totalGuilds.set(client.guilds.cache.size) Logger.info({ type: "event:guildCreate", message: `New Guild: ${guild.name} [${guild.id}]` diff --git a/src/events/message.ts b/src/events/message.ts index d30ac86..0ed4447 100644 --- a/src/events/message.ts +++ b/src/events/message.ts @@ -123,6 +123,7 @@ export = { } + Prom.commandsExecuted.inc() let { data: command_usage_data, command_usage_error } = await supabase.from('usage').update({ amount: (usage_check_data[0] || { amount: 0 }).amount + 1 }).select().eq("name", cmd.name) Logger.info({ type: "command:executed", diff --git a/src/events/ready.ts b/src/events/ready.ts index 4c4f4cb..d9cf97b 100644 --- a/src/events/ready.ts +++ b/src/events/ready.ts @@ -1,10 +1,11 @@ import Logger from "../utils/logger" import config from "../../config" - +import prom from "../utils/init.prometheus" export = { name: "ready", // @ts-ignore run: async (client: any) => { + prom.totalGuilds.set(client.guilds.cache.size) Logger.info({ type: "event:ready", message: `${config.variables.name} has started` diff --git a/src/events/remove.guild.ts b/src/events/remove.guild.ts new file mode 100644 index 0000000..1cc0922 --- /dev/null +++ b/src/events/remove.guild.ts @@ -0,0 +1,16 @@ +import Logger from "../utils/logger" +import { Guild } from "discord.js" +import Prom from "../utils/init.prometheus"; +export = { + name: "guildDelete", + // @ts-ignore + run: async (client, guild: Guild) => { + Prom.guildCount.dec() + Prom.totalGuilds.set(client.guilds.cache.size) + Logger.info({ + type: "event:guildDelete", + message: `Left Guild: ${guild.name} [${guild.id}]` + }) + + } +} \ No newline at end of file diff --git a/src/utils/prometheus.ts b/src/utils/prometheus.ts index d6d1c37..3e1fac8 100644 --- a/src/utils/prometheus.ts +++ b/src/utils/prometheus.ts @@ -1,7 +1,4 @@ //! Code taken from NinoDiscord/Nino - - - import prom from "prom-client" import { createServer, IncomingMessage, ServerResponse } from 'http' import vars from "../../variables" @@ -10,7 +7,8 @@ import Logger from "./logger" export default class Prometheus { public commandsExecuted!: prom.Counter public messagesSeen!: prom.Counter - public guildCount!: prom.Counter + public guildCount!: prom.Gauge + public totalGuilds!: prom.Gauge // public commmandsRan: prom.Counter #server!: ReturnType @@ -28,9 +26,12 @@ export default class Prometheus { }) this.guildCount = new prom.Gauge({ name: "thaldrin_guild_count", - help: "Number of Guilds Thaldrin is in" + help: "Number of Guilds Thaldrin joined this Lifecycle" + }) + this.totalGuilds = new prom.Gauge({ + name: "thaldrin_guilds_total", + help: "Total Number of Guilds Thaldrin is in" }) - this.#server = createServer(this.onRequest.bind(this)); this.#server.once('listening', () => Logger.info(`Prometheus: Listening at http://localhost:${vars.prometheus.port}`));