mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 14:54:05 +00:00
wip
This commit is contained in:
parent
93cc21271f
commit
5e55215c9c
2 changed files with 15 additions and 6 deletions
|
@ -785,8 +785,6 @@ class Database {
|
||||||
let part = 100 / monitors.length;
|
let part = 100 / monitors.length;
|
||||||
let i = 1;
|
let i = 1;
|
||||||
for (let monitor of monitors) {
|
for (let monitor of monitors) {
|
||||||
|
|
||||||
// TODO: Get two or three days at the same to speed up???
|
|
||||||
// Get a list of unique dates from the heartbeat table, using raw sql
|
// Get a list of unique dates from the heartbeat table, using raw sql
|
||||||
let dates = await R.getAll(`
|
let dates = await R.getAll(`
|
||||||
SELECT DISTINCT DATE(time) AS date
|
SELECT DISTINCT DATE(time) AS date
|
||||||
|
|
|
@ -60,6 +60,9 @@ class UptimeCalculator {
|
||||||
*/
|
*/
|
||||||
migrationMode = false;
|
migrationMode = false;
|
||||||
|
|
||||||
|
statMinutelyKeepHour = 24;
|
||||||
|
statHourlyKeepDay = 30;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the uptime calculator for a monitor
|
* Get the uptime calculator for a monitor
|
||||||
* Initializes and returns the monitor if it does not exist
|
* Initializes and returns the monitor if it does not exist
|
||||||
|
@ -305,8 +308,11 @@ class UptimeCalculator {
|
||||||
}
|
}
|
||||||
await R.store(dailyStatBean);
|
await R.store(dailyStatBean);
|
||||||
|
|
||||||
// TODO: For migration mode, we don't need to store old hourly and minutely data, but we need 24-hour's minutely data and 30-day's hourly data
|
let currentDate = this.getCurrentDate();
|
||||||
if (false) {
|
|
||||||
|
// For migration mode, we don't need to store old hourly and minutely data, but we need 30-day's hourly data
|
||||||
|
// Run anyway for non-migration mode
|
||||||
|
if (!this.migrationMode || date.isAfter(currentDate.subtract(this.statHourlyKeepDay, "day"))) {
|
||||||
let hourlyStatBean = await this.getHourlyStatBean(hourlyKey);
|
let hourlyStatBean = await this.getHourlyStatBean(hourlyKey);
|
||||||
hourlyStatBean.up = hourlyData.up;
|
hourlyStatBean.up = hourlyData.up;
|
||||||
hourlyStatBean.down = hourlyData.down;
|
hourlyStatBean.down = hourlyData.down;
|
||||||
|
@ -321,7 +327,11 @@ class UptimeCalculator {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
await R.store(hourlyStatBean);
|
await R.store(hourlyStatBean);
|
||||||
|
}
|
||||||
|
|
||||||
|
// For migration mode, we don't need to store old hourly and minutely data, but we need 24-hour's minutely data
|
||||||
|
// Run anyway for non-migration mode
|
||||||
|
if (!this.migrationMode || date.isAfter(currentDate.subtract(this.statMinutelyKeepHour, "hour"))) {
|
||||||
let minutelyStatBean = await this.getMinutelyStatBean(divisionKey);
|
let minutelyStatBean = await this.getMinutelyStatBean(divisionKey);
|
||||||
minutelyStatBean.up = minutelyData.up;
|
minutelyStatBean.up = minutelyData.up;
|
||||||
minutelyStatBean.down = minutelyData.down;
|
minutelyStatBean.down = minutelyData.down;
|
||||||
|
@ -341,15 +351,16 @@ class UptimeCalculator {
|
||||||
// No need to remove old data in migration mode
|
// No need to remove old data in migration mode
|
||||||
if (!this.migrationMode) {
|
if (!this.migrationMode) {
|
||||||
// Remove the old data
|
// Remove the old data
|
||||||
|
// TODO: Improvement: Convert it to a job?
|
||||||
log.debug("uptime-calc", "Remove old data");
|
log.debug("uptime-calc", "Remove old data");
|
||||||
await R.exec("DELETE FROM stat_minutely WHERE monitor_id = ? AND timestamp < ?", [
|
await R.exec("DELETE FROM stat_minutely WHERE monitor_id = ? AND timestamp < ?", [
|
||||||
this.monitorID,
|
this.monitorID,
|
||||||
this.getMinutelyKey(date.subtract(24, "hour")),
|
this.getMinutelyKey(currentDate.subtract(this.statMinutelyKeepHour, "hour")),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
await R.exec("DELETE FROM stat_hourly WHERE monitor_id = ? AND timestamp < ?", [
|
await R.exec("DELETE FROM stat_hourly WHERE monitor_id = ? AND timestamp < ?", [
|
||||||
this.monitorID,
|
this.monitorID,
|
||||||
this.getHourlyKey(date.subtract(30, "day")),
|
this.getHourlyKey(currentDate.subtract(this.statHourlyKeepDay, "day")),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue