@oneuptime/common 11.0.1 → 11.0.2

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 (341) hide show
  1. package/Models/DatabaseModels/Alert.ts +110 -0
  2. package/Models/DatabaseModels/CephCluster.ts +964 -0
  3. package/Models/DatabaseModels/CephClusterLabelRule.ts +514 -0
  4. package/Models/DatabaseModels/CephClusterOwnerRule.ts +596 -0
  5. package/Models/DatabaseModels/CephClusterOwnerTeam.ts +487 -0
  6. package/Models/DatabaseModels/CephClusterOwnerUser.ts +486 -0
  7. package/Models/DatabaseModels/CephResource.ts +809 -0
  8. package/Models/DatabaseModels/Host.ts +64 -0
  9. package/Models/DatabaseModels/Incident.ts +110 -0
  10. package/Models/DatabaseModels/Index.ts +24 -0
  11. package/Models/DatabaseModels/ProxmoxCluster.ts +943 -0
  12. package/Models/DatabaseModels/ProxmoxClusterLabelRule.ts +514 -0
  13. package/Models/DatabaseModels/ProxmoxClusterOwnerRule.ts +596 -0
  14. package/Models/DatabaseModels/ProxmoxClusterOwnerTeam.ts +487 -0
  15. package/Models/DatabaseModels/ProxmoxClusterOwnerUser.ts +486 -0
  16. package/Models/DatabaseModels/ProxmoxResource.ts +726 -0
  17. package/Models/DatabaseModels/ScheduledMaintenance.ts +110 -0
  18. package/Server/API/BillingInvoiceAPI.ts +47 -7
  19. package/Server/API/CephResourceAPI.ts +134 -0
  20. package/Server/API/DashboardAPI.ts +46 -0
  21. package/Server/API/ProjectAPI.ts +15 -0
  22. package/Server/API/ProxmoxResourceAPI.ts +132 -0
  23. package/Server/API/ResellerPlanAPI.ts +17 -0
  24. package/Server/Infrastructure/GlobalCache.ts +8 -2
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.ts +163 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.ts +211 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.ts +590 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.ts +64 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
  30. package/Server/Infrastructure/Redis.ts +40 -12
  31. package/Server/Services/AnalyticsDatabaseService.ts +1 -1
  32. package/Server/Services/BillingService.ts +109 -21
  33. package/Server/Services/CephClusterLabelRuleEngineService.ts +200 -0
  34. package/Server/Services/CephClusterLabelRuleService.ts +14 -0
  35. package/Server/Services/CephClusterOwnerRuleEngineService.ts +218 -0
  36. package/Server/Services/CephClusterOwnerRuleService.ts +14 -0
  37. package/Server/Services/CephClusterOwnerTeamService.ts +10 -0
  38. package/Server/Services/CephClusterOwnerUserService.ts +10 -0
  39. package/Server/Services/CephClusterService.ts +401 -0
  40. package/Server/Services/CephResourceService.ts +383 -0
  41. package/Server/Services/CloudResourceService.ts +11 -3
  42. package/Server/Services/DockerHostService.ts +11 -3
  43. package/Server/Services/ExceptionAggregationService.ts +2 -0
  44. package/Server/Services/HostService.ts +11 -3
  45. package/Server/Services/Index.ts +24 -0
  46. package/Server/Services/KubernetesClusterService.ts +11 -3
  47. package/Server/Services/LogAggregationService.ts +2 -0
  48. package/Server/Services/MetricAggregationService.ts +2 -0
  49. package/Server/Services/OpenTelemetryIngestService.ts +36 -0
  50. package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +204 -0
  51. package/Server/Services/ProxmoxClusterLabelRuleService.ts +14 -0
  52. package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +222 -0
  53. package/Server/Services/ProxmoxClusterOwnerRuleService.ts +14 -0
  54. package/Server/Services/ProxmoxClusterOwnerTeamService.ts +10 -0
  55. package/Server/Services/ProxmoxClusterOwnerUserService.ts +10 -0
  56. package/Server/Services/ProxmoxClusterService.ts +382 -0
  57. package/Server/Services/ProxmoxResourceService.ts +404 -0
  58. package/Server/Services/RumApplicationService.ts +11 -3
  59. package/Server/Services/ServerlessFunctionService.ts +11 -3
  60. package/Server/Services/TelemetryUsageBillingService.ts +41 -3
  61. package/Server/Services/TraceAggregationService.ts +2 -0
  62. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +8 -23
  63. package/Server/Utils/Monitor/MonitorAlert.ts +45 -0
  64. package/Server/Utils/Monitor/MonitorClusterContext.ts +129 -0
  65. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +344 -4
  66. package/Server/Utils/Monitor/MonitorIncident.ts +130 -7
  67. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +39 -6
  68. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +3 -1
  69. package/Server/Utils/Monitor/SeriesResourceLabels.ts +33 -0
  70. package/Server/Utils/Profiling.ts +37 -2
  71. package/Server/Utils/Telemetry/EntityRegistry.ts +4 -0
  72. package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +1096 -0
  73. package/Server/Utils/Telemetry/TelemetryEntity.ts +85 -0
  74. package/Server/Utils/Telemetry.ts +8 -19
  75. package/Tests/Server/API/BillingInvoiceAPI.test.ts +194 -0
  76. package/Tests/Server/API/ProjectAPI.test.ts +91 -0
  77. package/Tests/Server/API/ResellerPlanAPI.test.ts +207 -0
  78. package/Tests/Server/Infrastructure/GlobalCache.test.ts +100 -0
  79. package/Tests/Server/Services/BillingService.test.ts +323 -0
  80. package/Tests/Server/Services/CephResourceService.test.ts +264 -0
  81. package/Tests/Server/Services/ProxmoxResourceService.test.ts +326 -0
  82. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +322 -0
  83. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +13 -0
  84. package/Tests/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.test.ts +879 -0
  85. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +196 -0
  86. package/Tests/Types/Monitor/CephAlertTemplates.test.ts +1231 -0
  87. package/Tests/Types/Monitor/ProxmoxAlertTemplates.test.ts +732 -0
  88. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +49 -0
  89. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +423 -0
  90. package/Types/BaseDatabase/AggregationIntervalUtil.ts +74 -0
  91. package/Types/Dashboard/DashboardComponentType.ts +4 -0
  92. package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +2 -0
  93. package/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.ts +15 -0
  94. package/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.ts +14 -0
  95. package/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.ts +17 -0
  96. package/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.ts +16 -0
  97. package/Types/Dashboard/DashboardTemplates.ts +446 -0
  98. package/Types/Icon/IconProp.ts +2 -0
  99. package/Types/Monitor/CephAlertTemplates.ts +1647 -0
  100. package/Types/Monitor/CephMetricCatalog.ts +409 -0
  101. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +44 -0
  102. package/Types/Monitor/MonitorStep.ts +64 -0
  103. package/Types/Monitor/MonitorStepCephMonitor.ts +57 -0
  104. package/Types/Monitor/MonitorStepProxmoxMonitor.ts +81 -0
  105. package/Types/Monitor/MonitorType.ts +29 -1
  106. package/Types/Monitor/ProxmoxAlertTemplates.ts +899 -0
  107. package/Types/Monitor/ProxmoxMetricCatalog.ts +382 -0
  108. package/Types/Permission.ts +464 -0
  109. package/Types/Telemetry/EntityType.ts +11 -0
  110. package/Types/Telemetry/ServiceType.ts +2 -0
  111. package/UI/Components/Icon/Icon.tsx +84 -0
  112. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +9 -5
  113. package/UI/Utils/Telemetry/Telemetry.ts +16 -21
  114. package/UI/Utils/TelemetryService.ts +7 -3
  115. package/Utils/Dashboard/Components/DashboardCephOsdListComponent.ts +63 -0
  116. package/Utils/Dashboard/Components/DashboardCephPoolListComponent.ts +32 -0
  117. package/Utils/Dashboard/Components/DashboardCephResourceListShared.ts +61 -0
  118. package/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.ts +69 -0
  119. package/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.ts +55 -0
  120. package/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.ts +61 -0
  121. package/Utils/Dashboard/Components/Index.ts +28 -0
  122. package/Utils/Telemetry/EntityKey.ts +35 -0
  123. package/Utils/Telemetry/EntityRelationship.ts +6 -0
  124. package/Utils/Telemetry/HeartbeatAvailability.ts +262 -0
  125. package/build/dist/Models/DatabaseModels/Alert.js +108 -0
  126. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  127. package/build/dist/Models/DatabaseModels/CephCluster.js +992 -0
  128. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -0
  129. package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js +522 -0
  130. package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js.map +1 -0
  131. package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js +603 -0
  132. package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js.map +1 -0
  133. package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js +503 -0
  134. package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js.map +1 -0
  135. package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js +502 -0
  136. package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js.map +1 -0
  137. package/build/dist/Models/DatabaseModels/CephResource.js +846 -0
  138. package/build/dist/Models/DatabaseModels/CephResource.js.map +1 -0
  139. package/build/dist/Models/DatabaseModels/Host.js +63 -0
  140. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  141. package/build/dist/Models/DatabaseModels/Incident.js +108 -0
  142. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  143. package/build/dist/Models/DatabaseModels/Index.js +24 -0
  144. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  145. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +967 -0
  146. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -0
  147. package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js +522 -0
  148. package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js.map +1 -0
  149. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js +603 -0
  150. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js.map +1 -0
  151. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js +503 -0
  152. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js.map +1 -0
  153. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js +502 -0
  154. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js.map +1 -0
  155. package/build/dist/Models/DatabaseModels/ProxmoxResource.js +761 -0
  156. package/build/dist/Models/DatabaseModels/ProxmoxResource.js.map +1 -0
  157. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +108 -0
  158. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  159. package/build/dist/Server/API/BillingInvoiceAPI.js +35 -5
  160. package/build/dist/Server/API/BillingInvoiceAPI.js.map +1 -1
  161. package/build/dist/Server/API/CephResourceAPI.js +98 -0
  162. package/build/dist/Server/API/CephResourceAPI.js.map +1 -0
  163. package/build/dist/Server/API/DashboardAPI.js +46 -0
  164. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  165. package/build/dist/Server/API/ProjectAPI.js +11 -0
  166. package/build/dist/Server/API/ProjectAPI.js.map +1 -1
  167. package/build/dist/Server/API/ProxmoxResourceAPI.js +95 -0
  168. package/build/dist/Server/API/ProxmoxResourceAPI.js.map +1 -0
  169. package/build/dist/Server/API/ResellerPlanAPI.js +17 -3
  170. package/build/dist/Server/API/ResellerPlanAPI.js.map +1 -1
  171. package/build/dist/Server/Infrastructure/GlobalCache.js +7 -2
  172. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  173. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.js +76 -0
  174. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.js.map +1 -0
  175. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.js +108 -0
  176. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.js.map +1 -0
  177. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.js +253 -0
  178. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.js.map +1 -0
  179. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.js +43 -0
  180. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.js.map +1 -0
  181. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
  182. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  183. package/build/dist/Server/Infrastructure/Redis.js +31 -8
  184. package/build/dist/Server/Infrastructure/Redis.js.map +1 -1
  185. package/build/dist/Server/Services/AnalyticsDatabaseService.js +1 -1
  186. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  187. package/build/dist/Server/Services/BillingService.js +85 -23
  188. package/build/dist/Server/Services/BillingService.js.map +1 -1
  189. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +166 -0
  190. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -0
  191. package/build/dist/Server/Services/CephClusterLabelRuleService.js +13 -0
  192. package/build/dist/Server/Services/CephClusterLabelRuleService.js.map +1 -0
  193. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +186 -0
  194. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -0
  195. package/build/dist/Server/Services/CephClusterOwnerRuleService.js +13 -0
  196. package/build/dist/Server/Services/CephClusterOwnerRuleService.js.map +1 -0
  197. package/build/dist/Server/Services/CephClusterOwnerTeamService.js +9 -0
  198. package/build/dist/Server/Services/CephClusterOwnerTeamService.js.map +1 -0
  199. package/build/dist/Server/Services/CephClusterOwnerUserService.js +9 -0
  200. package/build/dist/Server/Services/CephClusterOwnerUserService.js.map +1 -0
  201. package/build/dist/Server/Services/CephClusterService.js +353 -0
  202. package/build/dist/Server/Services/CephClusterService.js.map +1 -0
  203. package/build/dist/Server/Services/CephResourceService.js +257 -0
  204. package/build/dist/Server/Services/CephResourceService.js.map +1 -0
  205. package/build/dist/Server/Services/CloudResourceService.js +10 -2
  206. package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
  207. package/build/dist/Server/Services/DockerHostService.js +10 -2
  208. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  209. package/build/dist/Server/Services/ExceptionAggregationService.js +2 -0
  210. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  211. package/build/dist/Server/Services/HostService.js +10 -2
  212. package/build/dist/Server/Services/HostService.js.map +1 -1
  213. package/build/dist/Server/Services/Index.js +24 -0
  214. package/build/dist/Server/Services/Index.js.map +1 -1
  215. package/build/dist/Server/Services/KubernetesClusterService.js +10 -2
  216. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  217. package/build/dist/Server/Services/LogAggregationService.js +2 -0
  218. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  219. package/build/dist/Server/Services/MetricAggregationService.js +2 -0
  220. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  221. package/build/dist/Server/Services/OpenTelemetryIngestService.js +37 -7
  222. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  223. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +166 -0
  224. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -0
  225. package/build/dist/Server/Services/ProxmoxClusterLabelRuleService.js +13 -0
  226. package/build/dist/Server/Services/ProxmoxClusterLabelRuleService.js.map +1 -0
  227. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +186 -0
  228. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -0
  229. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleService.js +13 -0
  230. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleService.js.map +1 -0
  231. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js +9 -0
  232. package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js.map +1 -0
  233. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js +9 -0
  234. package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js.map +1 -0
  235. package/build/dist/Server/Services/ProxmoxClusterService.js +337 -0
  236. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -0
  237. package/build/dist/Server/Services/ProxmoxResourceService.js +285 -0
  238. package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -0
  239. package/build/dist/Server/Services/RumApplicationService.js +10 -2
  240. package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
  241. package/build/dist/Server/Services/ServerlessFunctionService.js +10 -2
  242. package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
  243. package/build/dist/Server/Services/TelemetryUsageBillingService.js +30 -3
  244. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  245. package/build/dist/Server/Services/TraceAggregationService.js +2 -0
  246. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  247. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +8 -25
  248. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  249. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +36 -0
  250. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  251. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +90 -0
  252. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +1 -0
  253. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +228 -4
  254. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  255. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +103 -8
  256. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  257. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +23 -6
  258. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  259. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +3 -1
  260. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  261. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +23 -0
  262. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  263. package/build/dist/Server/Utils/Profiling.js +24 -3
  264. package/build/dist/Server/Utils/Profiling.js.map +1 -1
  265. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +4 -0
  266. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  267. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +854 -0
  268. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -0
  269. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +62 -0
  270. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  271. package/build/dist/Server/Utils/Telemetry.js +8 -10
  272. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  273. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +69 -0
  274. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -0
  275. package/build/dist/Types/Dashboard/DashboardComponentType.js +4 -0
  276. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  277. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +2 -0
  278. package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
  279. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.js +2 -0
  280. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.js.map +1 -0
  281. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.js +2 -0
  282. package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.js.map +1 -0
  283. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.js +2 -0
  284. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.js.map +1 -0
  285. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.js +2 -0
  286. package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.js.map +1 -0
  287. package/build/dist/Types/Dashboard/DashboardTemplates.js +394 -0
  288. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  289. package/build/dist/Types/Icon/IconProp.js +2 -0
  290. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  291. package/build/dist/Types/Monitor/CephAlertTemplates.js +1379 -0
  292. package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -0
  293. package/build/dist/Types/Monitor/CephMetricCatalog.js +353 -0
  294. package/build/dist/Types/Monitor/CephMetricCatalog.js.map +1 -0
  295. package/build/dist/Types/Monitor/MonitorStep.js +46 -0
  296. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  297. package/build/dist/Types/Monitor/MonitorStepCephMonitor.js +34 -0
  298. package/build/dist/Types/Monitor/MonitorStepCephMonitor.js.map +1 -0
  299. package/build/dist/Types/Monitor/MonitorStepProxmoxMonitor.js +36 -0
  300. package/build/dist/Types/Monitor/MonitorStepProxmoxMonitor.js.map +1 -0
  301. package/build/dist/Types/Monitor/MonitorType.js +27 -1
  302. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  303. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +743 -0
  304. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -0
  305. package/build/dist/Types/Monitor/ProxmoxMetricCatalog.js +320 -0
  306. package/build/dist/Types/Monitor/ProxmoxMetricCatalog.js.map +1 -0
  307. package/build/dist/Types/Permission.js +408 -0
  308. package/build/dist/Types/Permission.js.map +1 -1
  309. package/build/dist/Types/Telemetry/EntityType.js +11 -0
  310. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  311. package/build/dist/Types/Telemetry/ServiceType.js +2 -0
  312. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  313. package/build/dist/UI/Components/Icon/Icon.js +33 -0
  314. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  315. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +5 -1
  316. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  317. package/build/dist/UI/Utils/Telemetry/Telemetry.js +11 -10
  318. package/build/dist/UI/Utils/Telemetry/Telemetry.js.map +1 -1
  319. package/build/dist/UI/Utils/TelemetryService.js +5 -2
  320. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  321. package/build/dist/Utils/Dashboard/Components/DashboardCephOsdListComponent.js +50 -0
  322. package/build/dist/Utils/Dashboard/Components/DashboardCephOsdListComponent.js.map +1 -0
  323. package/build/dist/Utils/Dashboard/Components/DashboardCephPoolListComponent.js +27 -0
  324. package/build/dist/Utils/Dashboard/Components/DashboardCephPoolListComponent.js.map +1 -0
  325. package/build/dist/Utils/Dashboard/Components/DashboardCephResourceListShared.js +46 -0
  326. package/build/dist/Utils/Dashboard/Components/DashboardCephResourceListShared.js.map +1 -0
  327. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.js +55 -0
  328. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.js.map +1 -0
  329. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.js +42 -0
  330. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.js.map +1 -0
  331. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.js +46 -0
  332. package/build/dist/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.js.map +1 -0
  333. package/build/dist/Utils/Dashboard/Components/Index.js +16 -0
  334. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  335. package/build/dist/Utils/Telemetry/EntityKey.js +27 -0
  336. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  337. package/build/dist/Utils/Telemetry/EntityRelationship.js +3 -0
  338. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
  339. package/build/dist/Utils/Telemetry/HeartbeatAvailability.js +174 -0
  340. package/build/dist/Utils/Telemetry/HeartbeatAvailability.js.map +1 -0
  341. package/package.json +29 -21
@@ -0,0 +1,27 @@
1
+ import { ObjectType } from "../../../Types/JSON";
2
+ import ObjectID from "../../../Types/ObjectID";
3
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
4
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
5
+ import { getCephCommonArguments } from "./DashboardCephResourceListShared";
6
+ export default class DashboardCephPoolListComponentUtil extends DashboardBaseComponentUtil {
7
+ static getDefaultComponent() {
8
+ return {
9
+ _type: ObjectType.DashboardComponent,
10
+ componentType: DashboardComponentType.CephPoolList,
11
+ widthInDashboardUnits: 6,
12
+ heightInDashboardUnits: 4,
13
+ topInDashboardUnits: 0,
14
+ leftInDashboardUnits: 0,
15
+ componentId: ObjectID.generate(),
16
+ minHeightInDashboardUnits: 3,
17
+ minWidthInDashboardUnits: 6,
18
+ arguments: {
19
+ maxRows: 25,
20
+ },
21
+ };
22
+ }
23
+ static getComponentConfigArguments() {
24
+ return getCephCommonArguments();
25
+ }
26
+ }
27
+ //# sourceMappingURL=DashboardCephPoolListComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardCephPoolListComponent.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/DashboardCephPoolListComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,0BAA0B,MAAM,0BAA0B,CAAC;AAElE,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,MAAM,CAAC,OAAO,OAAO,kCAAmC,SAAQ,0BAA0B;IACjF,MAAM,CAAU,mBAAmB;QACxC,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,kBAAkB;YACpC,aAAa,EAAE,sBAAsB,CAAC,YAAY;YAClD,qBAAqB,EAAE,CAAC;YACxB,sBAAsB,EAAE,CAAC;YACzB,mBAAmB,EAAE,CAAC;YACtB,oBAAoB,EAAE,CAAC;YACvB,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;YAChC,yBAAyB,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC;YAC3B,SAAS,EAAE;gBACT,OAAO,EAAE,EAAE;aACZ;SACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAU,2BAA2B;QAGhD,OAAO,sBAAsB,EAAkC,CAAC;IAClE,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import { ComponentInputType, EntityFilterModelType, } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
2
+ import { getViewModeArgument } from "./DashboardListSharedArgs";
3
+ export const CephDisplaySection = {
4
+ name: "Display Options",
5
+ description: "Configure the widget title and row limit",
6
+ order: 1,
7
+ };
8
+ export const CephFiltersSection = {
9
+ name: "Filters",
10
+ description: "Narrow down which resources are shown",
11
+ order: 2,
12
+ defaultCollapsed: true,
13
+ };
14
+ export function getCephCommonArguments() {
15
+ const args = [];
16
+ args.push({
17
+ name: "Title",
18
+ description: "Header shown above the list",
19
+ required: false,
20
+ type: ComponentInputType.Text,
21
+ id: "title",
22
+ section: CephDisplaySection,
23
+ });
24
+ args.push({
25
+ name: "Max Rows",
26
+ description: "Maximum number of rows to show",
27
+ required: false,
28
+ type: ComponentInputType.Number,
29
+ id: "maxRows",
30
+ placeholder: "25",
31
+ section: CephDisplaySection,
32
+ });
33
+ args.push(getViewModeArgument(CephDisplaySection));
34
+ args.push({
35
+ name: "Clusters",
36
+ description: "Show only resources from the selected Ceph clusters",
37
+ required: false,
38
+ type: ComponentInputType.EntityMultiSelectDropdown,
39
+ id: "cephClusterIds",
40
+ placeholder: "All clusters",
41
+ section: CephFiltersSection,
42
+ entityFilterModelType: EntityFilterModelType.CephCluster,
43
+ });
44
+ return args;
45
+ }
46
+ //# sourceMappingURL=DashboardCephResourceListShared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardCephResourceListShared.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/DashboardCephResourceListShared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gEAAgE,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,0CAA0C;IACvD,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,uCAAuC;IACpD,KAAK,EAAE,CAAC;IACR,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,UAAU,sBAAsB;IAGpC,MAAM,IAAI,GAAgC,EAAE,CAAC;IAE7C,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,kBAAkB,CAAC,IAAI;QAC7B,EAAE,EAAE,OAA+B;QACnC,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,kBAAkB,CAAC,MAAM;QAC/B,EAAE,EAAE,SAAiC;QACrC,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,kBAAkB;KAC5B,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAI,kBAAkB,CAAC,CAAC,CAAC;IAEtD,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,qDAAqD;QAClE,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,kBAAkB,CAAC,yBAAyB;QAClD,EAAE,EAAE,gBAAwC;QAC5C,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,qBAAqB,EAAE,qBAAqB,CAAC,WAAW;KACzD,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { ObjectType } from "../../../Types/JSON";
2
+ import ObjectID from "../../../Types/ObjectID";
3
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
4
+ import { ComponentInputType, } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
5
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
6
+ import { ProxmoxFiltersSection, getProxmoxCommonArguments, } from "./DashboardProxmoxResourceListShared";
7
+ export default class DashboardProxmoxGuestListComponentUtil extends DashboardBaseComponentUtil {
8
+ static getDefaultComponent() {
9
+ return {
10
+ _type: ObjectType.DashboardComponent,
11
+ componentType: DashboardComponentType.ProxmoxGuestList,
12
+ widthInDashboardUnits: 6,
13
+ heightInDashboardUnits: 4,
14
+ topInDashboardUnits: 0,
15
+ leftInDashboardUnits: 0,
16
+ componentId: ObjectID.generate(),
17
+ minHeightInDashboardUnits: 3,
18
+ minWidthInDashboardUnits: 6,
19
+ arguments: {
20
+ maxRows: 25,
21
+ },
22
+ };
23
+ }
24
+ static getComponentConfigArguments() {
25
+ const args = getProxmoxCommonArguments();
26
+ args.push({
27
+ name: "Guest Type",
28
+ description: "Show only QEMU VMs or only LXC containers",
29
+ required: false,
30
+ type: ComponentInputType.Dropdown,
31
+ id: "guestTypeFilter",
32
+ section: ProxmoxFiltersSection,
33
+ dropdownOptions: [
34
+ { label: "All", value: "" },
35
+ { label: "QEMU VMs only", value: "qemu" },
36
+ { label: "LXC containers only", value: "lxc" },
37
+ ],
38
+ });
39
+ args.push({
40
+ name: "Status",
41
+ description: "Quick filter by guest run state",
42
+ required: false,
43
+ type: ComponentInputType.Dropdown,
44
+ id: "statusFilter",
45
+ section: ProxmoxFiltersSection,
46
+ dropdownOptions: [
47
+ { label: "All", value: "" },
48
+ { label: "Running only", value: "running" },
49
+ { label: "Stopped only", value: "stopped" },
50
+ ],
51
+ });
52
+ return args;
53
+ }
54
+ }
55
+ //# sourceMappingURL=DashboardProxmoxGuestListComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardProxmoxGuestListComponent.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,0BAA0B,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,kBAAkB,GACnB,MAAM,gEAAgE,CAAC;AACxE,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AACrF,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,sCAAuC,SAAQ,0BAA0B;IACrF,MAAM,CAAU,mBAAmB;QACxC,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,kBAAkB;YACpC,aAAa,EAAE,sBAAsB,CAAC,gBAAgB;YACtD,qBAAqB,EAAE,CAAC;YACxB,sBAAsB,EAAE,CAAC;YACzB,mBAAmB,EAAE,CAAC;YACtB,oBAAoB,EAAE,CAAC;YACvB,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;YAChC,yBAAyB,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC;YAC3B,SAAS,EAAE;gBACT,OAAO,EAAE,EAAE;aACZ;SACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAU,2BAA2B;QAGhD,MAAM,IAAI,GACR,yBAAyB,EAAsC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,kBAAkB,CAAC,QAAQ;YACjC,EAAE,EAAE,iBAAiB;YACrB,OAAO,EAAE,qBAAqB;YAC9B,eAAe,EAAE;gBACf,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE;gBACzC,EAAE,KAAK,EAAE,qBAAqB,EAAE,KAAK,EAAE,KAAK,EAAE;aAC/C;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,iCAAiC;YAC9C,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,kBAAkB,CAAC,QAAQ;YACjC,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,qBAAqB;YAC9B,eAAe,EAAE;gBACf,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE;gBAC3C,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE;aAC5C;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,42 @@
1
+ import { ObjectType } from "../../../Types/JSON";
2
+ import ObjectID from "../../../Types/ObjectID";
3
+ import DashboardBaseComponentUtil from "./DashboardBaseComponent";
4
+ import { ComponentInputType, } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
5
+ import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
6
+ import { ProxmoxFiltersSection, getProxmoxCommonArguments, } from "./DashboardProxmoxResourceListShared";
7
+ export default class DashboardProxmoxNodeListComponentUtil extends DashboardBaseComponentUtil {
8
+ static getDefaultComponent() {
9
+ return {
10
+ _type: ObjectType.DashboardComponent,
11
+ componentType: DashboardComponentType.ProxmoxNodeList,
12
+ widthInDashboardUnits: 6,
13
+ heightInDashboardUnits: 4,
14
+ topInDashboardUnits: 0,
15
+ leftInDashboardUnits: 0,
16
+ componentId: ObjectID.generate(),
17
+ minHeightInDashboardUnits: 3,
18
+ minWidthInDashboardUnits: 6,
19
+ arguments: {
20
+ maxRows: 25,
21
+ },
22
+ };
23
+ }
24
+ static getComponentConfigArguments() {
25
+ const args = getProxmoxCommonArguments();
26
+ args.push({
27
+ name: "Status",
28
+ description: "Quick filter by node availability",
29
+ required: false,
30
+ type: ComponentInputType.Dropdown,
31
+ id: "statusFilter",
32
+ section: ProxmoxFiltersSection,
33
+ dropdownOptions: [
34
+ { label: "All", value: "" },
35
+ { label: "Online only", value: "online" },
36
+ { label: "Offline only", value: "offline" },
37
+ ],
38
+ });
39
+ return args;
40
+ }
41
+ }
42
+ //# sourceMappingURL=DashboardProxmoxNodeListComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardProxmoxNodeListComponent.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,0BAA0B,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAEL,kBAAkB,GACnB,MAAM,gEAAgE,CAAC;AACxE,OAAO,sBAAsB,MAAM,iDAAiD,CAAC;AACrF,OAAO,EACL,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,sCAAsC,CAAC;AAE9C,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,0BAA0B;IACpF,MAAM,CAAU,mBAAmB;QACxC,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,kBAAkB;YACpC,aAAa,EAAE,sBAAsB,CAAC,eAAe;YACrD,qBAAqB,EAAE,CAAC;YACxB,sBAAsB,EAAE,CAAC;YACzB,mBAAmB,EAAE,CAAC;YACtB,oBAAoB,EAAE,CAAC;YACvB,WAAW,EAAE,QAAQ,CAAC,QAAQ,EAAE;YAChC,yBAAyB,EAAE,CAAC;YAC5B,wBAAwB,EAAE,CAAC;YAC3B,SAAS,EAAE;gBACT,OAAO,EAAE,EAAE;aACZ;SACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAU,2BAA2B;QAGhD,MAAM,IAAI,GACR,yBAAyB,EAAqC,CAAC;QAEjE,IAAI,CAAC,IAAI,CAAC;YACR,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,mCAAmC;YAChD,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,kBAAkB,CAAC,QAAQ;YACjC,EAAE,EAAE,cAAc;YAClB,OAAO,EAAE,qBAAqB;YAC9B,eAAe,EAAE;gBACf,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3B,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACzC,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE;aAC5C;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,46 @@
1
+ import { ComponentInputType, EntityFilterModelType, } from "../../../Types/Dashboard/DashboardComponents/ComponentArgument";
2
+ import { getViewModeArgument } from "./DashboardListSharedArgs";
3
+ export const ProxmoxDisplaySection = {
4
+ name: "Display Options",
5
+ description: "Configure the widget title and row limit",
6
+ order: 1,
7
+ };
8
+ export const ProxmoxFiltersSection = {
9
+ name: "Filters",
10
+ description: "Narrow down which resources are shown",
11
+ order: 2,
12
+ defaultCollapsed: true,
13
+ };
14
+ export function getProxmoxCommonArguments() {
15
+ const args = [];
16
+ args.push({
17
+ name: "Title",
18
+ description: "Header shown above the list",
19
+ required: false,
20
+ type: ComponentInputType.Text,
21
+ id: "title",
22
+ section: ProxmoxDisplaySection,
23
+ });
24
+ args.push({
25
+ name: "Max Rows",
26
+ description: "Maximum number of rows to show",
27
+ required: false,
28
+ type: ComponentInputType.Number,
29
+ id: "maxRows",
30
+ placeholder: "25",
31
+ section: ProxmoxDisplaySection,
32
+ });
33
+ args.push(getViewModeArgument(ProxmoxDisplaySection));
34
+ args.push({
35
+ name: "Clusters",
36
+ description: "Show only resources from the selected Proxmox clusters",
37
+ required: false,
38
+ type: ComponentInputType.EntityMultiSelectDropdown,
39
+ id: "proxmoxClusterIds",
40
+ placeholder: "All clusters",
41
+ section: ProxmoxFiltersSection,
42
+ entityFilterModelType: EntityFilterModelType.ProxmoxCluster,
43
+ });
44
+ return args;
45
+ }
46
+ //# sourceMappingURL=DashboardProxmoxResourceListShared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardProxmoxResourceListShared.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/DashboardProxmoxResourceListShared.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,gEAAgE,CAAC;AAExE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,0CAA0C;IACvD,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAA6B;IAC7D,IAAI,EAAE,SAAS;IACf,WAAW,EAAE,uCAAuC;IACpD,KAAK,EAAE,CAAC;IACR,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,UAAU,yBAAyB;IAGvC,MAAM,IAAI,GAAgC,EAAE,CAAC;IAE7C,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,6BAA6B;QAC1C,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,kBAAkB,CAAC,IAAI;QAC7B,EAAE,EAAE,OAA+B;QACnC,OAAO,EAAE,qBAAqB;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,gCAAgC;QAC7C,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,kBAAkB,CAAC,MAAM;QAC/B,EAAE,EAAE,SAAiC;QACrC,WAAW,EAAE,IAAI;QACjB,OAAO,EAAE,qBAAqB;KAC/B,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAI,qBAAqB,CAAC,CAAC,CAAC;IAEzD,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,wDAAwD;QACrE,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,kBAAkB,CAAC,yBAAyB;QAClD,EAAE,EAAE,mBAA2C;QAC/C,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,qBAAqB;QAC9B,qBAAqB,EAAE,qBAAqB,CAAC,cAAc;KAC5D,CAAC,CAAC;IAEH,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import DashboardComponentType from "../../../Types/Dashboard/DashboardComponentType";
2
2
  import BadDataException from "../../../Types/Exception/BadDataException";
