static async getUptimeCalculator(monitorID) {
        if (!monitorID) {
            throw new Error("Monitor ID is required");
        }

        if (!UptimeCalculator.list[monitorID]) {
            UptimeCalculator.list[monitorID] = new UptimeCalculator();
            await UptimeCalculator.list[monitorID].init(monitorID);
        }
        return UptimeCalculator.list[monitorID];
    }
Get the uptime calculator for a monitor
Initializes and returns the monitor if it does not exist
@param {number} monitorID the id of the monitor
@returns {Promise<UptimeCalculator>} UptimeCalculator