@oneuptime/common 8.0.5516 → 8.0.5547

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/Models/DatabaseModels/AcmeChallenge.ts +3 -0
  2. package/Models/DatabaseModels/Domain.ts +6 -1
  3. package/Server/API/AcmeChallengeAPI.ts +64 -0
  4. package/Server/EnvironmentConfig.ts +54 -0
  5. package/Server/Infrastructure/Queue.ts +12 -16
  6. package/Server/Infrastructure/QueueWorker.ts +2 -6
  7. package/Server/Services/DomainService.ts +48 -40
  8. package/Server/Utils/AnalyticsDatabase/Statement.ts +8 -4
  9. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +47 -15
  10. package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +13 -12
  11. package/Server/Utils/Monitor/MonitorAlert.ts +46 -1
  12. package/Server/Utils/Monitor/MonitorCriteriaDataExtractor.ts +208 -0
  13. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +439 -0
  14. package/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.ts +141 -0
  15. package/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.ts +88 -0
  16. package/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.ts +196 -0
  17. package/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.ts +1123 -0
  18. package/Server/Utils/Monitor/MonitorIncident.ts +46 -1
  19. package/Server/Utils/Monitor/MonitorLogUtil.ts +44 -0
  20. package/Server/Utils/Monitor/MonitorMetricUtil.ts +482 -0
  21. package/Server/Utils/Monitor/MonitorResource.ts +185 -914
  22. package/Server/Utils/StartServer.ts +14 -6
  23. package/Types/Email.ts +3 -7
  24. package/Types/Monitor/IncomingMonitor/IncomingMonitorRequest.ts +2 -0
  25. package/Types/Monitor/LogMonitor/LogMonitorResponse.ts +2 -0
  26. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +2 -0
  27. package/Types/Monitor/MonitorEvaluationSummary.ts +48 -0
  28. package/Types/Monitor/ServerMonitor/ServerMonitorResponse.ts +2 -0
  29. package/Types/Monitor/TraceMonitor/TraceMonitorResponse.ts +2 -0
  30. package/Types/Probe/ProbeApiIngestResponse.ts +2 -0
  31. package/Types/Probe/ProbeMonitorResponse.ts +2 -0
  32. package/build/dist/Models/DatabaseModels/AcmeChallenge.js +3 -0
  33. package/build/dist/Models/DatabaseModels/AcmeChallenge.js.map +1 -1
  34. package/build/dist/Models/DatabaseModels/Domain.js +6 -1
  35. package/build/dist/Models/DatabaseModels/Domain.js.map +1 -1
  36. package/build/dist/Server/API/AcmeChallengeAPI.js +39 -0
  37. package/build/dist/Server/API/AcmeChallengeAPI.js.map +1 -0
  38. package/build/dist/Server/EnvironmentConfig.js +44 -0
  39. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  40. package/build/dist/Server/Infrastructure/Queue.js +8 -11
  41. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  42. package/build/dist/Server/Infrastructure/QueueWorker.js +2 -6
  43. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  44. package/build/dist/Server/Services/DomainService.js +31 -29
  45. package/build/dist/Server/Services/DomainService.js.map +1 -1
  46. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +2 -1
  47. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
  48. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +34 -16
  49. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  50. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +12 -12
  51. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
  52. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +42 -4
  53. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  54. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +119 -0
  55. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -0
  56. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +312 -0
  57. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -0
  58. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js +109 -0
  59. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js.map +1 -0
  60. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.js +45 -0
  61. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.js.map +1 -0
  62. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.js +132 -0
  63. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.js.map +1 -0
  64. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +583 -0
  65. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -0
  66. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +42 -4
  67. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  68. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +32 -0
  69. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -0
  70. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +361 -0
  71. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -0
  72. package/build/dist/Server/Utils/Monitor/MonitorResource.js +134 -666
  73. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  74. package/build/dist/Server/Utils/StartServer.js +7 -4
  75. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  76. package/build/dist/Types/Email.js +2 -5
  77. package/build/dist/Types/Email.js.map +1 -1
  78. package/build/dist/Types/Monitor/MonitorEvaluationSummary.js +2 -0
  79. package/build/dist/Types/Monitor/MonitorEvaluationSummary.js.map +1 -0
  80. package/package.json +5 -5
@@ -11,90 +11,25 @@ import MonitorProbeService from "../../Services/MonitorProbeService";
11
11
  import MonitorService from "../../Services/MonitorService";
12
12
  import MonitorStatusTimelineService from "../../Services/MonitorStatusTimelineService";
13
13
  import logger from "../Logger";
14
- import VMUtil from "../VM/VMAPI";
15
- import APIRequestCriteria from "./Criteria/APIRequestCriteria";
16
- import CustomCodeMonitoringCriteria from "./Criteria/CustomCodeMonitorCriteria";
17
- import IncomingRequestCriteria from "./Criteria/IncomingRequestCriteria";
18
- import SSLMonitorCriteria from "./Criteria/SSLMonitorCriteria";
19
- import ServerMonitorCriteria from "./Criteria/ServerMonitorCriteria";
20
- import SyntheticMonitoringCriteria from "./Criteria/SyntheticMonitor";
14
+ import MonitorCriteriaEvaluator from "./MonitorCriteriaEvaluator";
15
+ import MonitorLogUtil from "./MonitorLogUtil";
16
+ import MonitorMetricUtil from "./MonitorMetricUtil";
21
17
  import SortOrder from "../../../Types/BaseDatabase/SortOrder";
22
18
  import BadDataException from "../../../Types/Exception/BadDataException";
23
19
  import Semaphore from "../../Infrastructure/Semaphore";
24
- import { CheckOn } from "../../../Types/Monitor/CriteriaFilter";
25
20
  import MonitorType, { MonitorTypeHelper, } from "../../../Types/Monitor/MonitorType";
26
- import ObjectID from "../../../Types/ObjectID";
27
- import Typeof from "../../../Types/Typeof";
28
21
  import MonitorStatusTimeline from "../../../Models/DatabaseModels/MonitorStatusTimeline";
29
22
  import OneUptimeDate from "../../../Types/Date";