3
3
  import DashboardAlertListComponentUtil from "./DashboardAlertListComponent";
4
+ import DashboardCephOsdListComponentUtil from "./DashboardCephOsdListComponent";
5
+ import DashboardCephPoolListComponentUtil from "./DashboardCephPoolListComponent";
4
6
  import DashboardChartComponentUtil from "./DashboardChartComponent";
5
7
  import DashboardDockerContainerListComponentUtil from "./DashboardDockerContainerListComponent";
6
8
  import DashboardDockerHostListComponentUtil from "./DashboardDockerHostListComponent";
@@ -20,6 +22,8 @@ import DashboardKubernetesPodListComponentUtil from "./DashboardKubernetesPodLis
20
22
  import DashboardKubernetesStatefulSetListComponentUtil from "./DashboardKubernetesStatefulSetListComponent";
21
23
  import DashboardLogStreamComponentUtil from "./DashboardLogStreamComponent";
22
24
  import DashboardMonitorListComponentUtil from "./DashboardMonitorListComponent";
25
+ import DashboardProxmoxGuestListComponentUtil from "./DashboardProxmoxGuestListComponent";
26
+ import DashboardProxmoxNodeListComponentUtil from "./DashboardProxmoxNodeListComponent";
23
27
  import DashboardTableComponentUtil from "./DashboardTableComponent";
