diff --git a/backend/dao/leaderboards.js b/backend/dao/leaderboards.js index d2df513bb..8d02eaf99 100644 --- a/backend/dao/leaderboards.js +++ b/backend/dao/leaderboards.js @@ -1,6 +1,7 @@ const MonkeyError = require("../handlers/error"); const { mongoDB } = require("../init/mongodb"); const { ObjectID } = require("mongodb"); +const Logger = require("../handlers/logger"); class LeaderboardsDAO { static async get(mode, mode2, language, skip, limit = 100) { @@ -24,6 +25,7 @@ class LeaderboardsDAO { static async update(mode, mode2, language, uid = undefined) { let str = `lbPersonalBests.${mode}.${mode2}.${language}`; + let start = performance.now(); let lb = await mongoDB() .collection("users") .aggregate([ @@ -76,6 +78,15 @@ class LeaderboardsDAO { .collection(`leaderboards.${language}.${mode}.${mode2}`) .insertMany(lb); + let end = performance.now(); + let timeToRunSec = (end - start) / 1000; + + Logger.log( + `lb_update_${language}_${mode}_${mode2}`, + `Update took ${timeToRunSec} seconds`, + uid + ); + if (retval) { return { message: "Successfully updated leaderboard", diff --git a/backend/handlers/logger.js b/backend/handlers/logger.js new file mode 100644 index 000000000..4395134e7 --- /dev/null +++ b/backend/handlers/logger.js @@ -0,0 +1,14 @@ +const { mongoDB } = require("../init/mongodb"); + +async function log(event, message, uid) { + await mongoDB.collection("logs").insertOne({ + timestamp: Date.now(), + uid, + event, + message, + }); +} + +module.exports = { + log, +};