mirror of
https://github.com/louislam/uptime-kuma.git
synced 2025-01-11 07:19:32 -05:00
send stats only if there is at least one client in the room
This commit is contained in:
parent
22db9c9b8a
commit
bf29f28726
@ -7,7 +7,7 @@ dayjs.extend(timezone)
|
|||||||
const axios = require("axios");
|
const axios = require("axios");
|
||||||
const { Prometheus } = require("../prometheus");
|
const { Prometheus } = require("../prometheus");
|
||||||
const { debug, UP, DOWN, PENDING, flipStatus, TimeLogger } = require("../../src/util");
|
const { debug, UP, DOWN, PENDING, flipStatus, TimeLogger } = require("../../src/util");
|
||||||
const { tcping, ping, dnsResolve, checkCertificate, checkStatusCode } = require("../util-server");
|
const { tcping, ping, dnsResolve, checkCertificate, checkStatusCode, getTotalClientInRoom } = require("../util-server");
|
||||||
const { R } = require("redbean-node");
|
const { R } = require("redbean-node");
|
||||||
const { BeanModel } = require("redbean-node/dist/bean-model");
|
const { BeanModel } = require("redbean-node/dist/bean-model");
|
||||||
const { Notification } = require("../notification")
|
const { Notification } = require("../notification")
|
||||||
@ -353,10 +353,16 @@ class Monitor extends BeanModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static async sendStats(io, monitorID, userID) {
|
static async sendStats(io, monitorID, userID) {
|
||||||
|
const hasClients = getTotalClientInRoom(io, userID) > 0;
|
||||||
|
|
||||||
|
if (hasClients) {
|
||||||
await Monitor.sendAvgPing(24, io, monitorID, userID);
|
await Monitor.sendAvgPing(24, io, monitorID, userID);
|
||||||
await Monitor.sendUptime(24, io, monitorID, userID);
|
await Monitor.sendUptime(24, io, monitorID, userID);
|
||||||
await Monitor.sendUptime(24 * 30, io, monitorID, userID);
|
await Monitor.sendUptime(24 * 30, io, monitorID, userID);
|
||||||
await Monitor.sendCertInfo(io, monitorID, userID);
|
await Monitor.sendCertInfo(io, monitorID, userID);
|
||||||
|
} else {
|
||||||
|
debug("No clients in the room, no need to send stats");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -248,3 +248,26 @@ exports.checkStatusCode = function (status, accepted_codes) {
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
exports.getTotalClientInRoom = (io, roomName) => {
|
||||||
|
|
||||||
|
const sockets = io.sockets;
|
||||||
|
|
||||||
|
if (! sockets) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const adapter = sockets.adapter;
|
||||||
|
|
||||||
|
if (! adapter) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const room = adapter.rooms.get(roomName);
|
||||||
|
|
||||||
|
if (room) {
|
||||||
|
return room.size;
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user