24
28
  import DashboardTextComponentUtil from "./DashboardTextComponent";
25
29
  import DashboardTraceChartComponentUtil from "./DashboardTraceChartComponent";
@@ -103,6 +107,18 @@ export default class DashboardComponentsUtil {
103
107
  if (dashboardComponentType === DashboardComponentType.HostList) {
104
108
  return DashboardHostListComponentUtil.getComponentConfigArguments();
105
109
  }
110
+ if (dashboardComponentType === DashboardComponentType.ProxmoxNodeList) {
111
+ return DashboardProxmoxNodeListComponentUtil.getComponentConfigArguments();
112
+ }
113
+ if (dashboardComponentType === DashboardComponentType.ProxmoxGuestList) {
114
+ return DashboardProxmoxGuestListComponentUtil.getComponentConfigArguments();
115
+ }
116
+ if (dashboardComponentType === DashboardComponentType.CephOsdList) {
117
+ return DashboardCephOsdListComponentUtil.getComponentConfigArguments();
118
+ }
119
+ if (dashboardComponentType === DashboardComponentType.CephPoolList) {
120
+ return DashboardCephPoolListComponentUtil.getComponentConfigArguments();
121
+ }
106
122
  throw new BadDataException(`Unknown dashboard component type: ${dashboardComponentType}`);
107
123
  }
