mirror of
https://github.com/fosrl/pangolin.git
synced 2026-05-29 20:22:59 +00:00
Handle toggles
This commit is contained in:
@@ -46,6 +46,16 @@ export async function fireHealthCheckHealthyAlert(
|
|||||||
...extra
|
...extra
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
await processAlerts({
|
||||||
|
eventType: "health_check_toggle",
|
||||||
|
orgId,
|
||||||
|
healthCheckId,
|
||||||
|
data: {
|
||||||
|
healthCheckId,
|
||||||
|
...(healthCheckName != null ? { healthCheckName } : {}),
|
||||||
|
...extra
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`fireHealthCheckHealthyAlert: unexpected error for healthCheckId ${healthCheckId}`,
|
`fireHealthCheckHealthyAlert: unexpected error for healthCheckId ${healthCheckId}`,
|
||||||
@@ -82,6 +92,16 @@ export async function fireHealthCheckNotHealthyAlert(
|
|||||||
...extra
|
...extra
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
await processAlerts({
|
||||||
|
eventType: "health_check_toggle",
|
||||||
|
orgId,
|
||||||
|
healthCheckId,
|
||||||
|
data: {
|
||||||
|
healthCheckId,
|
||||||
|
...(healthCheckName != null ? { healthCheckName } : {}),
|
||||||
|
...extra
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`fireHealthCheckNotHealthyAlert: unexpected error for healthCheckId ${healthCheckId}`,
|
`fireHealthCheckNotHealthyAlert: unexpected error for healthCheckId ${healthCheckId}`,
|
||||||
|
|||||||
@@ -46,6 +46,16 @@ export async function fireResourceHealthyAlert(
|
|||||||
...extra
|
...extra
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
await processAlerts({
|
||||||
|
eventType: "resource_toggle",
|
||||||
|
orgId,
|
||||||
|
resourceId,
|
||||||
|
data: {
|
||||||
|
resourceId,
|
||||||
|
...(resourceName != null ? { resourceName } : {}),
|
||||||
|
...extra
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`fireResourceHealthyAlert: unexpected error for resourceId ${resourceId}`,
|
`fireResourceHealthyAlert: unexpected error for resourceId ${resourceId}`,
|
||||||
@@ -82,6 +92,16 @@ export async function fireResourceUnhealthyAlert(
|
|||||||
...extra
|
...extra
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
await processAlerts({
|
||||||
|
eventType: "resource_toggle",
|
||||||
|
orgId,
|
||||||
|
resourceId,
|
||||||
|
data: {
|
||||||
|
resourceId,
|
||||||
|
...(resourceName != null ? { resourceName } : {}),
|
||||||
|
...extra
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`fireResourceUnhealthyAlert: unexpected error for resourceId ${resourceId}`,
|
`fireResourceUnhealthyAlert: unexpected error for resourceId ${resourceId}`,
|
||||||
|
|||||||
@@ -46,6 +46,16 @@ export async function fireSiteOnlineAlert(
|
|||||||
...extra
|
...extra
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
await processAlerts({
|
||||||
|
eventType: "site_toggle",
|
||||||
|
orgId,
|
||||||
|
siteId,
|
||||||
|
data: {
|
||||||
|
siteId,
|
||||||
|
...(siteName != null ? { siteName } : {}),
|
||||||
|
...extra
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`fireSiteOnlineAlert: unexpected error for siteId ${siteId}`,
|
`fireSiteOnlineAlert: unexpected error for siteId ${siteId}`,
|
||||||
@@ -82,6 +92,16 @@ export async function fireSiteOfflineAlert(
|
|||||||
...extra
|
...extra
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
await processAlerts({
|
||||||
|
eventType: "site_toggle",
|
||||||
|
orgId,
|
||||||
|
siteId,
|
||||||
|
data: {
|
||||||
|
siteId,
|
||||||
|
...(siteName != null ? { siteName } : {}),
|
||||||
|
...extra
|
||||||
|
}
|
||||||
|
});
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
logger.error(
|
logger.error(
|
||||||
`fireSiteOfflineAlert: unexpected error for siteId ${siteId}`,
|
`fireSiteOfflineAlert: unexpected error for siteId ${siteId}`,
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ import { MessageHandler } from "@server/routers/ws";
|
|||||||
import { db, Newt, sites } from "@server/db";
|
import { db, Newt, sites } from "@server/db";
|
||||||
import { eq } from "drizzle-orm";
|
import { eq } from "drizzle-orm";
|
||||||
import logger from "@server/logger";
|
import logger from "@server/logger";
|
||||||
|
import { fireSiteOfflineAlert } from "@server/lib/alerts";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handles disconnecting messages from sites to show disconnected in the ui
|
* Handles disconnecting messages from sites to show disconnected in the ui
|
||||||
@@ -24,12 +25,15 @@ export const handleNewtDisconnectingMessage: MessageHandler = async (
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
// Update the client's last ping timestamp
|
// Update the client's last ping timestamp
|
||||||
await db
|
const [site] = await db
|
||||||
.update(sites)
|
.update(sites)
|
||||||
.set({
|
.set({
|
||||||
online: false
|
online: false
|
||||||
})
|
})
|
||||||
.where(eq(sites.siteId, newt.siteId));
|
.where(eq(sites.siteId, newt.siteId))
|
||||||
|
.returning();
|
||||||
|
|
||||||
|
await fireSiteOfflineAlert(site.orgId, site.siteId, site.name);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error("Error handling disconnecting message", { error });
|
logger.error("Error handling disconnecting message", { error });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user