@oneuptime/common 10.0.65 → 10.0.67

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 (276) hide show
  1. package/Models/DatabaseModels/DockerHostOwnerTeam.ts +464 -0
  2. package/Models/DatabaseModels/DockerHostOwnerUser.ts +463 -0
  3. package/Models/DatabaseModels/GlobalConfig.ts +56 -0
  4. package/Models/DatabaseModels/Index.ts +28 -0
  5. package/Models/DatabaseModels/KubernetesClusterOwnerTeam.ts +464 -0
  6. package/Models/DatabaseModels/KubernetesClusterOwnerUser.ts +463 -0
  7. package/Models/DatabaseModels/KubernetesResource.ts +548 -0
  8. package/Models/DatabaseModels/MetricPipelineRule.ts +804 -0
  9. package/Models/DatabaseModels/MetricRecordingRule.ts +470 -0
  10. package/Models/DatabaseModels/Monitor.ts +2 -0
  11. package/Models/DatabaseModels/Project.ts +83 -0
  12. package/Models/DatabaseModels/Service.ts +79 -0
  13. package/Models/DatabaseModels/TelegramLog.ts +1025 -0
  14. package/Models/DatabaseModels/TraceDropFilter.ts +508 -0
  15. package/Models/DatabaseModels/TracePipeline.ts +436 -0
  16. package/Models/DatabaseModels/TracePipelineProcessor.ts +454 -0
  17. package/Models/DatabaseModels/TraceRecordingRule.ts +470 -0
  18. package/Models/DatabaseModels/TraceScrubRule.ts +546 -0
  19. package/Models/DatabaseModels/UserNotificationRule.ts +49 -0
  20. package/Models/DatabaseModels/UserNotificationSetting.ts +17 -0
  21. package/Models/DatabaseModels/UserOnCallLogTimeline.ts +48 -0
  22. package/Models/DatabaseModels/UserTelegram.ts +312 -0
  23. package/Server/API/KubernetesResourceAPI.ts +129 -0
  24. package/Server/API/UserTelegramAPI.ts +167 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.ts +399 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.ts +205 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.ts +335 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.ts +29 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.ts +53 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.ts +325 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -1
  32. package/Server/Services/DockerHostOwnerTeamService.ts +10 -0
  33. package/Server/Services/DockerHostOwnerUserService.ts +10 -0
  34. package/Server/Services/Index.ts +6 -0
  35. package/Server/Services/KubernetesClusterOwnerTeamService.ts +10 -0
  36. package/Server/Services/KubernetesClusterOwnerUserService.ts +10 -0
  37. package/Server/Services/KubernetesResourceService.ts +351 -0
  38. package/Server/Services/MetricPipelineRuleService.ts +10 -0
  39. package/Server/Services/MetricRecordingRuleService.ts +10 -0
  40. package/Server/Services/TelegramLogService.ts +15 -0
  41. package/Server/Services/TelegramService.ts +139 -0
  42. package/Server/Services/TraceDropFilterService.ts +10 -0
  43. package/Server/Services/TracePipelineProcessorService.ts +10 -0
  44. package/Server/Services/TracePipelineService.ts +10 -0
  45. package/Server/Services/TraceRecordingRuleService.ts +10 -0
  46. package/Server/Services/TraceScrubRuleService.ts +10 -0
  47. package/Server/Services/UserNotificationRuleService.ts +350 -1
  48. package/Server/Services/UserNotificationSettingService.ts +114 -0
  49. package/Server/Services/UserTelegramService.ts +140 -0
  50. package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +71 -9
  51. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +483 -75
  52. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +379 -6
  53. package/Server/Utils/Monitor/MonitorResource.ts +29 -15
  54. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +29 -16
  55. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +502 -0
  56. package/Tests/Types/Date.test.ts +158 -0
  57. package/Tests/Utils/MetricUnitUtil.test.ts +216 -0
  58. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +269 -0
  59. package/Tests/Utils/Metrics/MetricResultUnitConverter.test.ts +231 -0
  60. package/Tests/Utils/RecordingRuleExpression.test.ts +177 -0
  61. package/Types/Date.ts +12 -3
  62. package/Types/Icon/IconProp.ts +1 -0
  63. package/Types/Kubernetes/KubernetesInventoryExtractor.ts +327 -0
  64. package/Types/Kubernetes/KubernetesObjectParser.ts +1949 -0
  65. package/Types/Metrics/MetricDownsamplingRetentionDays.ts +49 -0
  66. package/Types/Metrics/MetricFormulaConfigData.ts +4 -0
  67. package/Types/Metrics/MetricPipelineRuleFilterCondition.ts +136 -0
  68. package/Types/Metrics/MetricPipelineRuleType.ts +27 -0
  69. package/Types/Metrics/RecordingRuleDefinition.ts +180 -0
  70. package/Types/Monitor/CriteriaFilter.ts +43 -0
  71. package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +70 -0
  72. package/Types/Permission.ts +531 -0
  73. package/Types/Telegram/TelegramMessage.ts +9 -0
  74. package/Types/TelegramStatus.ts +14 -0
  75. package/Types/Trace/TraceAggregationType.ts +17 -0
  76. package/Types/Trace/TraceDropFilterAction.ts +6 -0
  77. package/Types/Trace/TracePipelineProcessorType.ts +56 -0
  78. package/Types/Trace/TraceRecordingRuleDefinition.ts +218 -0
  79. package/Types/Trace/TraceScrubAction.ts +7 -0
  80. package/Types/Trace/TraceScrubField.ts +8 -0
  81. package/Types/Trace/TraceScrubPatternType.ts +10 -0
  82. package/UI/Components/CardSelect/CardSelect.tsx +9 -1
  83. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +6 -10
  84. package/UI/Components/Forms/Fields/FormField.tsx +1 -0
  85. package/UI/Components/Forms/Types/Field.ts +1 -0
  86. package/UI/Components/Icon/Icon.tsx +15 -0
  87. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +57 -0
  88. package/UI/Components/Page/Page.tsx +6 -0
  89. package/Utils/MetricUnitUtil.ts +289 -0
  90. package/Utils/Metrics/MetricFormulaEvaluator.ts +610 -0
  91. package/Utils/Metrics/MetricResultUnitConverter.ts +91 -0
  92. package/Utils/Metrics/RecordingRuleExpression.ts +359 -0
  93. package/Utils/ValueFormatter.ts +137 -13
  94. package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js +480 -0
  95. package/build/dist/Models/DatabaseModels/DockerHostOwnerTeam.js.map +1 -0
  96. package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js +479 -0
  97. package/build/dist/Models/DatabaseModels/DockerHostOwnerUser.js.map +1 -0
  98. package/build/dist/Models/DatabaseModels/GlobalConfig.js +59 -0
  99. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  100. package/build/dist/Models/DatabaseModels/Index.js +28 -0
  101. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  102. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js +480 -0
  103. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerTeam.js.map +1 -0
  104. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js +479 -0
  105. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerUser.js.map +1 -0
  106. package/build/dist/Models/DatabaseModels/KubernetesResource.js +590 -0
  107. package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -0
  108. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js +836 -0
  109. package/build/dist/Models/DatabaseModels/MetricPipelineRule.js.map +1 -0
  110. package/build/dist/Models/DatabaseModels/MetricRecordingRule.js +497 -0
  111. package/build/dist/Models/DatabaseModels/MetricRecordingRule.js.map +1 -0
  112. package/build/dist/Models/DatabaseModels/Monitor.js +2 -0
  113. package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
  114. package/build/dist/Models/DatabaseModels/Project.js +85 -0
  115. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  116. package/build/dist/Models/DatabaseModels/Service.js +79 -0
  117. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  118. package/build/dist/Models/DatabaseModels/TelegramLog.js +1056 -0
  119. package/build/dist/Models/DatabaseModels/TelegramLog.js.map +1 -0
  120. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +536 -0
  121. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -0
  122. package/build/dist/Models/DatabaseModels/TracePipeline.js +462 -0
  123. package/build/dist/Models/DatabaseModels/TracePipeline.js.map +1 -0
  124. package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js +476 -0
  125. package/build/dist/Models/DatabaseModels/TracePipelineProcessor.js.map +1 -0
  126. package/build/dist/Models/DatabaseModels/TraceRecordingRule.js +497 -0
  127. package/build/dist/Models/DatabaseModels/TraceRecordingRule.js.map +1 -0
  128. package/build/dist/Models/DatabaseModels/TraceScrubRule.js +575 -0
  129. package/build/dist/Models/DatabaseModels/TraceScrubRule.js.map +1 -0
  130. package/build/dist/Models/DatabaseModels/UserNotificationRule.js +49 -0
  131. package/build/dist/Models/DatabaseModels/UserNotificationRule.js.map +1 -1
  132. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js +19 -0
  133. package/build/dist/Models/DatabaseModels/UserNotificationSetting.js.map +1 -1
  134. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js +48 -0
  135. package/build/dist/Models/DatabaseModels/UserOnCallLogTimeline.js.map +1 -1
  136. package/build/dist/Models/DatabaseModels/UserTelegram.js +331 -0
  137. package/build/dist/Models/DatabaseModels/UserTelegram.js.map +1 -0
  138. package/build/dist/Server/API/KubernetesResourceAPI.js +98 -0
  139. package/build/dist/Server/API/KubernetesResourceAPI.js.map +1 -0
  140. package/build/dist/Server/API/UserTelegramAPI.js +99 -0
  141. package/build/dist/Server/API/UserTelegramAPI.js.map +1 -0
  142. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js +144 -0
  143. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776504277320-MigrationName.js.map +1 -0
  144. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js +82 -0
  145. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776505976155-AddTracePipelineTables.js.map +1 -0
  146. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js +118 -0
  147. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776509413763-MigrationName.js.map +1 -0
  148. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js +16 -0
  149. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776541018853-MigrationName.js.map +1 -0
  150. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js +24 -0
  151. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776544084793-MigrationName.js.map +1 -0
  152. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.js +116 -0
  153. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1776761171349-MigrationName.js.map +1 -0
  154. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  155. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  156. package/build/dist/Server/Services/DockerHostOwnerTeamService.js +9 -0
  157. package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -0
  158. package/build/dist/Server/Services/DockerHostOwnerUserService.js +9 -0
  159. package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -0
  160. package/build/dist/Server/Services/Index.js +6 -0
  161. package/build/dist/Server/Services/Index.js.map +1 -1
  162. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +9 -0
  163. package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -0
  164. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +9 -0
  165. package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -0
  166. package/build/dist/Server/Services/KubernetesResourceService.js +237 -0
  167. package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -0
  168. package/build/dist/Server/Services/MetricPipelineRuleService.js +9 -0
  169. package/build/dist/Server/Services/MetricPipelineRuleService.js.map +1 -0
  170. package/build/dist/Server/Services/MetricRecordingRuleService.js +9 -0
  171. package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -0
  172. package/build/dist/Server/Services/TelegramLogService.js +13 -0
  173. package/build/dist/Server/Services/TelegramLogService.js.map +1 -0
  174. package/build/dist/Server/Services/TelegramService.js +100 -0
  175. package/build/dist/Server/Services/TelegramService.js.map +1 -0
  176. package/build/dist/Server/Services/TraceDropFilterService.js +9 -0
  177. package/build/dist/Server/Services/TraceDropFilterService.js.map +1 -0
  178. package/build/dist/Server/Services/TracePipelineProcessorService.js +9 -0
  179. package/build/dist/Server/Services/TracePipelineProcessorService.js.map +1 -0
  180. package/build/dist/Server/Services/TracePipelineService.js +9 -0
  181. package/build/dist/Server/Services/TracePipelineService.js.map +1 -0
  182. package/build/dist/Server/Services/TraceRecordingRuleService.js +9 -0
  183. package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -0
  184. package/build/dist/Server/Services/TraceScrubRuleService.js +9 -0
  185. package/build/dist/Server/Services/TraceScrubRuleService.js.map +1 -0
  186. package/build/dist/Server/Services/UserNotificationRuleService.js +272 -21
  187. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  188. package/build/dist/Server/Services/UserNotificationSettingService.js +94 -0
  189. package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
  190. package/build/dist/Server/Services/UserTelegramService.js +133 -0
  191. package/build/dist/Server/Services/UserTelegramService.js.map +1 -0
  192. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +56 -9
  193. package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
  194. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +335 -53
  195. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
  196. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +277 -5
  197. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  198. package/build/dist/Server/Utils/Monitor/MonitorResource.js +25 -12
  199. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  200. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +24 -12
  201. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  202. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +407 -0
  203. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +1 -0
  204. package/build/dist/Tests/Types/Date.test.js +96 -0
  205. package/build/dist/Tests/Types/Date.test.js.map +1 -1
  206. package/build/dist/Tests/Utils/MetricUnitUtil.test.js +159 -0
  207. package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +1 -0
  208. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +224 -0
  209. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +1 -0
  210. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +180 -0
  211. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +1 -0
  212. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +142 -0
  213. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +1 -0
  214. package/build/dist/Types/Date.js +9 -3
  215. package/build/dist/Types/Date.js.map +1 -1
  216. package/build/dist/Types/Icon/IconProp.js +1 -0
  217. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  218. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js +200 -0
  219. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js.map +1 -0
  220. package/build/dist/Types/Kubernetes/KubernetesObjectParser.js +1205 -0
  221. package/build/dist/Types/Kubernetes/KubernetesObjectParser.js.map +1 -0
  222. package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js +32 -0
  223. package/build/dist/Types/Metrics/MetricDownsamplingRetentionDays.js.map +1 -0
  224. package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js +103 -0
  225. package/build/dist/Types/Metrics/MetricPipelineRuleFilterCondition.js.map +1 -0
  226. package/build/dist/Types/Metrics/MetricPipelineRuleType.js +27 -0
  227. package/build/dist/Types/Metrics/MetricPipelineRuleType.js.map +1 -0
  228. package/build/dist/Types/Metrics/RecordingRuleDefinition.js +110 -0
  229. package/build/dist/Types/Metrics/RecordingRuleDefinition.js.map +1 -0
  230. package/build/dist/Types/Monitor/CriteriaFilter.js +22 -0
  231. package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
  232. package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js +2 -0
  233. package/build/dist/Types/Monitor/MetricMonitor/MetricCriteriaContext.js.map +1 -0
  234. package/build/dist/Types/Permission.js +464 -0
  235. package/build/dist/Types/Permission.js.map +1 -1
  236. package/build/dist/Types/Telegram/TelegramMessage.js +2 -0
  237. package/build/dist/Types/Telegram/TelegramMessage.js.map +1 -0
  238. package/build/dist/Types/TelegramStatus.js +15 -0
  239. package/build/dist/Types/TelegramStatus.js.map +1 -0
  240. package/build/dist/Types/Trace/TraceAggregationType.js +18 -0
  241. package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -0
  242. package/build/dist/Types/Trace/TraceDropFilterAction.js +7 -0
  243. package/build/dist/Types/Trace/TraceDropFilterAction.js.map +1 -0
  244. package/build/dist/Types/Trace/TracePipelineProcessorType.js +10 -0
  245. package/build/dist/Types/Trace/TracePipelineProcessorType.js.map +1 -0
  246. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +145 -0
  247. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -0
  248. package/build/dist/Types/Trace/TraceScrubAction.js +8 -0
  249. package/build/dist/Types/Trace/TraceScrubAction.js.map +1 -0
  250. package/build/dist/Types/Trace/TraceScrubField.js +9 -0
  251. package/build/dist/Types/Trace/TraceScrubField.js.map +1 -0
  252. package/build/dist/Types/Trace/TraceScrubPatternType.js +11 -0
  253. package/build/dist/Types/Trace/TraceScrubPatternType.js.map +1 -0
  254. package/build/dist/UI/Components/CardSelect/CardSelect.js +3 -1
  255. package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
  256. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +6 -9
  257. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  258. package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
  259. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  260. package/build/dist/UI/Components/Icon/Icon.js +5 -0
  261. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  262. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +30 -0
  263. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  264. package/build/dist/UI/Components/Page/Page.js +1 -0
  265. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  266. package/build/dist/Utils/MetricUnitUtil.js +232 -0
  267. package/build/dist/Utils/MetricUnitUtil.js.map +1 -0
  268. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +453 -0
  269. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -0
  270. package/build/dist/Utils/Metrics/MetricResultUnitConverter.js +61 -0
  271. package/build/dist/Utils/Metrics/MetricResultUnitConverter.js.map +1 -0
  272. package/build/dist/Utils/Metrics/RecordingRuleExpression.js +298 -0
  273. package/build/dist/Utils/Metrics/RecordingRuleExpression.js.map +1 -0
  274. package/build/dist/Utils/ValueFormatter.js +123 -13
  275. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  276. package/package.json +2 -2
