@oneuptime/common 8.0.5514 → 8.0.5544

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 (83) 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/UI/Components/Filters/FiltersForm.tsx +4 -1
  33. package/build/dist/Models/DatabaseModels/AcmeChallenge.js +3 -0
  34. package/build/dist/Models/DatabaseModels/AcmeChallenge.js.map +1 -1
  35. package/build/dist/Models/DatabaseModels/Domain.js +6 -1
  36. package/build/dist/Models/DatabaseModels/Domain.js.map +1 -1
  37. package/build/dist/Server/API/AcmeChallengeAPI.js +39 -0
  38. package/build/dist/Server/API/AcmeChallengeAPI.js.map +1 -0
  39. package/build/dist/Server/EnvironmentConfig.js +44 -0
  40. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  41. package/build/dist/Server/Infrastructure/Queue.js +8 -11
  42. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  43. package/build/dist/Server/Infrastructure/QueueWorker.js +2 -6
  44. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  45. package/build/dist/Server/Services/DomainService.js +31 -29
  46. package/build/dist/Server/Services/DomainService.js.map +1 -1
  47. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +2 -1
  48. package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
  49. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +34 -16
  50. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  51. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +12 -12
  52. package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
  53. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +42 -4
  54. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  55. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js +119 -0
  56. package/build/dist/Server/Utils/Monitor/MonitorCriteriaDataExtractor.js.map +1 -0
  57. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +312 -0
  58. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -0
  59. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js +109 -0
  60. package/build/dist/Server/Utils/Monitor/MonitorCriteriaExpectationBuilder.js.map +1 -0
  61. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.js +45 -0
  62. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageBuilder.js.map +1 -0
  63. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.js +132 -0
  64. package/build/dist/Server/Utils/Monitor/MonitorCriteriaMessageFormatter.js.map +1 -0
  65. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js +583 -0
  66. package/build/dist/Server/Utils/Monitor/MonitorCriteriaObservationBuilder.js.map +1 -0
  67. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +42 -4
  68. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  69. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +32 -0
  70. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -0
  71. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +361 -0
  72. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -0
  73. package/build/dist/Server/Utils/Monitor/MonitorResource.js +133 -666
  74. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  75. package/build/dist/Server/Utils/StartServer.js +7 -4
  76. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  77. package/build/dist/Types/Email.js +2 -5
  78. package/build/dist/Types/Email.js.map +1 -1
  79. package/build/dist/Types/Monitor/MonitorEvaluationSummary.js +2 -0
  80. package/build/dist/Types/Monitor/MonitorEvaluationSummary.js.map +1 -0
  81. package/build/dist/UI/Components/Filters/FiltersForm.js +2 -1
  82. package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
  83. 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,37 @@ 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
+ if (!statusId) {
58
+ return null;
59
+ }
60
+ const cacheKey = statusId.toString();
61
+ if (monitorStatusNameCache[cacheKey] !== undefined) {
62
+ return monitorStatusNameCache[cacheKey];
63
+ }
64
+ const monitorStatus = await MonitorStatusService.findOneBy({
65
+ query: {
66
+ _id: statusId,
67
+ },
68
+ select: {
69
+ name: true,
70
+ },
71
+ props: {
72
+ isRoot: true,
73
+ },
74
+ });
75
+ const statusName = (monitorStatus === null || monitorStatus === void 0 ? void 0 : monitorStatus.name) || null;
76
+ monitorStatusNameCache[cacheKey] = statusName;
77
+ return statusName;
78
+ };
113
79
  logger.debug("Processing probe response");
114
80
  logger.debug("Monitor ID: " + dataToProcess.monitorId);
115
81
  logger.debug("Fetching Monitor...");
@@ -196,43 +162,57 @@ export default class MonitorResourceUtil {
196
162
  });
197
163
  }
198
164
  }
