feat: show child status on group error

pull/5192/head
Peace 2 months ago
parent dda40610c7
commit 50d6ea36a4
No known key found for this signature in database
GPG Key ID: 0EF6B46E172B739F

@ -382,7 +382,8 @@ class Monitor extends BeanModel {
if (children.length > 0) {
bean.status = UP;
bean.msg = "All children up and running";
bean.msg = "";
let errorChildNames = [];
for (const child of children) {
if (!child.active) {
// Ignore inactive childs
@ -399,11 +400,24 @@ class Monitor extends BeanModel {
} else if (bean.status === PENDING && lastBeat.status === DOWN) {
bean.status = lastBeat.status;
}
}
if (bean.status !== UP) {
bean.msg = "Child inaccessible";
if(lastBeat && (lastBeat.status === PENDING || lastBeat.status === DOWN)) {
console.log(lastBeat.monitor_id);
const childMonitor = await Monitor.getMonitor(lastBeat.monitor_id);
console.log(childMonitor)
if(errorChildNames.length > 0)
bean.msg += "\r\n";
bean.msg += "- " + childMonitor.name + ":\r\n" + lastBeat.msg.trim().replace(/^/gm, " ");
errorChildNames.push(childMonitor.name);
}
}
if (bean.status === UP) {
bean.msg = "All children up and running";
} else if(bean.status === PENDING || bean.status === DOWN) {
bean.msg = "Some Children are having problems (" + errorChildNames.join(', ') + ")\r\n" + bean.msg;
}
} else {
// Set status pending if group is empty
bean.status = PENDING;
@ -1604,6 +1618,20 @@ class Monitor extends BeanModel {
};
}
/**
* Gets Monitor with specific ID
* @param {number} monitorID ID of monitor to get
* @returns {Promise<LooseObject<any>>} Children
*/
static async getMonitor(monitorID) {
return await R.getRow(`
SELECT * FROM monitor
WHERE id = ?
`, [
monitorID,
]);
}
/**
* Gets Parent of the monitor
* @param {number} monitorID ID of monitor to get

Loading…
Cancel
Save