feat(api hits): added in api hits for monitoring

This commit is contained in:
2026-05-08 15:03:03 -05:00
parent 4424c742d2
commit 2721bb2a3b
5 changed files with 2386 additions and 0 deletions

View File

@@ -18,6 +18,11 @@ import { setupSocketIORoutes } from "./socket.io/serverSetup.js";
import { serversChecks } from "./system/serverData.controller.js";
import { baseSettingValidationCheck } from "./system/settingsBase.controller.js";
import { startTCPServer } from "./tcpServer/tcp.server.js";
import {
aggregateRouteHitsForBusinessDay,
cleanupOldRouteHits,
runRouteHitAnalyticsCron,
} from "./utils/analyticRouteHits.utils.js";
import { createCronJob } from "./utils/croner.utils.js";
import { sendEmail } from "./utils/sendEmail.utils.js";
@@ -68,10 +73,16 @@ const start = async () => {
createCronJob("logsCleanup", "0 15 5 * * *", () => dbCleanup("logs", 120));
historicalSchedule();
createCronJob("aggregateHits", "0 0 7 * * *", async () =>
runRouteHitAnalyticsCron(),
);
createCronJob("cleanHitsUp", "0 0 7 * * *", () => cleanupOldRouteHits());
// one shots only needed to run on server startups
createNotifications();
startNotifications();
serversChecks();
aggregateRouteHitsForBusinessDay();
}, 5 * 1000);
process.on("uncaughtException", async (err) => {

View File

@@ -0,0 +1,17 @@
CREATE TABLE "analytics_daily" (
"id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
"business_date" date NOT NULL,
"method" text NOT NULL,
"route_pattern" text NOT NULL,
"module" text NOT NULL,
"total_hits" integer NOT NULL,
"unique_users" integer NOT NULL,
"success_count" integer NOT NULL,
"error_count" integer NOT NULL,
"avg_duration_ms" integer NOT NULL,
"max_duration_ms" integer NOT NULL,
"first_hit_at" timestamp NOT NULL,
"last_hit_at" timestamp NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);

File diff suppressed because it is too large Load Diff

View File

@@ -351,6 +351,13 @@
"when": 1778166074209,
"tag": "0049_futuristic_silk_fever",
"breakpoints": true
},
{
"idx": 50,
"version": "7",
"when": 1778169641819,
"tag": "0050_concerned_vivisector",
"breakpoints": true
}
]
}

View File

@@ -106,6 +106,8 @@ function Update-Server {
"CLIENT_SECRET" = "zsJeyjMN2yDDqfyzSsh96OtlA2714F5d"
"CLIENT_SCOPES" = "openid profile email groups"
"DISCOVERY_URL" = "https://auth.tuffraid.net/oidc/.well-known/openid-configuration"
"UMAMI_HOST" = "https://stats.tuffraid.net"
"UMAMI_WEBSITE_ID" = "49bc2489-3930-4358-a13d-1cc609336572"
}
$linesToAppend = @()