199
- if (monitor.monitorType === MonitorType.IncomingRequest &&
165
+ const serverMonitorResponse = monitor.monitorType === MonitorType.Server &&
166
+ dataToProcess.requestReceivedAt
167
+ ? dataToProcess
168
+ : undefined;
169
+ const incomingMonitorRequest = monitor.monitorType === MonitorType.IncomingRequest &&
200
170
  dataToProcess.incomingRequestReceivedAt &&
201
171
  !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
- }
172
+ .onlyCheckForIncomingRequestReceivedAt
173
+ ? dataToProcess
174
+ : undefined;
175
+ let hasPersistedMonitorData = false;
176
+ const persistLatestMonitorPayload = async () => {
177
+ if (hasPersistedMonitorData) {
178
+ return;
179
+ }
180
+ if (serverMonitorResponse) {
181
+ logger.debug(`${dataToProcess.monitorId.toString()} - Server request received at ${serverMonitorResponse.requestReceivedAt}`);
182
+ logger.debug(dataToProcess);
183
+ await MonitorService.updateOneById({
184
+ id: monitor.id,
185
+ data: {
186
+ serverMonitorRequestReceivedAt: serverMonitorResponse.requestReceivedAt,
187
+ serverMonitorResponse,
188
+ },
189
+ props: {
190
+ isRoot: true,
191
+ ignoreHooks: true,
192
+ },
193
+ });
194
+ logger.debug(`${dataToProcess.monitorId.toString()} - Monitor Server Response Updated`);
195
+ }
196
+ if (incomingMonitorRequest) {
197
+ logger.debug(`${dataToProcess.monitorId.toString()} - Incoming request received at ${incomingMonitorRequest.incomingRequestReceivedAt}`);
198
+ await MonitorService.updateOneById({
199
+ id: monitor.id,
200
+ data: {
201
+ incomingRequestMonitorHeartbeatCheckedAt: OneUptimeDate.getCurrentDate(),
202
+ incomingMonitorRequest: JSON.parse(JSON.stringify(incomingMonitorRequest)),
203
+ },
204
+ props: {
205
+ isRoot: true,
206
+ ignoreHooks: true,
207
+ },
208
+ });
209
+ logger.debug(`${dataToProcess.monitorId.toString()} - Monitor Incoming Request Updated`);
210
+ }
211
+ hasPersistedMonitorData = true;
212
+ };
233
213
  logger.debug(`${dataToProcess.monitorId.toString()} - Saving monitor metrics`);