@@ -287,6 +287,8 @@ export default class CompareCriteria {
287
287
  values: data.value,
288
288
  threshold: data.threshold,
289
289
  criteriaFilter: data.criteriaFilter,
290
+ metricDisplayName: data.metricDisplayName,
291
+ unit: data.unit,
290
292
  });
291
293
  }
292
294
  return null;
@@ -302,6 +304,8 @@ export default class CompareCriteria {
302
304
  values: data.value,
303
305
  threshold: data.threshold,
304
306
  criteriaFilter: data.criteriaFilter,
307
+ metricDisplayName: data.metricDisplayName,
308
+ unit: data.unit,
305
309
  });
306
310
  }
307
311
  return null;
@@ -317,6 +321,8 @@ export default class CompareCriteria {
317
321
  values: data.value,
318
322
  threshold: data.threshold,
319
323
  criteriaFilter: data.criteriaFilter,
324
+ metricDisplayName: data.metricDisplayName,
325
+ unit: data.unit,
320
326
  });
321
327
  }
322
328
  return null;
@@ -332,6 +338,8 @@ export default class CompareCriteria {
332
338
  values: data.value,
333
339
  threshold: data.threshold,
334
340
  criteriaFilter: data.criteriaFilter,
341
+ metricDisplayName: data.metricDisplayName,
342
+ unit: data.unit,
335
343
  });
