@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
@@ -0,0 +1,132 @@
1
+ import logger from "../Logger";
2
+ import Typeof from "../../../Types/Typeof";
3
+ export default class MonitorCriteriaMessageFormatter {
4
+ static formatNumber(value, options) {
5
+ if (value === null || value === undefined || isNaN(value)) {
6
+ return null;
7
+ }
8
+ const fractionDigits = (options === null || options === void 0 ? void 0 : options.maximumFractionDigits) !== undefined
9
+ ? options.maximumFractionDigits
10
+ : Math.abs(value) < 10
11
+ ? 2
12
+ : Math.abs(value) < 100
13
+ ? 1
14
+ : 0;
15
+ return value.toFixed(fractionDigits);
16
+ }
17
+ static formatPercentage(value) {
18
+ const formatted = MonitorCriteriaMessageFormatter.formatNumber(value, {
19
+ maximumFractionDigits: value !== null && value !== undefined && Math.abs(value) < 100
20
+ ? 1
21
+ : 0,
22
+ });
23
+ if (!formatted) {
24
+ return null;
25
+ }
26
+ return `${formatted}%`;
27
+ }
28
+ static formatBytes(bytes) {
29
+ if (bytes === null || bytes === undefined || isNaN(bytes)) {
30
+ return null;
31
+ }
32
+ const units = ["B", "KB", "MB", "GB", "TB", "PB"];
33
+ let value = bytes;
34
+ let index = 0;
35
+ while (value >= 1024 && index < units.length - 1) {
36
+ value = value / 1024;
37
+ index++;
38
+ }
39
+ const formatted = MonitorCriteriaMessageFormatter.formatNumber(value, {
40
+ maximumFractionDigits: value >= 100 ? 0 : value >= 10 ? 1 : 2,
41
+ });
42
+ if (!formatted) {
43
+ return null;
44
+ }
45
+ return `${formatted} ${units[index]}`;
46
+ }
47
+ static formatList(items, maxItems = 5) {
48
+ if (!items.length) {
49
+ return "";
50
+ }
51
+ const trimmedItems = items.slice(0, maxItems);
52
+ const suffix = items.length > maxItems ? `, +${items.length - maxItems} more` : "";
53
+ return `${trimmedItems.join(", ")} ${suffix}`.trim();
54
+ }
55
+ static formatSnippet(text, maxLength = 120) {
56
+ const sanitized = text.replace(/\s+/g, " ").trim();
57
+ if (sanitized.length <= maxLength) {
58
+ return sanitized;
59
+ }
60
+ return `${sanitized.slice(0, maxLength)}…`;
61
+ }
62
+ static describeProcesses(processes) {
63
+ if (!processes.length) {
64
+ return null;
65
+ }
66
+ const processSummaries = processes.map((process) => {
67
+ return `${process.name} (pid ${process.pid})`;
68
+ });
69
+ return MonitorCriteriaMessageFormatter.formatList(processSummaries);
70
+ }
71
+ static computeDiskUsagePercent(diskMetric) {
72
+ if (!diskMetric) {
73
+ return null;
74
+ }
75
+ if (diskMetric.percentUsed !== undefined &&
76
+ diskMetric.percentUsed !== null &&
77
+ !isNaN(diskMetric.percentUsed)) {
78
+ return diskMetric.percentUsed;
79
+ }
80
+ if (diskMetric.percentFree !== undefined &&
81
+ diskMetric.percentFree !== null &&
82
+ !isNaN(diskMetric.percentFree)) {
83
+ return 100 - diskMetric.percentFree;
84
+ }
85
+ if (diskMetric.total && diskMetric.used && diskMetric.total > 0) {
86
+ return (diskMetric.used / diskMetric.total) * 100;
87
+ }
88
+ return null;
89
+ }
90
+ static summarizeNumericSeries(values) {
91
+ if (!values.length) {
92
+ return null;
93
+ }
94
+ const latest = values[values.length - 1];
95
+ if (latest === undefined) {
96
+ return null;
97
+ }
98
+ const latestFormatted = MonitorCriteriaMessageFormatter.formatNumber(latest, {
99
+ maximumFractionDigits: 2,
100
+ });
101
+ let summary = `latest ${latestFormatted !== null && latestFormatted !== void 0 ? latestFormatted : latest}`;
102
+ if (values.length > 1) {
103
+ const min = Math.min(...values);
104
+ const max = Math.max(...values);
105
+ const minFormatted = MonitorCriteriaMessageFormatter.formatNumber(min, {
106
+ maximumFractionDigits: 2,
107
+ });
108
+ const maxFormatted = MonitorCriteriaMessageFormatter.formatNumber(max, {
109
+ maximumFractionDigits: 2,
110
+ });
111
+ summary += ` (min ${minFormatted !== null && minFormatted !== void 0 ? minFormatted : min}, max ${maxFormatted !== null && maxFormatted !== void 0 ? maxFormatted : max})`;
112
+ }
113
+ summary += ` across ${values.length} data point${values.length === 1 ? "" : "s"}`;
114
+ return summary;
115
+ }
116
+ static formatResultValue(value) {
117
+ if (value === null || value === undefined) {
118
+ return "undefined";
119
+ }
120
+ if (typeof value === Typeof.Object) {
121
+ try {
122
+ return JSON.stringify(value);
123
+ }
124
+ catch (err) {
125
+ logger.error(err);
126
+ return "[object]";
127
+ }
128
+ }
129
+ return value.toString();
130
+ }
131
+ }
132
+ //# sourceMappingURL=MonitorCriteriaMessageFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MonitorCriteriaMessageFormatter.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorCriteriaMessageFormatter.ts"],"names":[],"mappings":"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"}