Skip to content

Commit

Permalink
feat(metrics): add metrics for {old,new} users and activeTemporaryRoles
Browse files Browse the repository at this point in the history
  • Loading branch information
tippfehlr committed Apr 12, 2024
1 parent 95a1e5c commit 3742d56
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 10 deletions.
51 changes: 41 additions & 10 deletions src/modules/db.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,17 +114,26 @@ export async function addActivity(guildID: string, activityName: string) {
.execute();
}

export async function getUserCount(): Promise<number> {
const userCount = await db
.selectFrom('users')
.select(eb => eb.fn.countAll().as('count'))
.executeTakeFirstOrThrow();
const userHashedCount = await db
.selectFrom('usersHashed')
.select(eb => eb.fn.countAll().as('count'))
.executeTakeFirstOrThrow();
export async function getOldUserCount(): Promise<number> {
return (
await db
.selectFrom('usersHashed')
.select(eb => eb.fn.countAll().as('count'))
.executeTakeFirstOrThrow()
).count as number;
}

return (userCount.count as number) + (userHashedCount.count as number);
export async function getNewUserCount(): Promise<number> {
return (
await db
.selectFrom('users')
.select(eb => eb.fn.countAll().as('count'))
.executeTakeFirstOrThrow()
).count as number;
}

export async function getUserCount(): Promise<number> {
return (await getOldUserCount()) + (await getNewUserCount());
}

export async function getActivityRoleCount(): Promise<number> {
Expand Down Expand Up @@ -168,3 +177,25 @@ export async function getPermRoleCount(): Promise<number> {
export async function getRolesCount(): Promise<number> {
return (await getActivityRoleCount()) + (await getStatusRoleCount());
}

export async function getOldActiveTemporaryRolesCount(): Promise<number> {
return (
await db
.selectFrom('activeTemporaryRolesHashed')
.select(eb => eb.fn.countAll().as('count'))
.executeTakeFirstOrThrow()
).count as number;
}

export async function getNewActiveTemporaryRolesCount(): Promise<number> {
return (
await db
.selectFrom('activeTemporaryRoles')
.select(eb => eb.fn.countAll().as('count'))
.executeTakeFirstOrThrow()
).count as number;
}

export async function getActiveTemporaryRolesCount(): Promise<number> {
return (await getOldActiveTemporaryRolesCount()) + (await getNewActiveTemporaryRolesCount());
}
14 changes: 14 additions & 0 deletions src/modules/metrics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@ import {
getTempRoleCount,
getPermRoleCount,
getStatusRoleCount,
getOldUserCount,
getNewUserCount,
getOldActiveTemporaryRolesCount,
getNewActiveTemporaryRolesCount,
getActiveTemporaryRolesCount,
} from './db';

export let client: InfluxDB;
Expand Down Expand Up @@ -42,8 +47,17 @@ export async function configureInfluxDB() {
writeApi.writePoint(
new Point('users')
.intField('users_cache_total', discordClient.users.cache.size)
.intField('old_users_count', await getOldUserCount())
.intField('new_users_count', await getNewUserCount())
.intField('users_db_total', await getUserCount()),
);
writeApi.writePoint(
new Point('activeTemporaryRoles')
.intField('old', await getOldActiveTemporaryRolesCount())
.intField('new', await getNewActiveTemporaryRolesCount())
.intField('total', await getActiveTemporaryRolesCount()),
);

const ram = process.memoryUsage();
writeApi.writePoint(
new Point('memory')
Expand Down

0 comments on commit 3742d56

Please sign in to comment.