summary refs log tree commit diff
diff options
context:
space:
mode:
authorMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-07-21 17:58:10 +1000
committerMadeline <46743919+MaddyUnderStars@users.noreply.github.com>2022-07-21 17:58:10 +1000
commit66fc4fb9530a4ebc9ef65956d552e83d8fe356ed (patch)
tree27816b21068fe3e20808957a4b7e6b1156441876
parentAdded simple response time measurement for grafana (diff)
downloadserver-66fc4fb9530a4ebc9ef65956d552e83d8fe356ed.tar.xz
Do measurements one at a time in order
-rw-r--r--slowcord/status/src/index.ts28
1 files changed, 15 insertions, 13 deletions
diff --git a/slowcord/status/src/index.ts b/slowcord/status/src/index.ts
index a4d911ad..1ef062a1 100644
--- a/slowcord/status/src/index.ts
+++ b/slowcord/status/src/index.ts
@@ -20,17 +20,14 @@ const client = new Fosscord.Client({
 	}
 });
 
+const gatewayMeasure = async (name: string) => {
+	const time = Math.max(client.ws.ping, 0);
+	await savePerf(time, name, null);
+	console.log(`${name} took ${time}ms`);
+};
+
 client.on("ready", () => {
 	console.log(`Ready on gateway as ${client.user!.tag}`);
-
-	const gatewayMeasure = async (name: string) => {
-		const time = Math.max(client.ws.ping, 0);
-		await savePerf(time, name, null);
-		console.log(`${name} took ${time}ms`);
-		setTimeout(gatewayMeasure, parseInt(process.env.MEASURE_INTERVAL as string), name);
-	};
-
-	gatewayMeasure("websocketPing")
 });
 
 client.on("error", (error) => {
@@ -73,8 +70,6 @@ const measureApi = async (name: string, path: string, body?: object) => {
 	console.log(`${name} took ${time}ms ${(error ? "with error" : "")}`, error ?? "");
 
 	await savePerf(time, name, error?.message ?? null);
-
-	setTimeout(measureApi, parseInt(process.env.MEASURE_INTERVAL as string), name, path, body);
 };
 
 const app = async () => {
@@ -84,8 +79,15 @@ const app = async () => {
 
 	console.log(`Monitoring performance for instance at ${new URL(instance.api).hostname}`);
 
-	measureApi("ping", `${instance.api}/ping`);
-	measureApi("users/@me", `${instance.api}/users/@me`);
+	const doMeasurements = async () => {
+		await measureApi("ping", `${instance.api}/ping`);
+		await measureApi("users/@me", `${instance.api}/users/@me`);
+		await gatewayMeasure("websocketPing");
+
+		setTimeout(doMeasurements, parseInt(process.env.MEASURE_INTERVAL as string));
+	};
+
+	doMeasurements();
 };
 
 app();
\ No newline at end of file