336
344
  }
337
345
  return null;
@@ -347,6 +355,8 @@ export default class CompareCriteria {
347
355
  values: data.value,
348
356
  threshold: data.threshold,
349
357
  criteriaFilter: data.criteriaFilter,
358
+ metricDisplayName: data.metricDisplayName,
359
+ unit: data.unit,
350
360
  });
351
361
  }
352
362
  return null;
@@ -362,6 +372,8 @@ export default class CompareCriteria {
362
372
  values: data.value,
363
373
  threshold: data.threshold,
364
374
  criteriaFilter: data.criteriaFilter,
375
+ metricDisplayName: data.metricDisplayName,
376
+ unit: data.unit,
365
377
  });
366
378
  }
367
379
  return null;
@@ -383,7 +395,15 @@ export default class CompareCriteria {
383
395
  if (evaluationType === EvaluateOverTimeType.AllValues) {
384
396
  message += "All values of";
385
397
  }
386
- message += ` ${data.criteriaFilter.checkOn}`;
398
+ /*
399
+ * Prefer a metric-specific display name over the generic "Metric Value"
400
+ * label when evaluating metric monitors.
401
+ */
402
+ const label = data.metricDisplayName &&
403
+ data.criteriaFilter.checkOn === CheckOn.MetricValue
404
+ ? data.metricDisplayName
405
+ : data.criteriaFilter.checkOn;
406
+ message += ` ${label}`;
387
407
  if (data.criteriaFilter.checkOn === CheckOn.DiskUsagePercent) {
388
408
  const diskPath = ((_c = data.criteriaFilter.serverMonitorOptions) === null || _c === void 0 ? void 0 : _c.diskPath) || "/";
389
409
  message += ` on disk ${diskPath}`;
@@ -392,30 +412,31 @@ export default class CompareCriteria {
392
412
  ((_d = data.criteriaFilter.evaluateOverTimeOptions) === null || _d === void 0 ? void 0 : _d.timeValueInMinutes)) {
393
413
  message += ` over the last ${data.criteriaFilter.evaluateOverTimeOptions.timeValueInMinutes} minutes`;
394
414
  }
415
+ const unitSuffix = data.unit ? ` ${data.unit}` : "";
395
416
  if (data.criteriaFilter.filterType !== FilterType.True &&
396
417
  data.criteriaFilter.filterType !== FilterType.False) {
397
418
  const formattedValues = CompareCriteria.formatCriteriaValues(data.values);
398
- message += ` is ${formattedValues}`;
419
+ message += ` is ${formattedValues}${unitSuffix}`;
399
420
  message += " which is";
400
421
  }
401
422
  switch (data.criteriaFilter.filterType) {
402
423
  case FilterType.GreaterThan:
403
- message += ` greater than ${CompareCriteria.formatSingleValue(data.threshold)}. `;
424
+ message += ` greater than ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
404
425
  break;
405
426
  case FilterType.GreaterThanOrEqualTo:
406
- message += ` greater than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
427
+ message += ` greater than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
407
428
  break;
408
429
  case FilterType.LessThan:
409
- message += ` less than ${CompareCriteria.formatSingleValue(data.threshold)}. `;
430
+ message += ` less than ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
410
431
  break;
411
432
  case FilterType.LessThanOrEqualTo:
412
- message += ` less than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
433
+ message += ` less than or equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
413
434
  break;
414
435
  case FilterType.NotEqualTo:
415
- message += ` not equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
436
+ message += ` not equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
416
437
  break;
417
438
  case FilterType.EqualTo:
418
- message += ` equal to ${CompareCriteria.formatSingleValue(data.threshold)}. `;
439
+ message += ` equal to ${CompareCriteria.formatSingleValue(data.threshold)}${unitSuffix}. `;
419
440
  break;
420
441
  case FilterType.Contains:
421
442
  message += ` contains ${CompareCriteria.formatSingleValue(data.threshold)}. `;
@@ -440,11 +461,37 @@ export default class CompareCriteria {
440
461
  }
441
462
  static formatCriteriaValues(values) {
442
463
  if (Array.isArray(values)) {
443
- return values
464
+ /*
465
+ * For a small number of values, list them verbatim so the message
466
+ * reads naturally ("is 42, 55, 60"). For larger arrays, summarize
467
+ * — dumping 30+ numbers on one line makes the root cause unreadable
468
+ * and the detailed breakdown is shown in the Breaching Samples
469
+ * table below.
470
+ */
471
+ const MAX_INLINE = 5;
472
+ if (values.length <= MAX_INLINE) {
473
+ return values
474
+ .map((value) => {
475
+ return CompareCriteria.formatSingleValue(value);
476
+ })
477
+ .join(", ");
478
+ }
479
+ const numericValues = values.filter((value) => {
480
+ return typeof value === "number" && Number.isFinite(value);
481
+ });
482
+ if (numericValues.length === values.length && numericValues.length > 0) {
483
+ const min = Math.min(...numericValues);
484
+ const max = Math.max(...numericValues);
485
+ return `${numericValues.length} samples between ${CompareCriteria.formatSingleValue(min)} and ${CompareCriteria.formatSingleValue(max)}`;
486
+ }
487
+ // Fall back to a truncated list when not all values are numeric
488
+ const head = values
489
+ .slice(0, MAX_INLINE)
444
490
  .map((value) => {
445
491
  return CompareCriteria.formatSingleValue(value);
446
492
  })
447
493
  .join(", ");
494
+ return `${head}, … (${values.length} values total)`;
448
495
  }
449
496
  return CompareCriteria.formatSingleValue(values);
450
497
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CompareCriteria.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Monitor/Criteria/CompareCriteria.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CompareCriteria.js","sourceRoot":"","sources":["../../../../../../Server/Utils/Monitor/Criteria/CompareCriteria.ts"],"names":[],"mappings":"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"}
@@ -8,80 +8,362 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import CompareCriteria from "./CompareCriteria";
11
- import { CheckOn, EvaluateOverTimeType, } from "../../../../Types/Monitor/CriteriaFilter";
11
+ import { CheckOn, EvaluateOverTimeType, FilterType, NoDataPolicy, } from "../../../../Types/Monitor/CriteriaFilter";
12
12
  import CaptureSpan from "../../Telemetry/CaptureSpan";
13
+ import MetricUnitUtil from "../../../../Utils/MetricUnitUtil";
14
+ import MetricFormulaEvaluator from "../../../../Utils/Metrics/MetricFormulaEvaluator";
13
15
  export default class MetricMonitorCriteria {
14
16
  static async isMonitorInstanceCriteriaFilterMet(input) {
15
17
  // Metric Monitoring Check
16
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
18
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j;
17
19
  if (input.criteriaFilter.metricMonitorOptions &&
18
20
  !input.criteriaFilter.metricMonitorOptions.metricAggregationType) {
19
21
  input.criteriaFilter.metricMonitorOptions.metricAggregationType =
20
22
  EvaluateOverTimeType.AnyValue;
21
23
  }
22
- let threshold = input.criteriaFilter.value;
23
- if (input.criteriaFilter.checkOn === CheckOn.MetricValue) {
24
- threshold = CompareCriteria.convertToNumber(threshold);
25
- const metricAggregaredResult = input.dataToProcess.metricResult || [];
26
- const metricAlias = ((_a = input.criteriaFilter.metricMonitorOptions) === null || _a === void 0 ? void 0 : _a.metricAlias) || "";
27
- // Pick based on the alias, or if there's no alias, pick the first one
28
- let aliasIndex = ((_d = (_c = (_b = input.monitorStep.data) === null || _b === void 0 ? void 0 : _b.metricMonitor) === null || _c === void 0 ? void 0 : _c.metricViewConfig) === null || _d === void 0 ? void 0 : _d.queryConfigs.findIndex((queryConfig) => {
24
+ if (input.criteriaFilter.checkOn !== CheckOn.MetricValue) {
25
+ return null;
26
+ }
27
+ const rawThreshold = CompareCriteria.convertToNumber(input.criteriaFilter.value);
28
+ const metricAlias = ((_a = input.criteriaFilter.metricMonitorOptions) === null || _a === void 0 ? void 0 : _a.metricAlias) || "";
29
+ const metricResponse = input.dataToProcess;
30
+ const metricAggregatedResult = metricResponse.metricResult || [];
31
+ const queryConfigs = ((_d = (_c = (_b = input.monitorStep.data) === null || _b === void 0 ? void 0 : _b.metricMonitor) === null || _c === void 0 ? void 0 : _c.metricViewConfig) === null || _d === void 0 ? void 0 : _d.queryConfigs) ||
32
+ [];
33
+ const formulaConfigs = ((_g = (_f = (_e = input.monitorStep.data) === null || _e === void 0 ? void 0 : _e.metricMonitor) === null || _f === void 0 ? void 0 : _f.metricViewConfig) === null || _g === void 0 ? void 0 : _g.formulaConfigs) ||
34
+ [];
35
+ /*
36
+ * Resolve which query/formula the alias refers to. Use explicit index
37
+ * checks (not `findIndex() || -1`, which incorrectly falls back to -1
38
+ * when the first element matches).
39
+ */
40
+ let matchedQuery = null;
41
+ let matchedFormula = null;
42
+ let aliasIndex = -1;
43
+ if (metricAlias) {
44
+ const qIdx = queryConfigs.findIndex((q) => {
29
45
  var _a;
30
- return ((_a = queryConfig.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) === metricAlias;
31
- })) || -1;
32
- if (aliasIndex < 0) {
33
- // then try to find in formula
34
- let formulaIndex = ((_g = (_f = (_e = input.monitorStep.data) === null || _e === void 0 ? void 0 : _e.metricMonitor) === null || _f === void 0 ? void 0 : _f.metricViewConfig) === null || _g === void 0 ? void 0 : _g.formulaConfigs.findIndex((formulaConfig) => {
46
+ return ((_a = q.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) === metricAlias;
47
+ });
48
+ if (qIdx >= 0) {
49
+ matchedQuery = queryConfigs[qIdx] || null;
50
+ aliasIndex = qIdx;
51
+ }
52
+ else {
53
+ const fIdx = formulaConfigs.findIndex((f) => {
35
54
  var _a;
36
- return (((_a = formulaConfig.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) === metricAlias);
37
- })) || -1;
38
- if (formulaIndex >= 0) {
39
- // add number of queries to the index
40
- formulaIndex =
41
- formulaIndex +
42
- (((_k = (_j = (_h = input.monitorStep.data) === null || _h === void 0 ? void 0 : _h.metricMonitor) === null || _j === void 0 ? void 0 : _j.metricViewConfig) === null || _k === void 0 ? void 0 : _k.queryConfigs.length) || 0);
43
- aliasIndex = formulaIndex;
55
+ return ((_a = f.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) === metricAlias;
56
+ });
57
+ if (fIdx >= 0) {
58
+ matchedFormula = formulaConfigs[fIdx] || null;
59
+ aliasIndex = queryConfigs.length + fIdx;
60
+ }
61
+ }
62
+ }
63
+ /*
64
+ * If no alias was configured or it didn't match anything, fall back to
65
+ * the first aggregated result / query for a best-effort comparison.
66
+ */
67
+ const aggregatedResult = aliasIndex >= 0
68
+ ? metricAggregatedResult[aliasIndex]
69
+ : metricAggregatedResult[0];
70
+ if (!matchedQuery && !matchedFormula && queryConfigs[0]) {
71
+ matchedQuery = queryConfigs[0];
72
+ }
73
+ /*
74
+ * Build the metric context regardless of whether the threshold breaches,
75
+ * so the filter message can still reference the metric if needed.
76
+ */
77
+ const metricContext = MetricMonitorCriteria.buildContext({
78
+ matchedQuery,
79
+ matchedFormula,
80
+ metricAlias,
81
+ criteriaFilter: input.criteriaFilter,
82
+ queryConfigs,
83
+ formulaConfigs,
84
+ });
85
+ input.criteriaFilter.metricCriteriaContext = metricContext;
86
+ if (rawThreshold === null) {
87
+ return null;
88
+ }
89
+ /*
90
+ * Sample values arrive already converted into the query's configured
91
+ * display unit (legendUnit) — the upstream fetch step uses
92
+ * MetricResultUnitConverter to normalize OpenTelemetry's native unit
93
+ * into whatever the user picked. So `sampleUnit` here is that
94
+ * legendUnit, and `thresholdUnit` is what the user typed into the
95
+ * criteria threshold. When they differ we convert sample values from
96
+ * legendUnit → thresholdUnit before comparing, so the alert message
97
+ * reads in the unit the user actually chose for the threshold.
98
+ */
99
+ const sampleUnit = metricContext.unit || undefined;
100
+ const thresholdUnit = ((_h = input.criteriaFilter.metricMonitorOptions) === null || _h === void 0 ? void 0 : _h.thresholdUnit) || sampleUnit;
101
+ const displayUnit = thresholdUnit;
102
+ /*
103
+ * Threshold is entered in thresholdUnit; keep the numeric value as-is
104
+ * for comparison in that same unit.
105
+ */
106
+ const threshold = rawThreshold;
107
+ const convertToDisplayUnit = (value) => {
108
+ if (!sampleUnit || !displayUnit || sampleUnit === displayUnit) {
109
+ return value;
110
+ }
111
+ return MetricUnitUtil.convertToMetricUnit({
112
+ value,
113
+ fromUnit: sampleUnit,
114
+ metricUnit: displayUnit,
115
+ });
116
+ };
117
+ metricContext.unit = displayUnit || null;
118
+ const samples = (aggregatedResult && aggregatedResult.data) || [];
119
+ /*
120
+ * Respect the configured no-data policy. Without this guard, the
121
+ * evaluator silently treats missing data as a value of 0 and can
122
+ * trigger incidents for monitors that simply haven't received data.
123
+ */
124
+ if (samples.length === 0) {
125
+ const policy = ((_j = input.criteriaFilter.metricMonitorOptions) === null || _j === void 0 ? void 0 : _j.onNoDataPolicy) ||
126
+ NoDataPolicy.Ignore;
127
+ if (policy === NoDataPolicy.Ignore) {
128
+ return null;
129
+ }
130
+ if (policy === NoDataPolicy.Trigger) {
131
+ return `No data received for ${metricContext.metricName} in the evaluation window — triggering per no-data policy.`;
132
+ }
133
+ // TreatAsZero: fall through to the comparator with value 0.
134
+ }
135
+ const numbersInDisplayUnit = samples.map((d) => {
136
+ return convertToDisplayUnit(d.value);
137
+ });
138
+ const comparisonMessage = CompareCriteria.compareCriteriaNumbers({
139
+ value: numbersInDisplayUnit.length > 0 ? numbersInDisplayUnit : 0,
140
+ threshold: threshold,
141
+ criteriaFilter: input.criteriaFilter,
142
+ metricDisplayName: metricContext.metricName,
143
+ unit: displayUnit,
144
+ });
145
+ if (!comparisonMessage) {
146
+ return null;
147
+ }
148
+ /*
149
+ * Identify every sample that breached so the root cause can render a
150
+ * timestamp/value table instead of a giant one-line list, and keep a
151
+ * total count so we can say "N of M samples breached". Values are
152
+ * stored in the display unit so they match the comparison message.
153
+ */
154
+ const breachingSamples = [];
155
+ /*
156
+ * For formulas, precompute an index from ISO-timestamp → value for
157
+ * every component series so we can show what `a` and `b` were at
158
+ * the moment the formula breached, without re-walking the arrays
159
+ * inside the per-sample loop.
160
+ */
161
+ const componentValueLookup = matchedFormula
162
+ ? MetricMonitorCriteria.buildComponentValueLookup({
163
+ components: metricContext.components || [],
164
+ queryConfigs,
165
+ formulaConfigs,
166
+ metricAggregatedResult,
167
+ })
168
+ : null;
169
+ for (const sample of samples) {
170
+ const convertedValue = convertToDisplayUnit(sample.value);
171
+ const breaches = MetricMonitorCriteria.sampleBreaches(convertedValue, threshold, input.criteriaFilter.filterType);
172
+ if (breaches) {
173
+ const entry = {
174
+ value: convertedValue,
175
+ timestamp: sample.timestamp,
176
+ attributes: MetricMonitorCriteria.extractLabelAttributes(sample),
177
+ };
178
+ if (componentValueLookup && metricContext.components) {
179
+ entry.componentValues = MetricMonitorCriteria.resolveComponentValues({
180
+ timestamp: sample.timestamp,
181
+ components: metricContext.components,
182
+ lookup: componentValueLookup,
183
+ });
44
184
  }
185
+ breachingSamples.push(entry);
186
+ }
187
+ }
188
+ metricContext.totalSamplesInWindow = samples.length;
189
+ if (breachingSamples.length > 0) {
190
+ metricContext.breachingSample = breachingSamples[0];
191
+ metricContext.breachingSamples = breachingSamples;
192
+ }
193
+ return comparisonMessage;
194
+ }
195
+ static buildComponentValueLookup(input) {
196
+ // Map of alias -> (isoTimestamp -> value)
197
+ const lookup = new Map();
198
+ for (const component of input.components) {
199
+ const queryIdx = input.queryConfigs.findIndex((q) => {
200
+ var _a;
201
+ return ((((_a = q.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) || "").toLowerCase() ===
202
+ component.alias);
203
+ });
204
+ let resultIndex = -1;
205
+ if (queryIdx >= 0) {
206
+ resultIndex = queryIdx;
45
207
  }
46
- const aggregatedResult = metricAggregaredResult &&
47
- metricAggregaredResult.length >= aliasIndex - 1 &&
48
- aliasIndex >= 0
49
- ? metricAggregaredResult[aliasIndex]
50
- : metricAggregaredResult[0] || undefined;
51
- if (metricAlias) {
52
- // find the index of the alias in the dataToProcess.
53
- const indexOfAlias = input.dataToProcess.metricViewConfig.queryConfigs.findIndex((queryConfig) => {
208
+ else {
209
+ const formulaIdx = input.formulaConfigs.findIndex((fc) => {
54
210
  var _a;
55
- return ((_a = queryConfig.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) === metricAlias;
211
+ return ((((_a = fc.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) || "").toLowerCase() ===
212
+ component.alias);
56
213
  });
57
- // now get the aggregated result for that alias
58
- if (indexOfAlias !== -1) {
59
- const aggregatedResultForAlias = metricAggregaredResult[indexOfAlias];
60
- if (aggregatedResultForAlias) {
61
- const numbers = aggregatedResultForAlias.data.map((data) => {
62
- return data.value;
63
- });
64
- return CompareCriteria.compareCriteriaNumbers({
65
- value: numbers && numbers.length > 0 ? numbers : 0,
66
- threshold: threshold,
67
- criteriaFilter: input.criteriaFilter,
68
- });
69
- }
214
+ if (formulaIdx >= 0) {
215
+ resultIndex = input.queryConfigs.length + formulaIdx;
70
216
  }
71
217
  }
72
- // if there's no alias then this is the default case
73
- if (aggregatedResult) {
74
- const numbers = aggregatedResult.data.map((data) => {
75
- return data.value;
218
+ if (resultIndex < 0) {
219
+ continue;
220
+ }
221
+ const series = input.metricAggregatedResult[resultIndex];
222
+ if (!series) {
223
+ continue;
224
+ }
225
+ const timestampMap = new Map();
226
+ for (const row of series.data) {
227
+ const iso = MetricMonitorCriteria.toIsoTimestamp(row.timestamp);
228
+ timestampMap.set(iso, row.value);
229
+ }
230
+ lookup.set(component.alias, timestampMap);
231
+ }
232
+ return lookup;
233
+ }
234
+ static resolveComponentValues(input) {
235
+ const iso = MetricMonitorCriteria.toIsoTimestamp(input.timestamp);
236
+ return input.components.map((component) => {
237
+ const series = input.lookup.get(component.alias);
238
+ const value = series ? series.get(iso) : undefined;
239
+ return {
240
+ alias: component.alias,
241
+ value: typeof value === "number" ? value : null,
242
+ };
243
+ });
244
+ }
245
+ static toIsoTimestamp(value) {
246
+ const date = value instanceof Date ? value : new Date(value);
247
+ return isNaN(date.getTime()) ? String(value) : date.toISOString();
248
+ }
249
+ static sampleBreaches(value, threshold, filterType) {
250
+ switch (filterType) {
251
+ case FilterType.GreaterThan:
252
+ return value > threshold;
253
+ case FilterType.GreaterThanOrEqualTo:
254
+ return value >= threshold;
255
+ case FilterType.LessThan:
256
+ return value < threshold;
257
+ case FilterType.LessThanOrEqualTo:
258
+ return value <= threshold;
259
+ case FilterType.EqualTo:
260
+ return value === threshold;
261
+ case FilterType.NotEqualTo:
262
+ return value !== threshold;
263
+ default:
264
+ return false;
265
+ }
266
+ }
267
+ static extractLabelAttributes(sample) {
268
+ /*
269
+ * AggregatedModel has a string index signature that holds group-by
270
+ * attributes alongside `timestamp` and `value`. Strip the known keys
271
+ * to get the label dictionary.
272
+ */
273
+ const labels = {};
274
+ for (const key of Object.keys(sample)) {
275
+ if (key === "timestamp" || key === "value") {
276
+ continue;
277
+ }
278
+ const v = sample[key];
279
+ if (v === undefined || v === null) {
280
+ continue;
281
+ }
282
+ labels[key] = v;
283
+ }
284
+ return labels;
285
+ }
286
+ static buildContext(input) {
287
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
288
+ const q = input.matchedQuery;
289
+ const f = input.matchedFormula;
290
+ const metricName = ((_b = (_a = q === null || q === void 0 ? void 0 : q.metricQueryData) === null || _a === void 0 ? void 0 : _a.filterData) === null || _b === void 0 ? void 0 : _b.metricName) ||
291
+ ((_c = f === null || f === void 0 ? void 0 : f.metricFormulaData) === null || _c === void 0 ? void 0 : _c.metricFormula) ||
292
+ ((_d = q === null || q === void 0 ? void 0 : q.metricAliasData) === null || _d === void 0 ? void 0 : _d.title) ||
293
+ ((_e = f === null || f === void 0 ? void 0 : f.metricAliasData) === null || _e === void 0 ? void 0 : _e.title) ||
294
+ "Metric";
295
+ const unit = ((_f = q === null || q === void 0 ? void 0 : q.metricAliasData) === null || _f === void 0 ? void 0 : _f.legendUnit) ||
296
+ ((_g = f === null || f === void 0 ? void 0 : f.metricAliasData) === null || _g === void 0 ? void 0 : _g.legendUnit) ||
297
+ null;
298
+ const aggregationType = ((_j = (_h = q === null || q === void 0 ? void 0 : q.metricQueryData) === null || _h === void 0 ? void 0 : _h.filterData) === null || _j === void 0 ? void 0 : _j.aggegationType) || null;
299
+ const filterAttributes = ((_l = (_k = q === null || q === void 0 ? void 0 : q.metricQueryData) === null || _k === void 0 ? void 0 : _k.filterData) === null || _l === void 0 ? void 0 : _l.attributes) ||
300
+ {};
301
+ const groupBy = ((_m = q === null || q === void 0 ? void 0 : q.metricQueryData) === null || _m === void 0 ? void 0 : _m.groupBy)
302
+ ? Object.keys(q.metricQueryData.groupBy)
303
+ : [];
304
+ const components = f
305
+ ? MetricMonitorCriteria.buildFormulaComponents({
306
+ formulaConfig: f,
307
+ queryConfigs: input.queryConfigs,
308
+ formulaConfigs: input.formulaConfigs,
309
+ })
310
+ : undefined;
311
+ return Object.assign({ metricName, alias: input.metricAlias, unit,
312
+ aggregationType, isFormula: Boolean(f), formulaExpression: (_o = f === null || f === void 0 ? void 0 : f.metricFormulaData) === null || _o === void 0 ? void 0 : _o.metricFormula, filterAttributes,
313
+ groupBy, timeWindowMinutes: (_p = input.criteriaFilter.evaluateOverTimeOptions) === null || _p === void 0 ? void 0 : _p.timeValueInMinutes }, (components && components.length > 0 ? { components } : {}));
314
+ }
315
+ /**
316
+ * Resolve the variables the formula references to their source
317
+ * query/formula definitions so the root cause can label each
318
+ * component column with its metric name and native unit.
319
+ */
320
+ static buildFormulaComponents(input) {
321
+ var _a, _b, _c, _d, _e, _f, _g, _h;
322
+ const formula = ((_a = input.formulaConfig.metricFormulaData) === null || _a === void 0 ? void 0 : _a.metricFormula) || "";
323
+ const referenced = MetricFormulaEvaluator.getReferencedVariables(formula);
324
+ const components = [];
325
+ const seen = new Set();
326
+ for (const alias of referenced) {
327
+ const normalizedAlias = alias.toLowerCase();
328
+ if (seen.has(normalizedAlias)) {
329
+ continue;
330
+ }
331
+ seen.add(normalizedAlias);
332
+ const queryMatch = input.queryConfigs.find((q) => {
333
+ var _a;
334
+ return ((((_a = q.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) || "").toLowerCase() ===
335
+ normalizedAlias);
336
+ });
337
+ if (queryMatch) {
338
+ const name = ((_c = (_b = queryMatch.metricQueryData) === null || _b === void 0 ? void 0 : _b.filterData) === null || _c === void 0 ? void 0 : _c.metricName) ||
339
+ ((_d = queryMatch.metricAliasData) === null || _d === void 0 ? void 0 : _d.title) ||
340
+ normalizedAlias;
341
+ components.push({
342
+ alias: normalizedAlias,
343
+ name,
344
+ unit: ((_e = queryMatch.metricAliasData) === null || _e === void 0 ? void 0 : _e.legendUnit) || null,
345
+ isFormula: false,
76
346
  });
77
- return CompareCriteria.compareCriteriaNumbers({
78
- value: numbers && numbers.length > 0 ? numbers : 0,
79
- threshold: threshold,
80
- criteriaFilter: input.criteriaFilter,
347
+ continue;
348
+ }
349
+ const formulaMatch = input.formulaConfigs.find((fc) => {
350
+ var _a;
351
+ return ((((_a = fc.metricAliasData) === null || _a === void 0 ? void 0 : _a.metricVariable) || "").toLowerCase() ===
352
+ normalizedAlias);
353
+ });
354
+ if (formulaMatch) {
355
+ const name = ((_f = formulaMatch.metricAliasData) === null || _f === void 0 ? void 0 : _f.title) ||
356
+ ((_g = formulaMatch.metricFormulaData) === null || _g === void 0 ? void 0 : _g.metricFormula) ||
357
+ normalizedAlias;
358
+ components.push({
359
+ alias: normalizedAlias,
360
+ name,
361
+ unit: ((_h = formulaMatch.metricAliasData) === null || _h === void 0 ? void 0 : _h.legendUnit) || null,
362
+ isFormula: true,
81
363
  });
82
364
  }
83
365
  }
84
- return null;
366
+ return components;
85
367
  }
86
368
  }
87
369
  __decorate([