Add debug logging to server monitor criteria and comparison functions

This commit is contained in:
Simon Larsen
2024-12-20 16:23:34 +00:00
parent 8fc3fe4a98
commit 946f82f978
4 changed files with 33 additions and 5 deletions

View File

@@ -31,6 +31,8 @@ export default class CompareCriteria {
value: boolean | Array<boolean>;
evaluationType?: EvaluateOverTimeType | undefined;
}): boolean {
logger.debug(`isTrue: ${JSON.stringify(data)}`);
if (Array.isArray(data.value)) {
if (data.evaluationType === EvaluateOverTimeType.AnyValue) {
return data.value.some((value: boolean) => {
@@ -49,6 +51,8 @@ export default class CompareCriteria {
value: boolean | Array<boolean>;
evaluationType?: EvaluateOverTimeType | undefined;
}): boolean {
logger.debug(`isFalse: ${JSON.stringify(data)}`);
if (Array.isArray(data.value)) {
if (data.evaluationType === EvaluateOverTimeType.AnyValue) {
return data.value.some((value: boolean) => {
@@ -304,6 +308,8 @@ export default class CompareCriteria {
value: Array<boolean> | boolean;
criteriaFilter: CriteriaFilter;
}): string | null {
logger.debug(`compareCriteriaBoolean: ${JSON.stringify(data)}`);
if (data.value === null || data.value === undefined) {
return null;
}

View File

@@ -12,6 +12,7 @@ import {
import ServerMonitorResponse, {
ServerProcess,
} from "Common/Types/Monitor/ServerMonitor/ServerMonitorResponse";
import logger from "../../Logger";
export default class ServerMonitorCriteria {
public static async isMonitorInstanceCriteriaFilterMet(input: {
@@ -64,18 +65,31 @@ export default class ServerMonitorCriteria {
input.criteriaFilter.evaluateOverTimeOptions.timeValueInMinutes || 3;
}
logger.debug("Server Monitor Criteria Filter");
logger.debug(`Monitor ID: ${input.dataToProcess.monitorId}`);
logger.debug(`Check On: ${input.criteriaFilter.checkOn}`);
logger.debug(`Difference in Minutes: ${differenceInMinutes}`);
logger.debug(
`Offline if not checked in minutes: ${offlineIfNotCheckedInMinutes}`,
);
if (
input.criteriaFilter.checkOn === CheckOn.IsOnline &&
differenceInMinutes >= offlineIfNotCheckedInMinutes
) {
const currentIsOnline: boolean | Array<boolean> =
(overTimeValue as Array<boolean>) || false; // false because no request receieved in the last 2 minutes
return CompareCriteria.compareCriteriaBoolean({
logger.debug(`Current Is Online: ${currentIsOnline}`);
const criteria: string | null = CompareCriteria.compareCriteriaBoolean({
value: currentIsOnline,
criteriaFilter: input.criteriaFilter,
});
logger.debug(`Criteria: ${criteria}`);
return criteria;
}
if (
@@ -85,10 +99,16 @@ export default class ServerMonitorCriteria {
const currentIsOnline: boolean | Array<boolean> =
(overTimeValue as Array<boolean>) || true; // true because request receieved in the last 2 minutes
return CompareCriteria.compareCriteriaBoolean({
logger.debug(`Current Is Online: ${currentIsOnline}`);
const criteria: string | null = CompareCriteria.compareCriteriaBoolean({
value: currentIsOnline,
criteriaFilter: input.criteriaFilter,
});
logger.debug(`Criteria: ${criteria}`);
return criteria;
}
if (

View File

@@ -418,7 +418,7 @@ export default class MonitorResourceUtil {
logger.debug(
`${dataToProcess.monitorId.toString()} - Processing monitor step...`,
);
response = await MonitorResourceUtil.processMonitorStep({
dataToProcess: dataToProcess,
monitorStep: monitorStep,

View File

@@ -54,7 +54,9 @@ RunCron(
monitorId: monitor.id!,
onlyCheckRequestReceivedAt: true,
requestReceivedAt:
monitor.serverMonitorRequestReceivedAt || monitor.serverMonitorResponse?.requestReceivedAt || monitor.createdAt!,
monitor.serverMonitorRequestReceivedAt ||
monitor.serverMonitorResponse?.requestReceivedAt ||
monitor.createdAt!,
hostname: monitor.serverMonitorResponse?.hostname || "",
};