30
- import LogMonitorCriteria from "./Criteria/LogMonitorCriteria";
31
23
  import TelemetryType from "../../../Types/Telemetry/TelemetryType";
32
- import TraceMonitorCriteria from "./Criteria/TraceMonitorCriteria";
33
24
  import MonitorIncident from "./MonitorIncident";
34
25
  import MonitorAlert from "./MonitorAlert";
35
26
  import MonitorStatusTimelineUtil from "./MonitorStatusTimeline";
36
- import { MetricPointType, ServiceType, } from "../../../Models/AnalyticsModels/Metric";
37
- import MetricService from "../../Services/MetricService";
38
- import MonitorMetricType from "../../../Types/Monitor/MonitorMetricType";
39
- import TelemetryUtil from "../Telemetry/Telemetry";
40
- import MetricMonitorCriteria from "./Criteria/MetricMonitorCriteria";
41
- import FilterCondition from "../../../Types/Filter/FilterCondition";
42
27
  import CaptureSpan from "../Telemetry/CaptureSpan";
43
- import MetricType from "../../../Models/DatabaseModels/MetricType";
44
- import MonitorLogService from "../../Services/MonitorLogService";
45
28
  import ExceptionMessages from "../../../Types/Exception/ExceptionMessages";
29
+ import MonitorStatusService from "../../Services/MonitorStatusService";
46
30
  export default class MonitorResourceUtil {
47
- static buildMonitorMetricAttributes(data) {
48
- const attributes = {
49
- monitorId: data.monitorId.toString(),
50
- projectId: data.projectId.toString(),
51
- };
52
- if (data.extraAttributes) {
53
- Object.assign(attributes, data.extraAttributes);
54
- }
55
- if (data.monitorName) {
56
- attributes["monitorName"] = data.monitorName;
57
- }
58
- if (data.probeName) {
59
- attributes["probeName"] = data.probeName;
60
- }
61
- return attributes;
62
- }
63
- static buildMonitorMetricRow(data) {
64
- var _a;
65
- const ingestionDate = OneUptimeDate.getCurrentDate();
66
- const ingestionTimestamp = OneUptimeDate.toClickhouseDateTime(ingestionDate);
67
- const timeUnixNano = OneUptimeDate.toUnixNano(ingestionDate).toString();
68
- const attributes = Object.assign({}, data.attributes);
69
- const attributeKeys = TelemetryUtil.getAttributeKeys(attributes);
70
- return {
71
- _id: ObjectID.generate().toString(),
72
- createdAt: ingestionTimestamp,
73
- updatedAt: ingestionTimestamp,
74
- projectId: data.projectId.toString(),
75
- serviceId: data.monitorId.toString(),
76
- serviceType: ServiceType.Monitor,
77
- name: data.metricName,
78
- aggregationTemporality: null,
79
- metricPointType: data.metricPointType || MetricPointType.Sum,
80
- time: ingestionTimestamp,
81
- startTime: null,
82
- timeUnixNano: timeUnixNano,
83
- startTimeUnixNano: null,
84
- attributes: attributes,
85
- attributeKeys: attributeKeys,
86
- isMonotonic: null,
87
- count: null,
88
- sum: null,
89
- min: null,
90
- max: null,
91
- bucketCounts: [],
92
- explicitBounds: [],
93
- value: (_a = data.value) !== null && _a !== void 0 ? _a : null,
94
- };
95
- }
96
31
  static async monitorResource(dataToProcess) {
97
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
32
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
98
33
  let mutex = null;
99
34
  try {
100
35
  mutex = await Semaphore.lock({
@@ -110,6 +45,38 @@ export default class MonitorResourceUtil {
110
45
  criteriaMetId: undefined,
111
46
  rootCause: null,
112
47
  };
48
+ const evaluationSummary = {
49
+ evaluatedAt: OneUptimeDate.getCurrentDate(),
50
+ criteriaResults: [],
51
+ events: [],
52
+ };
53
+ response.evaluationSummary = evaluationSummary;
54
+ dataToProcess.evaluationSummary = evaluationSummary;
55
+ const monitorStatusNameCache = {};
56
+ const getMonitorStatusName = async (statusId) => {
57
+ var _a;
58
+ if (!statusId) {
59
+ return null;
60
+ }
61
+ const cacheKey = statusId.toString();
62
+ if (monitorStatusNameCache[cacheKey] !== undefined) {
63
+ return (_a = monitorStatusNameCache[cacheKey]) !== null && _a !== void 0 ? _a : null;
64
+ }
65
+ const monitorStatus = await MonitorStatusService.findOneBy({
66
+ query: {
67
+ _id: statusId,
68
+ },
69
+ select: {
70
+ name: true,
71
+ },
72
+ props: {
73
+ isRoot: true,
74
+ },
75
+ });
76
+ const statusName = (monitorStatus === null || monitorStatus === void 0 ? void 0 : monitorStatus.name) || null;
77
+ monitorStatusNameCache[cacheKey] = statusName;
78
+ return statusName;
79
+ };
113
80
  logger.debug("Processing probe response");
114
81
  logger.debug("Monitor ID: " + dataToProcess.monitorId);
115
82
  logger.debug("Fetching Monitor...");
@@ -196,43 +163,57 @@ export default class MonitorResourceUtil {
196
163
  });
197
164
  }
198
165
  }
199
- if (monitor.monitorType === MonitorType.IncomingRequest &&
166
+ const serverMonitorResponse = monitor.monitorType === MonitorType.Server &&
167
+ dataToProcess.requestReceivedAt
168
+ ? dataToProcess
169
+ : undefined;
170
+ const incomingMonitorRequest = monitor.monitorType === MonitorType.IncomingRequest &&
200
171
  dataToProcess.incomingRequestReceivedAt &&
201
172
  !dataToProcess
202
- .onlyCheckForIncomingRequestReceivedAt) {
203
- logger.debug(`${dataToProcess.monitorId.toString()} - Incoming request received at ${dataToProcess.incomingRequestReceivedAt}`);
204
- await MonitorService.updateOneById({
205
- id: monitor.id,
206
- data: {
207
- incomingRequestMonitorHeartbeatCheckedAt: OneUptimeDate.getCurrentDate(),
208
- incomingMonitorRequest: Object.assign({}, dataToProcess),
209
- },
210
- props: {
211
- isRoot: true,
212
- },
213
- });
214
- logger.debug(`${dataToProcess.monitorId.toString()} - Monitor Updated`);
215
- }
216
- if (monitor.monitorType === MonitorType.Server &&
217
- dataToProcess.requestReceivedAt) {
218
- logger.debug(`${dataToProcess.monitorId.toString()} - Server request received at ${dataToProcess.requestReceivedAt}`);
219
- logger.debug(dataToProcess);
220
- await MonitorService.updateOneById({
221
- id: monitor.id,
222
- data: {
223
- serverMonitorRequestReceivedAt: dataToProcess.requestReceivedAt,
224
- serverMonitorResponse: dataToProcess, // this could be redundant as we are already saving this in the incomingMonitorRequest. we should remove this in the future.
225
- },
226
- props: {
227
- isRoot: true,
228
- ignoreHooks: true,
229
- },
230
- });
231
- logger.debug(`${dataToProcess.monitorId.toString()} - Monitor Updated`);
232
- }
173
+ .onlyCheckForIncomingRequestReceivedAt
174
+ ? dataToProcess
175
+ : undefined;
176
+ let hasPersistedMonitorData = false;
177
+ const persistLatestMonitorPayload = async () => {
178
+ if (hasPersistedMonitorData) {
179
+ return;
180
+ }
181
+ if (serverMonitorResponse) {
182
+ logger.debug(`${dataToProcess.monitorId.toString()} - Server request received at ${serverMonitorResponse.requestReceivedAt}`);
183
+ logger.debug(dataToProcess);
184
+ await MonitorService.updateOneById({
185
+ id: monitor.id,
186
+ data: {
187
+ serverMonitorRequestReceivedAt: serverMonitorResponse.requestReceivedAt,
188
+ serverMonitorResponse,
189
+ },
190
+ props: {
191
+ isRoot: true,
192
+ ignoreHooks: true,
193
+ },
194
+ });
195
+ logger.debug(`${dataToProcess.monitorId.toString()} - Monitor Server Response Updated`);
196
+ }
197
+ if (incomingMonitorRequest) {
198
+ logger.debug(`${dataToProcess.monitorId.toString()} - Incoming request received at ${incomingMonitorRequest.incomingRequestReceivedAt}`);
199
+ await MonitorService.updateOneById({
200
+ id: monitor.id,
201
+ data: {
202
+ incomingRequestMonitorHeartbeatCheckedAt: OneUptimeDate.getCurrentDate(),
203
+ incomingMonitorRequest: JSON.parse(JSON.stringify(incomingMonitorRequest)),
204
+ },
205
+ props: {
206
+ isRoot: true,
207
+ ignoreHooks: true,
208
+ },
209
+ });
210
+ logger.debug(`${dataToProcess.monitorId.toString()} - Monitor Incoming Request Updated`);
211
+ }
212
+ hasPersistedMonitorData = true;
213
+ };
233
214
  logger.debug(`${dataToProcess.monitorId.toString()} - Saving monitor metrics`);
234
215
  try {
235
- await this.saveMonitorMetrics({
216
+ await MonitorMetricUtil.saveMonitorMetrics({
236
217
  monitorId: monitor.id,
237
218
  projectId: monitor.projectId,
238
219
  dataToProcess: dataToProcess,
@@ -249,6 +230,12 @@ export default class MonitorResourceUtil {
249
230
  if (!((_b = monitorSteps.data) === null || _b === void 0 ? void 0 : _b.monitorStepsInstanceArray) ||
250
231
  ((_c = monitorSteps.data) === null || _c === void 0 ? void 0 : _c.monitorStepsInstanceArray.length) === 0) {
251
232
  logger.debug(`${dataToProcess.monitorId.toString()} - No monitoring steps.`);
233
+ await persistLatestMonitorPayload();
234
+ MonitorLogUtil.saveMonitorLog({
235
+ monitorId: monitor.id,
236
+ projectId: monitor.projectId,
237
+ dataToProcess: dataToProcess,
238
+ });
252
239
  return response;
253
240
  }
254
241
  logger.debug(`${dataToProcess.monitorId.toString()} - Auto resolving criteria instances.`);
@@ -310,6 +297,12 @@ export default class MonitorResourceUtil {
310
297
  }
311
298
  if (!monitorStep) {
312
299
  logger.debug("No steps found, ignoring everything.");
300
+ await persistLatestMonitorPayload();
301
+ MonitorLogUtil.saveMonitorLog({
302
+ monitorId: monitor.id,
303
+ projectId: monitor.projectId,
304
+ dataToProcess: dataToProcess,
305
+ });
313
306
  return response;
314
307
  }
315
308
  // now process the monitor step
@@ -324,11 +317,12 @@ export default class MonitorResourceUtil {
324
317
  logger.debug(`Next Monitor Step ID: ${response.nextMonitorStepId}`);
325
318
  // now process probe response monitors
326
319
  logger.debug(`${dataToProcess.monitorId.toString()} - Processing monitor step...`);
327
- response = await MonitorResourceUtil.processMonitorStep({
320
+ response = await MonitorCriteriaEvaluator.processMonitorStep({
328
321
  dataToProcess: dataToProcess,
329
322
  monitorStep: monitorStep,
330
323
  monitor: monitor,
331
324
  probeApiIngestResponse: response,
325
+ evaluationSummary: evaluationSummary,
332
326
  });
333
327
  if (response.criteriaMetId && response.rootCause) {
334
328
  logger.debug(`${dataToProcess.monitorId.toString()} - Criteria met: ${response.criteriaMetId}`);
@@ -366,21 +360,36 @@ export default class MonitorResourceUtil {
366
360
  };
367
361
  logger.debug(`${dataToProcess.monitorId.toString()} - Span query found.`);
368
362
  }
369
- await MonitorStatusTimelineUtil.updateMonitorStatusTimeline({
363
+ const matchedCriteriaInstance = criteriaInstanceMap[response.criteriaMetId];
364
+ const monitorStatusTimelineChange = await MonitorStatusTimelineUtil.updateMonitorStatusTimeline({
370
365
  monitor: monitor,
371
366
  rootCause: response.rootCause,
372
367
  dataToProcess: dataToProcess,
373
- criteriaInstance: criteriaInstanceMap[response.criteriaMetId],
368
+ criteriaInstance: matchedCriteriaInstance,
374
369
  props: {
375
370
  telemetryQuery: telemetryQuery,
376
371
  },
377
372
  });
373
+ if (monitorStatusTimelineChange) {
374
+ const changedStatusName = await getMonitorStatusName(((_o = matchedCriteriaInstance.data) === null || _o === void 0 ? void 0 : _o.monitorStatusId) ||
375
+ monitorStatusTimelineChange.monitorStatusId);
376
+ evaluationSummary.events.push({
377
+ type: "monitor-status-changed",
378
+ title: "Monitor status updated",
379
+ message: changedStatusName
380
+ ? `Monitor status changed to "${changedStatusName}" because criteria "${((_p = matchedCriteriaInstance.data) === null || _p === void 0 ? void 0 : _p.name) || "Unnamed criteria"}" was met.`
381
+ : `Monitor status changed because criteria "${((_q = matchedCriteriaInstance.data) === null || _q === void 0 ? void 0 : _q.name) || "Unnamed criteria"}" was met.`,
382
+ relatedCriteriaId: (_r = matchedCriteriaInstance.data) === null || _r === void 0 ? void 0 : _r.id,
383
+ at: OneUptimeDate.getCurrentDate(),
384
+ });
385
+ }
378
386
  await MonitorIncident.criteriaMetCreateIncidentsAndUpdateMonitorStatus({
379
387
  monitor: monitor,
380
388
  rootCause: response.rootCause,
381
389
  dataToProcess: dataToProcess,
382
390
  autoResolveCriteriaInstanceIdIncidentIdsDictionary,
383
- criteriaInstance: criteriaInstanceMap[response.criteriaMetId],
391
+ criteriaInstance: matchedCriteriaInstance,
392
+ evaluationSummary: evaluationSummary,
384
393
  props: {
385
394
  telemetryQuery: telemetryQuery,
386
395
  },
@@ -391,6 +400,7 @@ export default class MonitorResourceUtil {
391
400
  dataToProcess: dataToProcess,
392
401
  autoResolveCriteriaInstanceIdAlertIdsDictionary,
393
402
  criteriaInstance: criteriaInstanceAlertMap[response.criteriaMetId],
403
+ evaluationSummary: evaluationSummary,
394
404
  props: {
395
405
  telemetryQuery: telemetryQuery,
396
406
  },
@@ -398,7 +408,7 @@ export default class MonitorResourceUtil {
398
408
  }
399
409
  else if (!response.criteriaMetId &&
400
410
  monitorSteps.data.defaultMonitorStatusId &&
401
- ((_o = monitor.currentMonitorStatusId) === null || _o === void 0 ? void 0 : _o.toString()) !==
411
+ ((_s = monitor.currentMonitorStatusId) === null || _s === void 0 ? void 0 : _s.toString()) !==
402
412
  monitorSteps.data.defaultMonitorStatusId.toString()) {
403
413
  logger.debug(`${dataToProcess.monitorId.toString()} - No criteria met. Change to default status.`);
404
414
  await MonitorIncident.checkOpenIncidentsAndCloseIfResolved({
@@ -407,6 +417,7 @@ export default class MonitorResourceUtil {
407
417
  rootCause: "No monitoring criteria met. Change to default status.",
408
418
  criteriaInstance: null, // no criteria met!
409
419
  dataToProcess: dataToProcess,
420
+ evaluationSummary: evaluationSummary,
410
421
  });
411
422
  // get last monitor status timeline.
412
423
  const lastMonitorStatusTimeline = await MonitorStatusTimelineService.findOneBy({
@@ -452,6 +463,15 @@ export default class MonitorResourceUtil {
452
463
  },
453
464
  });
454
465
  logger.debug(`${dataToProcess.monitorId.toString()} - Monitor status updated to default.`);
466
+ const defaultStatusName = await getMonitorStatusName(monitorSteps.data.defaultMonitorStatusId);
467
+ evaluationSummary.events.push({
468
+ type: "monitor-status-changed",
469
+ title: "Monitor status reverted",
470
+ message: defaultStatusName
471
+ ? `Monitor status reverted to "${defaultStatusName}" because no monitoring criteria were met.`
472
+ : "Monitor status reverted to its default state because no monitoring criteria were met.",
473
+ at: OneUptimeDate.getCurrentDate(),
474
+ });
455
475
  }
456
476
  }
457
477
  if (mutex) {
@@ -462,559 +482,13 @@ export default class MonitorResourceUtil {
462
482
  logger.error(err);
463
483
  }
464
484
  }
465
- return response;
466
- }
467
- static async saveMonitorMetrics(data) {
468
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
469
- if (!data.monitorId) {
470
- return;
471
- }
472
- if (!data.projectId) {
473
- return;
474
- }
475
- if (!data.dataToProcess) {
476
- return;
477
- }
478
- const metricRows = [];
479
- /*
480
- * Metric name to serviceId map
481
- * example: "cpu.usage" -> [serviceId1, serviceId2]
482
- * since these are monitor metrics. They dont belong to any service so we can keep the array empty.
483
- */
484
- const metricNameServiceNameMap = {};
485
- if (data.dataToProcess.basicInfrastructureMetrics) {
486
- // store cpu, memory, disk metrics.
487
- if (data.dataToProcess.requestReceivedAt) {
488
- let isOnline = true;
489
- const differenceInMinutes = OneUptimeDate.getDifferenceInMinutes(data.dataToProcess.requestReceivedAt, OneUptimeDate.getCurrentDate());
490
- if (differenceInMinutes > 2) {
491
- isOnline = false;
492
- }
493
- const attributes = this.buildMonitorMetricAttributes({
494
- monitorId: data.monitorId,
495
- projectId: data.projectId,
496
- monitorName: data.monitorName,
497
- probeName: data.probeName,
498
- });
499
- const metricRow = this.buildMonitorMetricRow({
500
- projectId: data.projectId,
501
- monitorId: data.monitorId,
502
- metricName: MonitorMetricType.IsOnline,
503
- value: isOnline ? 1 : 0,
504
- attributes: attributes,
505
- metricPointType: MetricPointType.Sum,
506
- });
507
- metricRows.push(metricRow);
508
- // add MetricType
509
- const metricType = new MetricType();
510
- metricType.name = MonitorMetricType.IsOnline;
511
- metricType.description = CheckOn.IsOnline + " status for monitor";
512
- metricType.unit = "";
513
- // add to map
514
- metricNameServiceNameMap[MonitorMetricType.IsOnline] = metricType;
515
- }
516
- const basicMetrics = data.dataToProcess.basicInfrastructureMetrics;
517
- if (!basicMetrics) {
518
- return;
519
- }
520
- if (basicMetrics.cpuMetrics) {
521
- const attributes = this.buildMonitorMetricAttributes({
522
- monitorId: data.monitorId,
523
- projectId: data.projectId,
524
- monitorName: data.monitorName,
525
- probeName: data.probeName,
526
- });
527
- const metricRow = this.buildMonitorMetricRow({
528
- projectId: data.projectId,
529
- monitorId: data.monitorId,
530
- metricName: MonitorMetricType.CPUUsagePercent,
531
- value: (_a = basicMetrics.cpuMetrics.percentUsed) !== null && _a !== void 0 ? _a : null,
532
- attributes: attributes,
533
- metricPointType: MetricPointType.Sum,
534
- });
535
- metricRows.push(metricRow);
536
- const metricType = new MetricType();
537
- metricType.name = MonitorMetricType.CPUUsagePercent;
538
- metricType.description = CheckOn.CPUUsagePercent + " of Server/VM";
539
- metricType.unit = "%";
540
- metricNameServiceNameMap[MonitorMetricType.CPUUsagePercent] =
541
- metricType;
542
- }
543
- if (basicMetrics.memoryMetrics) {
544
- const attributes = this.buildMonitorMetricAttributes({
545
- monitorId: data.monitorId,
546
- projectId: data.projectId,
547
- monitorName: data.monitorName,
548
- probeName: data.probeName,
549
- });
550
- const metricRow = this.buildMonitorMetricRow({
551
- projectId: data.projectId,
552
- monitorId: data.monitorId,
553
- metricName: MonitorMetricType.MemoryUsagePercent,
554
- value: (_b = basicMetrics.memoryMetrics.percentUsed) !== null && _b !== void 0 ? _b : null,
555
- attributes: attributes,
556
- metricPointType: MetricPointType.Sum,
557
- });
558
- metricRows.push(metricRow);
559
- const metricType = new MetricType();
560
- metricType.name = MonitorMetricType.MemoryUsagePercent;
561
- metricType.description = CheckOn.MemoryUsagePercent + " of Server/VM";
562
- metricType.unit = "%";
563
- metricNameServiceNameMap[MonitorMetricType.MemoryUsagePercent] =
564
- metricType;
565
- }
566
- if (basicMetrics.diskMetrics && basicMetrics.diskMetrics.length > 0) {
567
- for (const diskMetric of basicMetrics.diskMetrics) {
568
- const extraAttributes = {};
569
- if (diskMetric.diskPath) {
570
- extraAttributes["diskPath"] = diskMetric.diskPath;
571
- }
572
- const attributes = this.buildMonitorMetricAttributes({
573
- monitorId: data.monitorId,
574
- projectId: data.projectId,
575
- monitorName: data.monitorName,
576
- probeName: data.probeName,
577
- extraAttributes: extraAttributes,
578
- });
579
- const metricRow = this.buildMonitorMetricRow({
580
- projectId: data.projectId,
581
- monitorId: data.monitorId,
582
- metricName: MonitorMetricType.DiskUsagePercent,
583
- value: (_c = diskMetric.percentUsed) !== null && _c !== void 0 ? _c : null,
584
- attributes: attributes,
585
- metricPointType: MetricPointType.Sum,
586
- });
587
- metricRows.push(metricRow);
588
- const metricType = new MetricType();
589
- metricType.name = MonitorMetricType.DiskUsagePercent;
590
- metricType.description = CheckOn.DiskUsagePercent + " of Server/VM";
591
- metricType.unit = "%";
592
- metricNameServiceNameMap[MonitorMetricType.DiskUsagePercent] =
593
- metricType;
594
- }
595
- }
596
- }
597
- if ((_d = data.dataToProcess.customCodeMonitorResponse) === null || _d === void 0 ? void 0 : _d.executionTimeInMS) {
598
- const extraAttributes = {
599
- probeId: data.dataToProcess.probeId.toString(),
600
- };
601
- const attributes = this.buildMonitorMetricAttributes({
602
- monitorId: data.monitorId,
603
- projectId: data.projectId,
604
- extraAttributes: extraAttributes,
605
- });
606
- const metricRow = this.buildMonitorMetricRow({
607
- projectId: data.projectId,
608
- monitorId: data.monitorId,
609
- metricName: MonitorMetricType.ExecutionTime,
610
- value: (_f = (_e = data.dataToProcess.customCodeMonitorResponse) === null || _e === void 0 ? void 0 : _e.executionTimeInMS) !== null && _f !== void 0 ? _f : null,
611
- attributes: attributes,
612
- metricPointType: MetricPointType.Sum,
613
- });
614
- metricRows.push(metricRow);
615
- const metricType = new MetricType();
616
- metricType.name = MonitorMetricType.ExecutionTime;
617
- metricType.description = CheckOn.ExecutionTime + " of this monitor";
618
- metricType.unit = "ms";
619
- metricNameServiceNameMap[MonitorMetricType.ExecutionTime] = metricType;
620
- }
621
- if (data.dataToProcess &&
622
- data.dataToProcess.syntheticMonitorResponse &&
623
- (data.dataToProcess.syntheticMonitorResponse ||
624
- []).length > 0) {
625
- for (const syntheticMonitorResponse of data.dataToProcess.syntheticMonitorResponse || []) {
626
- const extraAttributes = {
627
- probeId: data.dataToProcess.probeId.toString(),
628
- };
629
- if (syntheticMonitorResponse.browserType) {
630
- extraAttributes["browserType"] = syntheticMonitorResponse.browserType;
631
- }
632
- if (syntheticMonitorResponse.screenSizeType) {
633
- extraAttributes["screenSizeType"] =
634
- syntheticMonitorResponse.screenSizeType;
635
- }
636
- const attributes = this.buildMonitorMetricAttributes({
637
- monitorId: data.monitorId,
638
- projectId: data.projectId,
639
- monitorName: data.monitorName,
640
- probeName: data.probeName,
641
- extraAttributes: extraAttributes,
642
- });
643
- const metricRow = this.buildMonitorMetricRow({
644
- projectId: data.projectId,
645
- monitorId: data.monitorId,
646
- metricName: MonitorMetricType.ExecutionTime,
647
- value: (_g = syntheticMonitorResponse.executionTimeInMS) !== null && _g !== void 0 ? _g : null,
648
- attributes: attributes,
649
- metricPointType: MetricPointType.Sum,
650
- });
651
- metricRows.push(metricRow);
652
- const metricType = new MetricType();
653
- metricType.name = MonitorMetricType.ExecutionTime;
654
- metricType.description = CheckOn.ExecutionTime + " of this monitor";
655
- metricType.unit = "ms";
656
- metricNameServiceNameMap[MonitorMetricType.ExecutionTime] = metricType;
657
- }
658
- }
659
- if (data.dataToProcess.responseTimeInMs) {
660
- const extraAttributes = {
661
- probeId: data.dataToProcess.probeId.toString(),
662
- };
663
- const attributes = this.buildMonitorMetricAttributes({
664
- monitorId: data.monitorId,
665
- projectId: data.projectId,
666
- monitorName: data.monitorName,
667
- probeName: data.probeName,
668
- extraAttributes: extraAttributes,
669
- });
670
- const metricRow = this.buildMonitorMetricRow({
671
- projectId: data.projectId,
672
- monitorId: data.monitorId,
673
- metricName: MonitorMetricType.ResponseTime,
674
- value: (_h = data.dataToProcess.responseTimeInMs) !== null && _h !== void 0 ? _h : null,
675
- attributes: attributes,
676
- metricPointType: MetricPointType.Sum,
677
- });
678
- metricRows.push(metricRow);
679
- const metricType = new MetricType();
680
- metricType.name = MonitorMetricType.ResponseTime;
681
- metricType.description = CheckOn.ResponseTime + " of this monitor";
682
- metricType.unit = "ms";
683
- metricNameServiceNameMap[MonitorMetricType.ResponseTime] = metricType;
684
- }
685
- if (data.dataToProcess.isOnline !== undefined) {
686
- const extraAttributes = {
687
- probeId: data.dataToProcess.probeId.toString(),
688
- };
689
- const attributes = this.buildMonitorMetricAttributes({
690
- monitorId: data.monitorId,
691
- projectId: data.projectId,
692
- monitorName: data.monitorName,
693
- probeName: data.probeName,
694
- extraAttributes: extraAttributes,
695
- });
696
- const metricRow = this.buildMonitorMetricRow({
697
- projectId: data.projectId,
698
- monitorId: data.monitorId,
699
- metricName: MonitorMetricType.IsOnline,
700
- value: data.dataToProcess.isOnline ? 1 : 0,
701
- attributes: attributes,
702
- metricPointType: MetricPointType.Sum,
703
- });
704
- metricRows.push(metricRow);
705
- const metricType = new MetricType();
706
- metricType.name = MonitorMetricType.IsOnline;
707
- metricType.description = CheckOn.IsOnline + " status for monitor";
708
- metricType.unit = "";
709
- metricNameServiceNameMap[MonitorMetricType.IsOnline] = metricType;
710
- }
711
- if (data.dataToProcess.responseCode) {
712
- const extraAttributes = {
713
- probeId: data.dataToProcess.probeId.toString(),
714
- };
715
- const attributes = this.buildMonitorMetricAttributes({
716
- monitorId: data.monitorId,
717
- projectId: data.projectId,
718
- monitorName: data.monitorName,
719
- probeName: data.probeName,
720
- extraAttributes: extraAttributes,
721
- });
722
- const metricRow = this.buildMonitorMetricRow({
723
- projectId: data.projectId,
724
- monitorId: data.monitorId,
725
- metricName: MonitorMetricType.ResponseStatusCode,
726
- value: (_j = data.dataToProcess.responseCode) !== null && _j !== void 0 ? _j : null,
727
- attributes: attributes,
728
- metricPointType: MetricPointType.Sum,
729
- });
730
- metricRows.push(metricRow);
731
- const metricType = new MetricType();
732
- metricType.name = MonitorMetricType.ResponseStatusCode;
733
- metricType.description = CheckOn.ResponseStatusCode + " for this monitor";
734
- metricType.unit = "Status Code";
735
- metricNameServiceNameMap[MonitorMetricType.ResponseStatusCode] =
736
- metricType;
737
- }
738
- if (metricRows.length > 0) {
739
- await MetricService.insertJsonRows(metricRows);
740
- }
741
- // index metrics
742
- TelemetryUtil.indexMetricNameServiceNameMap({
743
- projectId: data.projectId,
744
- metricNameServiceNameMap: metricNameServiceNameMap,
745
- }).catch((err) => {
746
- logger.error(err);
747
- });
748
- // save monitor log.
749
- const logIngestionDate = OneUptimeDate.getCurrentDate();
750
- const logTimestamp = OneUptimeDate.toClickhouseDateTime(logIngestionDate);
751
- const monitorLogRow = {
752
- _id: ObjectID.generate().toString(),
753
- createdAt: logTimestamp,
754
- updatedAt: logTimestamp,
755
- projectId: data.projectId.toString(),
756
- monitorId: data.monitorId.toString(),
757
- time: logTimestamp,
758
- logBody: JSON.parse(JSON.stringify(data.dataToProcess)),
759
- };
760
- MonitorLogService.insertJsonRows([monitorLogRow]).catch((err) => {
761
- logger.error(err);
762
- });
763
- }
764
- static async processMonitorStep(input) {
765
- // process monitor step here.
766
- var _a, _b, _c;
767
- const criteria = (_a = input.monitorStep.data) === null || _a === void 0 ? void 0 : _a.monitorCriteria;
768
- if (!criteria || !criteria.data) {
769
- // do nothing as there's no criteria to process.
770
- return input.probeApiIngestResponse;
771
- }
772
- for (const criteriaInstance of criteria.data.monitorCriteriaInstanceArray) {
773
- const rootCause = await MonitorResourceUtil.processMonitorCriteiaInstance({
774
- dataToProcess: input.dataToProcess,
775
- monitorStep: input.monitorStep,
776
- monitor: input.monitor,
777
- probeApiIngestResponse: input.probeApiIngestResponse,
778
- criteriaInstance: criteriaInstance,
779
- });
780
- if (rootCause) {
781
- input.probeApiIngestResponse.criteriaMetId = (_b = criteriaInstance.data) === null || _b === void 0 ? void 0 : _b.id;
782
- input.probeApiIngestResponse.rootCause = `
783
- **Created because the following criteria was met**:
784
-
785
- **Criteria Name**: ${(_c = criteriaInstance.data) === null || _c === void 0 ? void 0 : _c.name}
786
- `;
787
- if (rootCause) {
788
- input.probeApiIngestResponse.rootCause += `
789
- **Filter Conditions Met**: ${rootCause}
790
- `;
791
- }
792
- if (input.dataToProcess.failureCause) {
793
- input.probeApiIngestResponse.rootCause += `
794
- **Cause**: ${input.dataToProcess.failureCause || ""}
795
- `;
796
- }
797
- break;
798
- }
799
- }
800
- return input.probeApiIngestResponse;
801
- }
802
- static async processMonitorCriteiaInstance(input) {
803
- /*
804
- * returns root cause if any. Otherwise criteria is not met.
805
- * process monitor criteria instance here.
806
- */
807
- const rootCause = await MonitorResourceUtil.isMonitorInstanceCriteriaFiltersMet({
808
- dataToProcess: input.dataToProcess,
809
- monitorStep: input.monitorStep,
810
- monitor: input.monitor,
811
- probeApiIngestResponse: input.probeApiIngestResponse,
812
- criteriaInstance: input.criteriaInstance,
485
+ await persistLatestMonitorPayload();
486
+ MonitorLogUtil.saveMonitorLog({
487
+ monitorId: monitor.id,
488
+ projectId: monitor.projectId,
489
+ dataToProcess: dataToProcess,
813
490
  });
814
- // do nothing as there's no criteria to process.
815
- return rootCause;
816
- }
817
- static async isMonitorInstanceCriteriaFiltersMet(input) {
818
- var _a, _b, _c, _d, _e;
819
- // returns root cause if any. Otherwise criteria is not met.
820
- let finalResult = "All filters met. ";
821
- if (FilterCondition.Any === ((_a = input.criteriaInstance.data) === null || _a === void 0 ? void 0 : _a.filterCondition)) {
822
- finalResult = null; // set to false as we need to check if any of the filters are met.
823
- }
824
- for (const criteriaFilter of ((_b = input.criteriaInstance.data) === null || _b === void 0 ? void 0 : _b.filters) || []) {
825
- const rootCause = await MonitorResourceUtil.isMonitorInstanceCriteriaFilterMet({
826
- dataToProcess: input.dataToProcess,
827
- monitorStep: input.monitorStep,
828
- monitor: input.monitor,
829
- probeApiIngestResponse: input.probeApiIngestResponse,
830
- criteriaInstance: input.criteriaInstance,
831
- criteriaFilter: criteriaFilter,
832
- });
833
- const didMeetCriteria = Boolean(rootCause);
834
- if (FilterCondition.Any === ((_c = input.criteriaInstance.data) === null || _c === void 0 ? void 0 : _c.filterCondition) &&
835
- didMeetCriteria === true) {
836
- finalResult = rootCause;
837
- }
838
- if (FilterCondition.All === ((_d = input.criteriaInstance.data) === null || _d === void 0 ? void 0 : _d.filterCondition) &&
839
- didMeetCriteria === false) {
840
- finalResult = null;
841
- break;
842
- }
843
- if (FilterCondition.All === ((_e = input.criteriaInstance.data) === null || _e === void 0 ? void 0 : _e.filterCondition) &&
844
- didMeetCriteria &&
845
- rootCause) {
846
- finalResult += `
847
-
848
- - ${rootCause}`; // in markdown format.
849
- }
850
- }
851
- return finalResult;
852
- }
853
- static async isMonitorInstanceCriteriaFilterMet(input) {
854
- /*
855
- * returns root cause if any. Otherwise criteria is not met.
856
- * process monitor criteria filter here.
857
- */
858
- var _a;
859
- if (input.criteriaFilter.checkOn === CheckOn.JavaScriptExpression) {
860
- let storageMap = {};
861
- if (input.monitor.monitorType === MonitorType.API ||
862
- input.monitor.monitorType === MonitorType.Website) {
863
- // try to parse json
864
- let responseBody = null;
865
- try {
866
- responseBody = JSON.parse(input.dataToProcess
867
- .responseBody || "{}");
868
- }
869
- catch (err) {
870
- logger.error(err);
871
- responseBody = input.dataToProcess
872
- .responseBody;
873
- }
874
- if (typeof responseBody === Typeof.String &&
875
- (responseBody === null || responseBody === void 0 ? void 0 : responseBody.toString()) === "") {
876
- // if empty string then set to empty object.
877
- responseBody = {};
878
- }
879
- storageMap = {
880
- responseBody: responseBody,
881
- responseHeaders: input.dataToProcess
882
- .responseHeaders,
883
- responseStatusCode: input.dataToProcess
884
- .responseCode,
885
- responseTimeInMs: input.dataToProcess
886
- .responseTimeInMs,
887
- isOnline: input.dataToProcess.isOnline,
888
- };
889
- }
890
- if (input.monitor.monitorType === MonitorType.IncomingRequest) {
891
- storageMap = {
892
- requestBody: input.dataToProcess
893
- .requestBody,
894
- requestHeaders: input.dataToProcess
895
- .requestHeaders,
896
- };
897
- }
898
- // now evaluate the expression.
899
- let expression = input.criteriaFilter.value;
900
- expression = VMUtil.replaceValueInPlace(storageMap, expression, false); // now pass this to the VM.
901
- const code = `return Boolean(${expression});`;
902
- let result = null;
903
- try {
904
- result = await VMUtil.runCodeInSandbox({
905
- code: code,
906
- options: {
907
- args: {},
908
- },
909
- });
910
- }
911
- catch (err) {
912
- logger.error(err);
913
- return null;
914
- }
915
- if (result && result.returnValue) {
916
- return `JavaScript Expression - ${expression} - evaluated to true.`;
917
- }
918
- return null; // if true then return null.
919
- }
920
- if (input.monitor.monitorType === MonitorType.API ||
921
- input.monitor.monitorType === MonitorType.Website ||
922
- input.monitor.monitorType === MonitorType.IP ||
923
- input.monitor.monitorType === MonitorType.Ping ||
924
- input.monitor.monitorType === MonitorType.Port) {
925
- const apiRequestCriteriaResult = await APIRequestCriteria.isMonitorInstanceCriteriaFilterMet({
926
- dataToProcess: input.dataToProcess,
927
- criteriaFilter: input.criteriaFilter,
928
- });
929
- if (apiRequestCriteriaResult) {
930
- return apiRequestCriteriaResult;
931
- }
932
- }
933
- if (input.monitor.monitorType === MonitorType.CustomJavaScriptCode &&
934
- input.dataToProcess.customCodeMonitorResponse) {
935
- const criteriaResult = await CustomCodeMonitoringCriteria.isMonitorInstanceCriteriaFilterMet({
936
- monitorResponse: input.dataToProcess
937
- .customCodeMonitorResponse,
938
- criteriaFilter: input.criteriaFilter,
939
- });
940
- if (criteriaResult) {
941
- return criteriaResult;
942
- }
943
- }
944
- if (input.monitor.monitorType === MonitorType.SyntheticMonitor &&
945
- input.dataToProcess.syntheticMonitorResponse) {
946
- const criteriaResult = await SyntheticMonitoringCriteria.isMonitorInstanceCriteriaFilterMet({
947
- monitorResponse: input.dataToProcess
948
- .syntheticMonitorResponse || [],
949
- criteriaFilter: input.criteriaFilter,
950
- });
951
- if (criteriaResult) {
952
- return criteriaResult;
953
- }
954
- }
955
- if (input.monitor.monitorType === MonitorType.IncomingRequest) {
956
- logger.debug(`${(_a = input.monitor.id) === null || _a === void 0 ? void 0 : _a.toString()} - Incoming Request Monitor. Checking criteria filter.`);
957
- //check incoming request
958
- const incomingRequestResult = await IncomingRequestCriteria.isMonitorInstanceCriteriaFilterMet({
959
- dataToProcess: input.dataToProcess,
960
- criteriaFilter: input.criteriaFilter,
961
- });
962
- if (incomingRequestResult) {
963
- return incomingRequestResult;
964
- }
965
- }
966
- if (input.monitor.monitorType === MonitorType.SSLCertificate) {
967
- // check SSL monitor
968
- const sslMonitorResult = await SSLMonitorCriteria.isMonitorInstanceCriteriaFilterMet({
969
- dataToProcess: input.dataToProcess,
970
- criteriaFilter: input.criteriaFilter,
971
- });
972
- if (sslMonitorResult) {
973
- return sslMonitorResult;
974
- }
975
- }
976
- if (input.monitor.monitorType === MonitorType.Server) {
977
- // check server monitor
978
- const serverMonitorResult = await ServerMonitorCriteria.isMonitorInstanceCriteriaFilterMet({
979
- dataToProcess: input.dataToProcess,
980
- criteriaFilter: input.criteriaFilter,
981
- });
982
- if (serverMonitorResult) {
983
- return serverMonitorResult;
984
- }
985
- }
986
- if (input.monitor.monitorType === MonitorType.Logs) {
987
- // check server monitor
988
- const logMonitorResult = await LogMonitorCriteria.isMonitorInstanceCriteriaFilterMet({
989
- dataToProcess: input.dataToProcess,
990
- criteriaFilter: input.criteriaFilter,
991
- });
992
- if (logMonitorResult) {
993
- return logMonitorResult;
994
- }
995
- }
996
- if (input.monitor.monitorType === MonitorType.Metrics) {
997
- // check server monitor
998
- const logMonitorResult = await MetricMonitorCriteria.isMonitorInstanceCriteriaFilterMet({
999
- dataToProcess: input.dataToProcess,
1000
- criteriaFilter: input.criteriaFilter,
1001
- monitorStep: input.monitorStep,
1002
- });
1003
- if (logMonitorResult) {
1004
- return logMonitorResult;
1005
- }
1006
- }
1007
- if (input.monitor.monitorType === MonitorType.Traces) {
1008
- // check server monitor
1009
- const traceMonitorResult = await TraceMonitorCriteria.isMonitorInstanceCriteriaFilterMet({
1010
- dataToProcess: input.dataToProcess,
1011
- criteriaFilter: input.criteriaFilter,
1012
- });
1013
- if (traceMonitorResult) {
1014
- return traceMonitorResult;
1015
- }
1016
- }
1017
- return null;
491
+ return response;
1018
492
  }
1019
493
  }
1020
494
  __decorate([
@@ -1023,10 +497,4 @@ __decorate([
1023
497
  __metadata("design:paramtypes", [Object]),
1024
498
  __metadata("design:returntype", Promise)
1025
499
  ], MonitorResourceUtil, "monitorResource", null);
1026
- __decorate([
1027
- CaptureSpan(),
1028
- __metadata("design:type", Function),
1029
- __metadata("design:paramtypes", [Object]),
1030
- __metadata("design:returntype", Promise)
1031
- ], MonitorResourceUtil, "saveMonitorMetrics", null);
1032
500
  //# sourceMappingURL=MonitorResource.js.map