108
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/Index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../Utils/Dashboard/Components/Index.ts"],"names":[],"mappings":"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"}
@@ -112,4 +112,31 @@ export function keyForKubernetesCluster(projectId, clusterIdentifier) {
112
112
  identifyingAttributes: { "k8s.cluster.name": clusterIdentifier },
113
113
  });
114
114
  }
115
+ /**
116
+ * `proxmox.cluster.name` is the cluster identity (matches the ProxmoxCluster
117
+ * row's `name`, the project-unique join key written by
118
+ * `findOrCreateByName`; the ingest resolver is name-only — see
119
+ * `TelemetryEntity.proxmoxClusterIdentity`). Pass `ProxmoxCluster.name`.
120
+ */
121
+ export function keyForProxmoxCluster(projectId, clusterName) {
122
+ return computeEntityKey({
123
+ projectId,
124
+ entityType: EntityType.ProxmoxCluster,
125
+ identifyingAttributes: { "proxmox.cluster.name": clusterName },
126
+ });
127
+ }
128
+ /**
129
+ * `ceph.cluster.name` is the cluster identity (matches the CephCluster
130
+ * row's `name`, the project-unique join key written by
131
+ * `findOrCreateByName`; the ingest resolver is name-only —
132
+ * `ceph.cluster.fsid` is descriptive, never identity). Pass
133
+ * `CephCluster.name`.
134
+ */
135
+ export function keyForCephCluster(projectId, clusterName) {
136
+ return computeEntityKey({
137
+ projectId,
138
+ entityType: EntityType.CephCluster,
139
+ identifyingAttributes: { "ceph.cluster.name": clusterName },
140
+ });
141
+ }
115
142
  //# sourceMappingURL=EntityKey.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EntityKey.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/EntityKey.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,WAAW,CAAC;AAE/B,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAE1D;;;;;;;;;;;;GAYG;AAEH,2DAA2D;AAC3D,MAAM,UAAU,uBAAuB,CAAC,KAAyB;IAC/D,OAAO,MAAM,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SAC9D,IAAI,EAAE;SACN,WAAW,EAAE,CAAC;AACnB,CAAC;AAID,IAAI,iBAAiB,GAAsB,CAAC,KAAa,EAAU,EAAE;IACnE,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAA2B;IAC3D,iBAAiB,GAAG,QAAQ,CAAC;AAC/B,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,mBAAmB,CAAC,KAAa;IACxC,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAIhC;IACC,MAAM,IAAI,GAAkB,MAAM,CAAC,IAAI,CACrC,IAAI,CAAC,qBAAqB,IAAI,EAAE,CACjC,CAAC,IAAI,EAAE,CAAC;IAET,MAAM,KAAK,GAAkB,EAAE,CAAC;IAChC,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CACR,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAChD,uBAAuB,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC,CACzD,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAW,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,IAAI,CACzE,GAAG,CACJ,EAAE,CAAC;IAEJ,OAAO,iBAAiB,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AAEH;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,SAAiB,EAAE,cAAsB;IAClE,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,IAAI;QAC3B,qBAAqB,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE;KACvD,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAC3B,SAAiB,EACjB,WAAmB,EACnB,gBAAqC;IAErC,MAAM,qBAAqB,GAAuB;QAChD,cAAc,EAAE,WAAW;KAC5B,CAAC;IAEF;;;OAGG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,qBAAqB,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;IAChE,CAAC;IAED,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,OAAO;QAC9B,qBAAqB;KACtB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAiB,EACjB,iBAAyB;IAEzB,OAAO,gBAAgB,CAAC;QACtB,SAAS;QACT,UAAU,EAAE,UAAU,CAAC,iBAAiB;QACxC,qBAAqB,EAAE,EAAE,kBAAkB,EAAE,iBAAiB,EAAE;KACjE,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"EntityKey.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/EntityKey.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,9 @@ const RULES = {
