Prevent slowResponseNotificationRange from being less than one Heartbeat Interval

This commit is contained in:
Stephen Papierski 2023-10-31 23:46:20 -06:00
parent c722d8b8a6
commit fd745d1dcc
2 changed files with 10 additions and 2 deletions

View file

@ -1432,7 +1432,7 @@ class Monitor extends BeanModel {
async checkSlowResponseNotification(monitor, bean) { async checkSlowResponseNotification(monitor, bean) {
//Get recent heartbeat list with range of time //Get recent heartbeat list with range of time
const afterThisDate = new Date(Date.now() - (1000 * monitor.slowResponseNotificationRange)); const afterThisDate = new Date(Date.now() - (1000 * (monitor.slowResponseNotificationRange + 1))); // add 1 second otherwise we grab 0 previous beats when Time Range == Heartbeat Interval
const previousBeats = await R.getAll(` const previousBeats = await R.getAll(`
SELECT * FROM heartbeat SELECT * FROM heartbeat
WHERE monitor_id = ? AND time > datetime(?) AND status = ?`, WHERE monitor_id = ? AND time > datetime(?) AND status = ?`,

View file

@ -458,7 +458,7 @@
<div v-if="monitor.slowResponseNotification" class="my-3"> <div v-if="monitor.slowResponseNotification" class="my-3">
<label for="slow-response-notification-range" class="form-label">{{ $t("slowResponseNotificationRange") }}</label> <label for="slow-response-notification-range" class="form-label">{{ $t("slowResponseNotificationRange") }}</label>
<input id="slow-response-notification-range" v-model="monitor.slowResponseNotificationRange" type="number" class="form-control" required min="0" step="1"> <input id="slow-response-notification-range" v-model="monitor.slowResponseNotificationRange" type="number" class="form-control" required :min="monitor.interval" step="1">
<div class="form-text"> <div class="form-text">
{{ $t("slowResponseNotificationRangeDescription", [monitor.slowResponseNotificationRange]) }} {{ $t("slowResponseNotificationRangeDescription", [monitor.slowResponseNotificationRange]) }}
</div> </div>
@ -1198,6 +1198,14 @@ message HealthCheckResponse {
if (this.monitor.retryInterval === oldValue) { if (this.monitor.retryInterval === oldValue) {
this.monitor.retryInterval = value; this.monitor.retryInterval = value;
} }
// Link interval and slowResponseNotificationRange if the are the same value
if (this.monitor.slowResponseNotificationRange === oldValue) {
this.monitor.slowResponseNotificationRange = value;
}
// But always keep slowResponseNotificationRange >= interval
if (this.monitor.slowResponseNotificationRange < value) {
this.monitor.slowResponseNotificationRange = value;
}
}, },
"monitor.timeout"(value, oldValue) { "monitor.timeout"(value, oldValue) {