generated from nhcarrigan/template
feat: track entitlements and users
This commit is contained in:
parent
23fba3d95d
commit
ebb549953f
@ -16,6 +16,7 @@ export const onReady = async (bot: ExtendedClient) => {
|
|||||||
await sendDebugMessage(bot, `Logged in as ${bot.user?.tag}`);
|
await sendDebugMessage(bot, `Logged in as ${bot.user?.tag}`);
|
||||||
await registerCommands(bot);
|
await registerCommands(bot);
|
||||||
bot.analytics = new Prometheus(bot);
|
bot.analytics = new Prometheus(bot);
|
||||||
|
await bot.analytics.updateEntitlements(bot);
|
||||||
|
|
||||||
// Daily at 9am PST
|
// Daily at 9am PST
|
||||||
scheduleJob("birthdays", "0 9 * * *", async () => await postBirthdays(bot));
|
scheduleJob("birthdays", "0 9 * * *", async () => await postBirthdays(bot));
|
||||||
|
@ -16,4 +16,5 @@ export const onGuildCreate = async function (
|
|||||||
content: `JOINED GUILD: ${guild.name} (${guild.id}) - owned by ${owner?.displayName} (${owner.id})`
|
content: `JOINED GUILD: ${guild.name} (${guild.id}) - owned by ${owner?.displayName} (${owner.id})`
|
||||||
});
|
});
|
||||||
bot.analytics.updateGuilds(bot);
|
bot.analytics.updateGuilds(bot);
|
||||||
|
await bot.analytics.updateEntitlements(bot);
|
||||||
};
|
};
|
||||||
|
@ -37,6 +37,7 @@ export const onGuildDelete = async function (
|
|||||||
.deleteMany({ where: { serverId: guild.id } })
|
.deleteMany({ where: { serverId: guild.id } })
|
||||||
.catch(() => null);
|
.catch(() => null);
|
||||||
bot.analytics.updateGuilds(bot);
|
bot.analytics.updateGuilds(bot);
|
||||||
|
await bot.analytics.updateEntitlements(bot);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
await errorHandler(bot, "on guild delete", err);
|
await errorHandler(bot, "on guild delete", err);
|
||||||
}
|
}
|
||||||
|
@ -1,21 +1,33 @@
|
|||||||
import client, { Counter, Gauge } from "prom-client";
|
import client, { Counter, Gauge } from "prom-client";
|
||||||
import type { ExtendedClient } from "../interfaces/ExtendedClient.js";
|
import type { ExtendedClient } from "../interfaces/ExtendedClient";
|
||||||
|
import { checkEntitledGuild } from "../utils/checkEntitledGuild";
|
||||||
|
|
||||||
export class Prometheus {
|
export class Prometheus {
|
||||||
private client = client;
|
private client = client;
|
||||||
private guilds: Gauge;
|
private guilds: Gauge;
|
||||||
|
private entitled: Gauge;
|
||||||
private commands: Counter;
|
private commands: Counter;
|
||||||
|
private users: Gauge;
|
||||||
|
|
||||||
constructor(bot: ExtendedClient) {
|
constructor(bot: ExtendedClient) {
|
||||||
this.guilds = new Gauge({
|
this.guilds = new Gauge({
|
||||||
name: "guilds",
|
name: "guilds",
|
||||||
help: "The number of guilds the bot is in."
|
help: "The number of guilds the bot is in."
|
||||||
});
|
});
|
||||||
this.guilds.set(bot.guilds.cache.size);
|
this.entitled = new Gauge({
|
||||||
|
name: "guilds",
|
||||||
|
help: "The number of guilds the bot is in."
|
||||||
|
});
|
||||||
|
this.updateGuilds(bot);
|
||||||
this.commands = new Counter({
|
this.commands = new Counter({
|
||||||
name: "commands",
|
name: "commands",
|
||||||
help: "The number of commands that have been used since last boot."
|
help: "The number of commands that have been used since last boot."
|
||||||
});
|
});
|
||||||
|
this.users = new Gauge({
|
||||||
|
name: "users",
|
||||||
|
help: "The number of users the bot knows."
|
||||||
|
});
|
||||||
|
this.users.set(bot.users.cache.size);
|
||||||
this.client.collectDefaultMetrics();
|
this.client.collectDefaultMetrics();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,4 +38,15 @@ export class Prometheus {
|
|||||||
public updateGuilds(bot: ExtendedClient) {
|
public updateGuilds(bot: ExtendedClient) {
|
||||||
this.guilds.set(bot.guilds.cache.size);
|
this.guilds.set(bot.guilds.cache.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public updateUsers(bot: ExtendedClient) {
|
||||||
|
this.users.set(bot.users.cache.size);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async updateEntitlements(bot: ExtendedClient) {
|
||||||
|
const entitled = bot.guilds.cache.filter(
|
||||||
|
async (g) => await checkEntitledGuild(bot, g)
|
||||||
|
);
|
||||||
|
this.entitled.set(entitled.size);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user