28
28
  [`${EntityType.KubernetesNamespace}|${EntityType.KubernetesCluster}`]: EntityRelationshipType.MemberOf,
29
29
  [`${EntityType.KubernetesDeployment}|${EntityType.KubernetesNamespace}`]: EntityRelationshipType.MemberOf,
30
30
  [`${EntityType.KubernetesDeployment}|${EntityType.KubernetesCluster}`]: EntityRelationshipType.MemberOf,
31
+ [`${EntityType.ProxmoxNode}|${EntityType.ProxmoxCluster}`]: EntityRelationshipType.MemberOf,
32
+ [`${EntityType.ProxmoxGuest}|${EntityType.ProxmoxNode}`]: EntityRelationshipType.RunsOn,
33
+ [`${EntityType.ProxmoxGuest}|${EntityType.ProxmoxCluster}`]: EntityRelationshipType.MemberOf,
31
34
  };
32
35
  /** The relationship `fromType` → `toType` implies, or null if none. */
33
36
  export function inferRelationshipType(fromType, toType) {
@@ -1 +1 @@
1
- {"version":3,"file":"EntityRelationship.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/EntityRelationship.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EntityRelationship.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/EntityRelationship.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ import AggregationIntervalUtil from "../../Types/BaseDatabase/AggregationIntervalUtil";
2
+ /*
3
+ * How long after a bucket closes we keep treating silence in it as
4
+ * "not evaluable yet" rather than "down". Covers collector export
5
+ * jitter + transport + ingest-queue wait for a heartbeat stamped near
6
+ * the end of the bucket.
7
+ *
8
+ * Worst-case downtime-onset-to-report on the Minute grid is the sum
9
+ * of: up to one bucket of in-bucket residual (outage right after a
10
+ * beat at a bucket start), one bucket to close, this lag buffer, and
11
+ * one more bucket for the bridge's right-neighbor witness to turn
12
+ * down — ~4 minutes total. The old behavior (report instantly, flap
13
+ * constantly on every refresh) was not worth those minutes.
14
+ */
15
+ export const HEARTBEAT_INGEST_LAG_MS = 60000;
16
+ /*
17
+ * Upper bound on how far the ingest pipeline may backdate a heartbeat
18
+ * from the ingest wall clock when trusting the batch's own scrape
19
+ * timestamps (see the heartbeat stamping in OtelMetricsIngestService,
20
+ * which imports this). The invariant that keeps a floored heartbeat
21
+ * rendering as UP here: this bound must stay <= one Minute bucket
22
+ * (60s, where the floored stamp lands and proves the bucket up)
23
+ * + HEARTBEAT_INGEST_LAG_MS (the unevaluable shadow) — with the
24
+ * single transitional bucket in between rescued by the Minute-grid
25
+ * bridge. Raise it past that and behind-skewed host clocks get a
26
+ * permanent false "down" tail at the chart's right edge.
27
+ */
28
+ export const HEARTBEAT_MAX_BACKDATE_MS = 2 * 60000;
29
+ export class HeartbeatAvailabilityUtil {
30
+ static buildAvailabilitySeries(data) {
31
+ const windowStartMs = data.windowStart.getTime();
32
+ const windowEndMs = data.windowEnd.getTime();
33
+ const nowMs = data.now.getTime();
34
+ if (!Number.isFinite(windowStartMs) ||
35
+ !Number.isFinite(windowEndMs) ||
36
+ windowEndMs <= windowStartMs) {
37
+ return { points: [], uptimePercent: null };
38
+ }
39
+ const interval = AggregationIntervalUtil.getAggregationIntervalForWindow({
40
+ startDate: data.windowStart,
41
+ endDate: data.windowEnd,
42
+ });
43
+ const bucketMs = AggregationIntervalUtil.getAggregationIntervalMs(interval);
44
+ const rowTimestamps = [];
45
+ for (const p of data.heartbeatData) {
46
+ const t = this.getBucketTimestamp(p);
47
+ const c = Number(p["value"]);
48
+ if (Number.isFinite(t) && Number.isFinite(c) && c > 0) {
49
+ rowTimestamps.push(t);
50
+ }
51
+ }
52
+ rowTimestamps.sort((a, b) => {
53
+ return a - b;
54
+ });
55
+ /*
56
+ * Anchor the grid to the first returned row rather than to the
57
+ * window start: server buckets are `toStartOfInterval`-aligned and
58
+ * the window start generally isn't, and anchoring to real data
59
+ * also absorbs any constant offset introduced by timestamp
60
+ * serialization. With no rows at all, anchor to the window start —
61
+ * everything is down regardless of alignment.
62
+ */
63
+ const anchorMs = rowTimestamps.length > 0 ? rowTimestamps[0] : windowStartMs;
64
+ const stepsBack = Math.ceil((anchorMs - windowStartMs) / bucketMs);
65
+ const gridStartMs = anchorMs - stepsBack * bucketMs;
66
+ const lastIndex = Math.floor((windowEndMs - gridStartMs) / bucketMs);
67
+ /*
68
+ * Snap each row to its nearest grid slot instead of requiring
69
+ * exact equality. Minute/hour buckets land exactly; day buckets
70
+ * can drift by an hour against a fixed 24h step when timestamps
71
+ * cross a DST boundary in the rendering timezone, and Month/Year
72
+ * widths are calendar-approximate — nearest-slot matching with a
73
+ * half-bucket tolerance absorbs all of those without ever mapping
74
+ * one row to two slots.
75
+ */
76
+ const presentSlots = new Set();
77
+ for (const t of rowTimestamps) {
78
+ const index = Math.round((t - gridStartMs) / bucketMs);
79
+ if (index >= 0 && index <= lastIndex) {
80
+ presentSlots.add(index);
81
+ }
82
+ }
83
+ /*
84
+ * A bucket is only evaluable as DOWN once it has fully closed and
85
+ * the ingest-lag buffer has passed. Buckets are also partial when
86
+ * they start before the window does (leading edge of the grid).
87
+ */
88
+ const evaluableEndMs = Math.min(windowEndMs, nowMs - HEARTBEAT_INGEST_LAG_MS);
89
+ const states = [];
90
+ for (let index = 0; index <= lastIndex; index++) {
91
+ const startMs = gridStartMs + index * bucketMs;
92
+ const up = presentSlots.has(index);
93
+ const isPartial = startMs < windowStartMs || startMs + bucketMs > evaluableEndMs;
94
+ if (up) {
95
+ states.push("up");
96
+ }
97
+ else if (isPartial) {
98
+ states.push("excluded");
99
+ }
100
+ else {
101
+ states.push("down");
102
+ }
103
+ }
104
+ /*
105
+ * Bridge single-bucket gaps — but only on the Minute grid. The
106
+ * hysteresis is justified by one missed 30-60s heartbeat emptying
107
+ * a 60s bucket; at Hour+ widths an empty bucket is dozens of
108
+ * consecutive missed beats — a real outage — and bridging it
109
+ * would erase up to a full bucket of genuine downtime from both
110
+ * the chart and the uptime %.
111
+ *
112
+ * Neighbor checks run in grid-index space against the ORIGINAL
113
+ * states (no chaining): a down slot bridges when both grid
114
+ * neighbors show no downtime AND at least one of them is a real
115
+ * up — an excluded or out-of-grid neighbor is unknown, not
116
+ * evidence of life, so it counts as a wildcard but never as the
117
+ * sole witness. This covers the window edges regardless of
118
+ * whether the window happens to align with a bucket boundary: a
119
+ * jitter miss in the first or last evaluable bucket bridges off
120
+ * its single up neighbor instead of rendering a one-refresh
121
+ * false-down flap.
122
+ */
123
+ const allowBridge = bucketMs <= 2 * 60000;
124
+ const isBridged = (index) => {
125
+ if (!allowBridge) {
126
+ return false;
127
+ }
128
+ const left = states[index - 1];
129
+ const right = states[index + 1];
130
+ const leftOk = left !== "down";
131
+ const rightOk = right !== "down";
132
+ return leftOk && rightOk && (left === "up" || right === "up");
133
+ };
134
+ const points = [];
135
+ let upCount = 0;
136
+ let evaluatedCount = 0;
137
+ for (let index = 0; index <= lastIndex; index++) {
138
+ const state = states[index];
139
+ if (state === "excluded") {
140
+ continue;
141
+ }
142
+ const up = state === "up" || isBridged(index);
143
+ points.push({
144
+ x: new Date(gridStartMs + index * bucketMs),
145
+ y: up ? 100 : 0,
146
+ });
147
+ evaluatedCount++;
148
+ if (up) {
149
+ upCount++;
150
+ }
151
+ }
152
+ return {
153
+ points,
154
+ uptimePercent: evaluatedCount > 0 ? (upCount / evaluatedCount) * 100 : null,
155
+ };
156
+ }
157
+ /*
158
+ * AggregatedModel exposes the bucket timestamp on `timestamp`, but
159
+ * the MV statement path aliases its time column to `time` — read
160
+ * whichever is present so rows are never silently dropped.
161
+ */
162
+ static getBucketTimestamp(p) {
163
+ const raw = p["timestamp"] !== undefined ? p["timestamp"] : p["time"];
164
+ if (raw instanceof Date) {
165
+ return raw.getTime();
166
+ }
167
+ if (typeof raw === "string" || typeof raw === "number") {
168
+ return new Date(raw).getTime();
169
+ }
170
+ return NaN;
171
+ }
172
+ }
173
+ export default HeartbeatAvailabilityUtil;
174
+ //# sourceMappingURL=HeartbeatAvailability.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeartbeatAvailability.js","sourceRoot":"","sources":["../../../../Utils/Telemetry/HeartbeatAvailability.ts"],"names":[],"mappings":"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"}