feat: socketio health check
This commit is contained in:
parent
d7a0ed8971
commit
023297b52d
4 changed files with 54 additions and 8 deletions
|
|
@ -1,8 +1,16 @@
|
|||
// Copyright (c) 2024, Frappe Technologies and contributors
|
||||
// For license information, please see license.txt
|
||||
|
||||
// frappe.ui.form.on("System Health Report", {
|
||||
// refresh(frm) {
|
||||
|
||||
// },
|
||||
// });
|
||||
frappe.ui.form.on("System Health Report", {
|
||||
refresh(frm) {
|
||||
frm.set_value("socketio_ping_check", "Fail");
|
||||
frappe.realtime.on("pong", () => {
|
||||
frm.set_value("socketio_ping_check", "Pass");
|
||||
frm.set_value(
|
||||
"socketio_transport_mode",
|
||||
frappe.realtime.socket.io?.engine?.transport?.name
|
||||
);
|
||||
});
|
||||
frappe.realtime.emit("ping");
|
||||
},
|
||||
});
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
"doctype": "DocType",
|
||||
"engine": "InnoDB",
|
||||
"field_order": [
|
||||
"background_jobs_tab",
|
||||
"background_jobs_section",
|
||||
"scheduler_status",
|
||||
"column_break_klex",
|
||||
|
|
@ -11,7 +12,11 @@
|
|||
"section_break_djoz",
|
||||
"queue_status",
|
||||
"column_break_wjoz",
|
||||
"background_workers"
|
||||
"background_workers",
|
||||
"realtime_tab",
|
||||
"socketio_ping_check",
|
||||
"column_break_hgay",
|
||||
"socketio_transport_mode"
|
||||
],
|
||||
"fields": [
|
||||
{
|
||||
|
|
@ -52,6 +57,33 @@
|
|||
{
|
||||
"fieldname": "column_break_wjoz",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "background_jobs_tab",
|
||||
"fieldtype": "Tab Break",
|
||||
"label": "Background Jobs"
|
||||
},
|
||||
{
|
||||
"fieldname": "realtime_tab",
|
||||
"fieldtype": "Tab Break",
|
||||
"label": "Realtime"
|
||||
},
|
||||
{
|
||||
"default": "Fail",
|
||||
"fieldname": "socketio_ping_check",
|
||||
"fieldtype": "Select",
|
||||
"label": "SocketIO Ping Check",
|
||||
"options": "Fail\nPass"
|
||||
},
|
||||
{
|
||||
"fieldname": "column_break_hgay",
|
||||
"fieldtype": "Column Break"
|
||||
},
|
||||
{
|
||||
"fieldname": "socketio_transport_mode",
|
||||
"fieldtype": "Select",
|
||||
"label": "SocketIO Transport Mode",
|
||||
"options": "Polling\nWebsocket"
|
||||
}
|
||||
],
|
||||
"hide_toolbar": 1,
|
||||
|
|
@ -59,7 +91,7 @@
|
|||
"is_virtual": 1,
|
||||
"issingle": 1,
|
||||
"links": [],
|
||||
"modified": "2024-04-18 17:44:06.856892",
|
||||
"modified": "2024-04-18 18:11:05.830332",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Desk",
|
||||
"name": "System Health Report",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
Basic system health check report to see how everything on site is functioning in one single page.
|
||||
|
||||
Metrics:
|
||||
- [ ] Background jobs, workers and scheduler summary, queue stats
|
||||
- [x] Background jobs, workers and scheduler summary, queue stats
|
||||
- [ ] SocketIO works (using basic ping test)
|
||||
- [ ] Email queue flush and pull
|
||||
- [ ] Error logs status
|
||||
|
|
@ -42,6 +42,8 @@ class SystemHealthReport(Document):
|
|||
background_workers: DF.Table[SystemHealthWorkers]
|
||||
queue_status: DF.Table[SystemHealthQueue]
|
||||
scheduler_status: DF.Data | None
|
||||
socketio_ping_check: DF.Literal["Fail", "Pass"]
|
||||
socketio_transport_mode: DF.Literal["Polling", "Websocket"]
|
||||
total_background_workers: DF.Int
|
||||
# end: auto-generated types
|
||||
|
||||
|
|
|
|||
|
|
@ -26,6 +26,10 @@ function frappe_handlers(socket) {
|
|||
});
|
||||
};
|
||||
|
||||
socket.on("ping", () => {
|
||||
socket.emit("pong");
|
||||
});
|
||||
|
||||
socket.on("doctype_subscribe", function (doctype) {
|
||||
socket.has_permission(doctype).then(() => {
|
||||
socket.join(doctype_room(doctype));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue