mirror of
https://github.com/OneUptime/oneuptime.git
synced 2026-04-06 00:32:12 +02:00
fix probe responses
This commit is contained in:
@@ -31,12 +31,6 @@ export default class MonitorCriteria extends DatabaseProperty {
|
||||
|
||||
monitorCriteria.data = {
|
||||
monitorCriteriaInstanceArray: [
|
||||
MonitorCriteriaInstance.getDefaultOnlineMonitorCriteriaInstance(
|
||||
{
|
||||
monitorType: arg.monitorType,
|
||||
monitorStatusId: arg.onlineMonitorStatusId,
|
||||
}
|
||||
),
|
||||
MonitorCriteriaInstance.getDefaultOfflineMonitorCriteriaInstance(
|
||||
{
|
||||
monitorType: arg.monitorType,
|
||||
@@ -44,6 +38,12 @@ export default class MonitorCriteria extends DatabaseProperty {
|
||||
incidentSeverityId: arg.defaultIncidentSeverityId,
|
||||
}
|
||||
),
|
||||
MonitorCriteriaInstance.getDefaultOnlineMonitorCriteriaInstance(
|
||||
{
|
||||
monitorType: arg.monitorType,
|
||||
monitorStatusId: arg.onlineMonitorStatusId,
|
||||
}
|
||||
),
|
||||
],
|
||||
};
|
||||
|
||||
@@ -155,7 +155,7 @@ export default class MonitorCriteria extends DatabaseProperty {
|
||||
): JSONObject | null {
|
||||
if (value && value instanceof MonitorCriteria) {
|
||||
return (value as MonitorCriteria).toJSON();
|
||||
}else if (value){
|
||||
} else if (value) {
|
||||
return JSONFunctions.serialize(value as any);
|
||||
}
|
||||
|
||||
|
||||
@@ -75,6 +75,17 @@ export default class MonitorCriteriaInstance extends DatabaseProperty {
|
||||
description: 'This criteria cheks if the monitor is online',
|
||||
};
|
||||
|
||||
if (
|
||||
arg.monitorType === MonitorType.Website ||
|
||||
arg.monitorType === MonitorType.API
|
||||
) {
|
||||
monitorCriteriaInstance.data.filters.push({
|
||||
checkOn: CheckOn.ResponseStatusCode,
|
||||
filterType: FilterType.EqualTo,
|
||||
value: 200,
|
||||
});
|
||||
}
|
||||
|
||||
return monitorCriteriaInstance;
|
||||
}
|
||||
|
||||
@@ -438,8 +449,8 @@ export default class MonitorCriteriaInstance extends DatabaseProperty {
|
||||
): JSONObject | null {
|
||||
if (value && value instanceof MonitorCriteriaInstance) {
|
||||
return (value as MonitorCriteriaInstance).toJSON();
|
||||
}else if(value){
|
||||
return JSONFunctions.serialize(value as any);
|
||||
} else if (value) {
|
||||
return JSONFunctions.serialize(value as any);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -235,13 +235,10 @@ export default class MonitorStep extends DatabaseProperty {
|
||||
): JSONObject | null {
|
||||
if (value && value instanceof MonitorStep) {
|
||||
return (value as MonitorStep).toJSON();
|
||||
}
|
||||
|
||||
else if(value) {
|
||||
} else if (value) {
|
||||
return JSONFunctions.serialize(value as any);
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@@ -169,12 +169,10 @@ export default class MonitorSteps extends DatabaseProperty {
|
||||
): JSONObject | null {
|
||||
if (value && value instanceof MonitorSteps) {
|
||||
return (value as MonitorSteps).toJSON();
|
||||
}
|
||||
else if(value) {
|
||||
} else if (value) {
|
||||
return JSONFunctions.serialize(value as any);
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -184,7 +182,6 @@ export default class MonitorSteps extends DatabaseProperty {
|
||||
if (value) {
|
||||
return MonitorSteps.fromJSON(value);
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -249,6 +249,7 @@ export default class API {
|
||||
}
|
||||
|
||||
private static getErrorResponse(error: AxiosError): HTTPErrorResponse {
|
||||
|
||||
if (error.response) {
|
||||
return new HTTPErrorResponse(
|
||||
error.response.status,
|
||||
|
||||
@@ -58,8 +58,7 @@ export default class QueryHelper {
|
||||
// construct string
|
||||
|
||||
const constructQuery: Function = (alias: string): string => {
|
||||
|
||||
let query: string = "(";
|
||||
let query: string = '(';
|
||||
|
||||
query += rid
|
||||
.map((item: string) => {
|
||||
|
||||
@@ -20,7 +20,6 @@ RunCron(
|
||||
runOnStartup: false,
|
||||
},
|
||||
async () => {
|
||||
|
||||
// run a set timeout function randomly between 1 to 5 seconds, so same probes do not hit the server at the same time
|
||||
|
||||
setTimeout(async () => {
|
||||
@@ -61,7 +60,5 @@ RunCron(
|
||||
|
||||
await Promise.allSettled(monitoringPromises);
|
||||
}, Math.floor(Math.random() * 5000) + 1000);
|
||||
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
@@ -46,6 +46,7 @@ export default class ApiMonitor {
|
||||
return {
|
||||
url: url,
|
||||
requestHeaders: options.requestHeaders || {},
|
||||
// if server is responding, it is online.
|
||||
isOnline: true,
|
||||
isSecure: url.protocol === Protocol.HTTPS,
|
||||
responseTimeInMS: responseTimeInMS,
|
||||
|
||||
@@ -109,8 +109,6 @@ router.post(
|
||||
});
|
||||
|
||||
|
||||
console.log("ITEMS LENGTH", monitors.length);
|
||||
|
||||
// return the list of monitors to be monitored
|
||||
|
||||
return Response.sendEntityArrayResponse(
|
||||
|
||||
@@ -266,6 +266,14 @@ export default class ProbeMonitorResponseService {
|
||||
probeApiIngestResponse: ProbeApiIngestResponse;
|
||||
criteriaInstance: MonitorCriteriaInstance;
|
||||
}): Promise<boolean> {
|
||||
let finalResult: boolean = true;
|
||||
|
||||
if (
|
||||
FilterCondition.Any === input.criteriaInstance.data?.filterCondition
|
||||
) {
|
||||
finalResult = false; // set to false as we need to check if any of the filters are met.
|
||||
}
|
||||
|
||||
for (const criteriaFilter of input.criteriaInstance.data?.filters ||
|
||||
[]) {
|
||||
const criteriaResult: boolean =
|
||||
@@ -291,11 +299,12 @@ export default class ProbeMonitorResponseService {
|
||||
input.criteriaInstance.data?.filterCondition &&
|
||||
criteriaResult === false
|
||||
) {
|
||||
return false;
|
||||
finalResult = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return finalResult;
|
||||
}
|
||||
|
||||
private static async isMonitorInstanceCriteriaFilterMet(input: {
|
||||
@@ -352,7 +361,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseTimeInMs &&
|
||||
input.probeMonitorResponse.responseTimeInMs >
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -363,7 +372,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseTimeInMs &&
|
||||
input.probeMonitorResponse.responseTimeInMs <
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -374,7 +383,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseTimeInMs &&
|
||||
input.probeMonitorResponse.responseTimeInMs ===
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -385,7 +394,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseTimeInMs &&
|
||||
input.probeMonitorResponse.responseTimeInMs !==
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -399,7 +408,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseTimeInMs &&
|
||||
input.probeMonitorResponse.responseTimeInMs >=
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -412,7 +421,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseTimeInMs &&
|
||||
input.probeMonitorResponse.responseTimeInMs <=
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -442,8 +451,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (input.criteriaFilter.filterType === FilterType.GreaterThan) {
|
||||
if (
|
||||
input.probeMonitorResponse.responseCode &&
|
||||
input.probeMonitorResponse.responseCode >
|
||||
(input.criteriaFilter.value as number)
|
||||
input.probeMonitorResponse.responseCode > (value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -453,8 +461,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (input.criteriaFilter.filterType === FilterType.LessThan) {
|
||||
if (
|
||||
input.probeMonitorResponse.responseCode &&
|
||||
input.probeMonitorResponse.responseCode <
|
||||
(input.criteriaFilter.value as number)
|
||||
input.probeMonitorResponse.responseCode < (value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -465,7 +472,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseCode &&
|
||||
input.probeMonitorResponse.responseCode ===
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -476,7 +483,7 @@ export default class ProbeMonitorResponseService {
|
||||
if (
|
||||
input.probeMonitorResponse.responseCode &&
|
||||
input.probeMonitorResponse.responseCode !==
|
||||
(input.criteriaFilter.value as number)
|
||||
(value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -489,8 +496,7 @@ export default class ProbeMonitorResponseService {
|
||||
) {
|
||||
if (
|
||||
input.probeMonitorResponse.responseCode &&
|
||||
input.probeMonitorResponse.responseCode >=
|
||||
(input.criteriaFilter.value as number)
|
||||
input.probeMonitorResponse.responseCode >= (value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
@@ -502,8 +508,7 @@ export default class ProbeMonitorResponseService {
|
||||
) {
|
||||
if (
|
||||
input.probeMonitorResponse.responseCode &&
|
||||
input.probeMonitorResponse.responseCode <=
|
||||
(input.criteriaFilter.value as number)
|
||||
input.probeMonitorResponse.responseCode <= (value as number)
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user