234
214
  try {
235
- await this.saveMonitorMetrics({
215
+ await MonitorMetricUtil.saveMonitorMetrics({
236
216
  monitorId: monitor.id,
237
217
  projectId: monitor.projectId,
238
218
  dataToProcess: dataToProcess,
@@ -249,6 +229,12 @@ export default class MonitorResourceUtil {
249
229
  if (!((_b = monitorSteps.data) === null || _b === void 0 ? void 0 : _b.monitorStepsInstanceArray) ||
250
230
  ((_c = monitorSteps.data) === null || _c === void 0 ? void 0 : _c.monitorStepsInstanceArray.length) === 0) {
251
231
  logger.debug(`${dataToProcess.monitorId.toString()} - No monitoring steps.`);
232
+ await persistLatestMonitorPayload();
233
+ MonitorLogUtil.saveMonitorLog({
234
+ monitorId: monitor.id,
235
+ projectId: monitor.projectId,
236
+ dataToProcess: dataToProcess,
237
+ });
252
238
  return response;
253
239
  }
254
240
  logger.debug(`${dataToProcess.monitorId.toString()} - Auto resolving criteria instances.`);
@@ -310,6 +296,12 @@ export default class MonitorResourceUtil {
310
296
  }
311
297
  if (!monitorStep) {
312
298
  logger.debug("No steps found, ignoring everything.");
299
+ await persistLatestMonitorPayload();
300
+ MonitorLogUtil.saveMonitorLog({
301
+ monitorId: monitor.id,
302
+ projectId: monitor.projectId,
303
+ dataToProcess: dataToProcess,
304
+ });
313
305
  return response;
314
306
  }
315
307
  // now process the monitor step
@@ -324,11 +316,12 @@ export default class MonitorResourceUtil {
324
316
  logger.debug(`Next Monitor Step ID: ${response.nextMonitorStepId}`);
325
317
  // now process probe response monitors
326
318
  logger.debug(`${dataToProcess.monitorId.toString()} - Processing monitor step...`);
327
- response = await MonitorResourceUtil.processMonitorStep({
319
+ response = await MonitorCriteriaEvaluator.processMonitorStep({
328
320
  dataToProcess: dataToProcess,
329
321
  monitorStep: monitorStep,
330
322
  monitor: monitor,
331
323
  probeApiIngestResponse: response,
324
+ evaluationSummary: evaluationSummary,
332
325
  });
333
326
  if (response.criteriaMetId && response.rootCause) {
334
327
  logger.debug(`${dataToProcess.monitorId.toString()} - Criteria met: ${response.criteriaMetId}`);
@@ -366,21 +359,36 @@ export default class MonitorResourceUtil {
366
359
  };
367
360
  logger.debug(`${dataToProcess.monitorId.toString()} - Span query found.`);
368
361
  }
369
- await MonitorStatusTimelineUtil.updateMonitorStatusTimeline({
362
+ const matchedCriteriaInstance = criteriaInstanceMap[response.criteriaMetId];
363
+ const monitorStatusTimelineChange = await MonitorStatusTimelineUtil.updateMonitorStatusTimeline({
370
364
  monitor: monitor,
371
365
  rootCause: response.rootCause,
372
366
  dataToProcess: dataToProcess,
373
- criteriaInstance: criteriaInstanceMap[response.criteriaMetId],
367
+ criteriaInstance: matchedCriteriaInstance,
374
368
  props: {
375
369
  telemetryQuery: telemetryQuery,
376
370
  },
377
371
  });
372
+ if (monitorStatusTimelineChange) {
373
+ const changedStatusName = await getMonitorStatusName(((_o = matchedCriteriaInstance.data) === null || _o === void 0 ? void 0 : _o.monitorStatusId) ||
374
+ monitorStatusTimelineChange.monitorStatusId);
375
+ evaluationSummary.events.push({
376
+ type: "monitor-status-changed",
377
+ title: "Monitor status updated",
378
+ message: changedStatusName
379
+ ? `Monitor status changed to "${changedStatusName}" because criteria "${((_p = matchedCriteriaInstance.data) === null || _p === void 0 ? void 0 : _p.name) || "Unnamed criteria"}" was met.`
380
+ : `Monitor status changed because criteria "${((_q = matchedCriteriaInstance.data) === null || _q === void 0 ? void 0 : _q.name) || "Unnamed criteria"}" was met.`,
381
+ relatedCriteriaId: (_r = matchedCriteriaInstance.data) === null || _r === void 0 ? void 0 : _r.id,
382
+ at: OneUptimeDate.getCurrentDate(),
383
+ });
384
+ }
378
385
  await MonitorIncident.criteriaMetCreateIncidentsAndUpdateMonitorStatus({
379
386
  monitor: monitor,
380
387
  rootCause: response.rootCause,
381
388
  dataToProcess: dataToProcess,
382
389
  autoResolveCriteriaInstanceIdIncidentIdsDictionary,
383
- criteriaInstance: criteriaInstanceMap[response.criteriaMetId],
390
+ criteriaInstance: matchedCriteriaInstance,
391
+ evaluationSummary: evaluationSummary,
384
392
  props: {
385
393
  telemetryQuery: telemetryQuery,
386
394
  },
@@ -391,6 +399,7 @@ export default class MonitorResourceUtil {
391
399
  dataToProcess: dataToProcess,
392
400
  autoResolveCriteriaInstanceIdAlertIdsDictionary,
393
401
  criteriaInstance: criteriaInstanceAlertMap[response.criteriaMetId],
402
+ evaluationSummary: evaluationSummary,
394
403
  props: {
395
404
  telemetryQuery: telemetryQuery,
396
405
  },
@@ -398,7 +407,7 @@ export default class MonitorResourceUtil {
398
407
  }
399
408
  else if (!response.criteriaMetId &&
400
409
  monitorSteps.data.defaultMonitorStatusId &&
401
- ((_o = monitor.currentMonitorStatusId) === null || _o === void 0 ? void 0 : _o.toString()) !==
410
+ ((_s = monitor.currentMonitorStatusId) === null || _s === void 0 ? void 0 : _s.toString()) !==
402
411
  monitorSteps.data.defaultMonitorStatusId.toString()) {
403
412
  logger.debug(`${dataToProcess.monitorId.toString()} - No criteria met. Change to default status.`);
404
413
  await MonitorIncident.checkOpenIncidentsAndCloseIfResolved({
@@ -407,6 +416,7 @@ export default class MonitorResourceUtil {
407
416
  rootCause: "No monitoring criteria met. Change to default status.",
408
417
  criteriaInstance: null, // no criteria met!
409
418
  dataToProcess: dataToProcess,
419
+ evaluationSummary: evaluationSummary,
410
420
  });
411
421
  // get last monitor status timeline.
412
422
  const lastMonitorStatusTimeline = await MonitorStatusTimelineService.findOneBy({
@@ -452,6 +462,15 @@ export default class MonitorResourceUtil {
452
462
  },
453
463
  });
454
464
  logger.debug(`${dataToProcess.monitorId.toString()} - Monitor status updated to default.`);
465
+ const defaultStatusName = await getMonitorStatusName(monitorSteps.data.defaultMonitorStatusId);
466
+ evaluationSummary.events.push({
467
+ type: "monitor-status-changed",
468
+ title: "Monitor status reverted",
469
+ message: defaultStatusName
470
+ ? `Monitor status reverted to "${defaultStatusName}" because no monitoring criteria were met.`
471
+ : "Monitor status reverted to its default state because no monitoring criteria were met.",
472
+ at: OneUptimeDate.getCurrentDate(),
473
+ });
455
474
  }
456
475
  }
457
476
  if (mutex) {
@@ -462,559 +481,13 @@ export default class MonitorResourceUtil {
462
481
  logger.error(err);
463
482
  }
464
483
  }
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,
484
+ await persistLatestMonitorPayload();
485
+ MonitorLogUtil.saveMonitorLog({
486
+ monitorId: monitor.id,
487
+ projectId: monitor.projectId,
488
+ dataToProcess: dataToProcess,
813
489
  });
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;
490
+ return response;
1018
491
  }
1019
492
  }
1020
493
  __decorate([
@@ -1023,10 +496,4 @@ __decorate([
1023
496
  __metadata("design:paramtypes", [Object]),
1024
497
  __metadata("design:returntype", Promise)
1025
498
  ], 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
499
  //# sourceMappingURL=MonitorResource.js.map