@oneuptime/common 11.0.1 → 11.0.3
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.
- package/Models/DatabaseModels/Alert.ts +276 -0
- package/Models/DatabaseModels/AlertLabelRule.ts +38 -0
- package/Models/DatabaseModels/AlertOwnerRule.ts +38 -0
- package/Models/DatabaseModels/CephCluster.ts +964 -0
- package/Models/DatabaseModels/CephClusterLabelRule.ts +514 -0
- package/Models/DatabaseModels/CephClusterOwnerRule.ts +596 -0
- package/Models/DatabaseModels/CephClusterOwnerTeam.ts +487 -0
- package/Models/DatabaseModels/CephClusterOwnerUser.ts +486 -0
- package/Models/DatabaseModels/CephResource.ts +809 -0
- package/Models/DatabaseModels/DockerSwarmCluster.ts +989 -0
- package/Models/DatabaseModels/DockerSwarmClusterLabelRule.ts +514 -0
- package/Models/DatabaseModels/DockerSwarmClusterOwnerRule.ts +596 -0
- package/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.ts +487 -0
- package/Models/DatabaseModels/DockerSwarmClusterOwnerUser.ts +486 -0
- package/Models/DatabaseModels/DockerSwarmResource.ts +750 -0
- package/Models/DatabaseModels/Host.ts +64 -0
- package/Models/DatabaseModels/Incident.ts +276 -0
- package/Models/DatabaseModels/IncidentLabelRule.ts +38 -0
- package/Models/DatabaseModels/IncidentOwnerRule.ts +38 -0
- package/Models/DatabaseModels/IncidentTemplate.ts +56 -0
- package/Models/DatabaseModels/Index.ts +48 -0
- package/Models/DatabaseModels/PodmanHost.ts +859 -0
- package/Models/DatabaseModels/PodmanHostLabelRule.ts +514 -0
- package/Models/DatabaseModels/PodmanHostOwnerRule.ts +596 -0
- package/Models/DatabaseModels/PodmanHostOwnerTeam.ts +487 -0
- package/Models/DatabaseModels/PodmanHostOwnerUser.ts +486 -0
- package/Models/DatabaseModels/PodmanResource.ts +498 -0
- package/Models/DatabaseModels/ProxmoxCluster.ts +943 -0
- package/Models/DatabaseModels/ProxmoxClusterLabelRule.ts +514 -0
- package/Models/DatabaseModels/ProxmoxClusterOwnerRule.ts +596 -0
- package/Models/DatabaseModels/ProxmoxClusterOwnerTeam.ts +487 -0
- package/Models/DatabaseModels/ProxmoxClusterOwnerUser.ts +486 -0
- package/Models/DatabaseModels/ProxmoxResource.ts +726 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +220 -0
- package/Models/DatabaseModels/ScheduledMaintenanceLabelRule.ts +38 -0
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.ts +38 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +56 -0
- package/Models/DatabaseModels/TelemetryException.ts +2 -0
- package/Server/API/BillingInvoiceAPI.ts +47 -7
- package/Server/API/CephResourceAPI.ts +134 -0
- package/Server/API/DashboardAPI.ts +135 -0
- package/Server/API/DockerSwarmResourceAPI.ts +137 -0
- package/Server/API/ProjectAPI.ts +15 -0
- package/Server/API/ProxmoxResourceAPI.ts +132 -0
- package/Server/API/ResellerPlanAPI.ts +17 -0
- package/Server/API/TelemetryAPI.ts +8 -1
- package/Server/Infrastructure/GlobalCache.ts +8 -2
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.ts +163 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.ts +3199 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.ts +211 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.ts +590 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.ts +64 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Infrastructure/Redis.ts +40 -12
- package/Server/Services/AlertLabelRuleEngineService.ts +29 -0
- package/Server/Services/AlertOwnerRuleEngineService.ts +67 -0
- package/Server/Services/AnalyticsDatabaseService.ts +1 -1
- package/Server/Services/BillingService.ts +109 -21
- package/Server/Services/CephClusterLabelRuleEngineService.ts +200 -0
- package/Server/Services/CephClusterLabelRuleService.ts +14 -0
- package/Server/Services/CephClusterOwnerRuleEngineService.ts +218 -0
- package/Server/Services/CephClusterOwnerRuleService.ts +14 -0
- package/Server/Services/CephClusterOwnerTeamService.ts +10 -0
- package/Server/Services/CephClusterOwnerUserService.ts +10 -0
- package/Server/Services/CephClusterService.ts +401 -0
- package/Server/Services/CephResourceService.ts +383 -0
- package/Server/Services/CloudResourceService.ts +11 -3
- package/Server/Services/DockerHostService.ts +11 -3
- package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +214 -0
- package/Server/Services/DockerSwarmClusterLabelRuleService.ts +14 -0
- package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +232 -0
- package/Server/Services/DockerSwarmClusterOwnerRuleService.ts +14 -0
- package/Server/Services/DockerSwarmClusterOwnerTeamService.ts +10 -0
- package/Server/Services/DockerSwarmClusterOwnerUserService.ts +10 -0
- package/Server/Services/DockerSwarmClusterService.ts +404 -0
- package/Server/Services/DockerSwarmResourceService.ts +381 -0
- package/Server/Services/ExceptionAggregationService.ts +3 -0
- package/Server/Services/HostService.ts +11 -3
- package/Server/Services/IncidentLabelRuleEngineService.ts +27 -0
- package/Server/Services/IncidentOwnerRuleEngineService.ts +67 -0
- package/Server/Services/IncidentService.ts +11 -0
- package/Server/Services/Index.ts +38 -0
- package/Server/Services/KubernetesClusterService.ts +11 -3
- package/Server/Services/LogAggregationService.ts +3 -0
- package/Server/Services/MetricAggregationService.ts +3 -0
- package/Server/Services/OpenTelemetryIngestService.ts +73 -0
- package/Server/Services/PodmanHostLabelRuleEngineService.ts +198 -0
- package/Server/Services/PodmanHostLabelRuleService.ts +14 -0
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +216 -0
- package/Server/Services/PodmanHostOwnerRuleService.ts +14 -0
- package/Server/Services/PodmanHostOwnerTeamService.ts +10 -0
- package/Server/Services/PodmanHostOwnerUserService.ts +10 -0
- package/Server/Services/PodmanHostService.ts +368 -0
- package/Server/Services/PodmanResourceService.ts +310 -0
- package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +204 -0
- package/Server/Services/ProxmoxClusterLabelRuleService.ts +14 -0
- package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +222 -0
- package/Server/Services/ProxmoxClusterOwnerRuleService.ts +14 -0
- package/Server/Services/ProxmoxClusterOwnerTeamService.ts +10 -0
- package/Server/Services/ProxmoxClusterOwnerUserService.ts +10 -0
- package/Server/Services/ProxmoxClusterService.ts +382 -0
- package/Server/Services/ProxmoxResourceService.ts +404 -0
- package/Server/Services/RumApplicationService.ts +11 -3
- package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +29 -0
- package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +67 -0
- package/Server/Services/ServerlessFunctionService.ts +11 -3
- package/Server/Services/TelemetryUsageBillingService.ts +59 -3
- package/Server/Services/TraceAggregationService.ts +3 -0
- package/Server/Types/AnalyticsDatabase/AggregateBy.ts +8 -23
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +13 -0
- package/Server/Utils/Monitor/MonitorAlert.ts +55 -0
- package/Server/Utils/Monitor/MonitorClusterContext.ts +158 -0
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +650 -4
- package/Server/Utils/Monitor/MonitorIncident.ts +175 -7
- package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +56 -6
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +6 -1
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +59 -0
- package/Server/Utils/Profiling.ts +37 -2
- package/Server/Utils/Telemetry/EntityRegistry.ts +4 -0
- package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +1096 -0
- package/Server/Utils/Telemetry/ResourceFacetResolver.ts +49 -0
- package/Server/Utils/Telemetry/Telemetry.ts +10 -0
- package/Server/Utils/Telemetry/TelemetryEntity.ts +107 -0
- package/Server/Utils/Telemetry.ts +8 -19
- package/Tests/Server/API/BillingInvoiceAPI.test.ts +194 -0
- package/Tests/Server/API/ProjectAPI.test.ts +91 -0
- package/Tests/Server/API/ResellerPlanAPI.test.ts +207 -0
- package/Tests/Server/Infrastructure/GlobalCache.test.ts +100 -0
- package/Tests/Server/Services/BillingService.test.ts +323 -0
- package/Tests/Server/Services/CephResourceService.test.ts +264 -0
- package/Tests/Server/Services/ProxmoxResourceService.test.ts +326 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +322 -0
- package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +14 -0
- package/Tests/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.test.ts +879 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +196 -0
- package/Tests/Types/DockerSwarm/DockerSwarmInventoryExtractor.test.ts +667 -0
- package/Tests/Types/Monitor/CephAlertTemplates.test.ts +1231 -0
- package/Tests/Types/Monitor/DockerSwarmAlertTemplates.test.ts +528 -0
- package/Tests/Types/Monitor/ProxmoxAlertTemplates.test.ts +732 -0
- package/Tests/Utils/Telemetry/EntityRelationship.test.ts +49 -0
- package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +423 -0
- package/Types/BaseDatabase/AggregationIntervalUtil.ts +74 -0
- package/Types/Dashboard/DashboardComponentType.ts +11 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +4 -0
- package/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.ts +15 -0
- package/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.ts +14 -0
- package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.ts +17 -0
- package/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.ts +17 -0
- package/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.ts +16 -0
- package/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.ts +15 -0
- package/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.ts +16 -0
- package/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.ts +15 -0
- package/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.ts +15 -0
- package/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.ts +17 -0
- package/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.ts +16 -0
- package/Types/Dashboard/DashboardTemplates.ts +640 -0
- package/Types/DockerSwarm/DockerSwarmInventoryExtractor.ts +452 -0
- package/Types/Icon/IconProp.ts +3 -0
- package/Types/Monitor/CephAlertTemplates.ts +1647 -0
- package/Types/Monitor/CephMetricCatalog.ts +409 -0
- package/Types/Monitor/DockerSwarmAlertTemplates.ts +461 -0
- package/Types/Monitor/DockerSwarmMetricCatalog.ts +139 -0
- package/Types/Monitor/HostAlertTemplates.ts +455 -0
- package/Types/Monitor/HostMetricCatalog.ts +177 -0
- package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +65 -0
- package/Types/Monitor/MonitorStep.ts +163 -0
- package/Types/Monitor/MonitorStepCephMonitor.ts +57 -0
- package/Types/Monitor/MonitorStepDockerSwarmMonitor.ts +74 -0
- package/Types/Monitor/MonitorStepHostMonitor.ts +30 -0
- package/Types/Monitor/MonitorStepPodmanMonitor.ts +38 -0
- package/Types/Monitor/MonitorStepProxmoxMonitor.ts +81 -0
- package/Types/Monitor/MonitorType.ts +71 -1
- package/Types/Monitor/PodmanAlertTemplates.ts +507 -0
- package/Types/Monitor/PodmanMetricCatalog.ts +226 -0
- package/Types/Monitor/ProxmoxAlertTemplates.ts +899 -0
- package/Types/Monitor/ProxmoxMetricCatalog.ts +382 -0
- package/Types/Permission.ts +1029 -104
- package/Types/Podman/PodmanInventoryExtractor.ts +343 -0
- package/Types/Telemetry/EntityType.ts +23 -0
- package/Types/Telemetry/ServiceType.ts +4 -0
- package/UI/Components/Icon/Icon.tsx +141 -0
- package/UI/Components/LogsViewer/LogsViewer.tsx +44 -1
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +28 -0
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +15 -5
- package/UI/Utils/Telemetry/Telemetry.ts +16 -21
- package/UI/Utils/TelemetryService.ts +8 -3
- package/Utils/Dashboard/Components/DashboardCephOsdListComponent.ts +63 -0
- package/Utils/Dashboard/Components/DashboardCephPoolListComponent.ts +32 -0
- package/Utils/Dashboard/Components/DashboardCephResourceListShared.ts +61 -0
- package/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.ts +70 -0
- package/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.ts +61 -0
- package/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.ts +71 -0
- package/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.ts +100 -0
- package/Utils/Dashboard/Components/DashboardPodmanHostListComponent.ts +88 -0
- package/Utils/Dashboard/Components/DashboardPodmanImageListComponent.ts +97 -0
- package/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.ts +87 -0
- package/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.ts +87 -0
- package/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.ts +69 -0
- package/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.ts +55 -0
- package/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.ts +61 -0
- package/Utils/Dashboard/Components/Index.ts +79 -0
- package/Utils/Telemetry/EntityKey.ts +53 -0
- package/Utils/Telemetry/EntityRelationship.ts +6 -0
- package/Utils/Telemetry/HeartbeatAvailability.ts +262 -0
- package/build/dist/Models/DatabaseModels/Alert.js +270 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertLabelRule.js +39 -0
- package/build/dist/Models/DatabaseModels/AlertLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerRule.js +39 -0
- package/build/dist/Models/DatabaseModels/AlertOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephCluster.js +992 -0
- package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js +522 -0
- package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js +603 -0
- package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/CephClusterOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/CephClusterOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CephResource.js +846 -0
- package/build/dist/Models/DatabaseModels/CephResource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +1018 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js +522 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js +603 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmResource.js +787 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmResource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Host.js +63 -0
- package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +270 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentLabelRule.js +39 -0
- package/build/dist/Models/DatabaseModels/IncidentLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js +39 -0
- package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js +54 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +48 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanHost.js +885 -0
- package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -0
- package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js +522 -0
- package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js +603 -0
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/PodmanHostOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/PodmanResource.js +526 -0
- package/build/dist/Models/DatabaseModels/PodmanResource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +967 -0
- package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js +522 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js +603 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxResource.js +761 -0
- package/build/dist/Models/DatabaseModels/ProxmoxResource.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +216 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js +39 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js +39 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +54 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Server/API/BillingInvoiceAPI.js +35 -5
- package/build/dist/Server/API/BillingInvoiceAPI.js.map +1 -1
- package/build/dist/Server/API/CephResourceAPI.js +98 -0
- package/build/dist/Server/API/CephResourceAPI.js.map +1 -0
- package/build/dist/Server/API/DashboardAPI.js +135 -0
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/DockerSwarmResourceAPI.js +100 -0
- package/build/dist/Server/API/DockerSwarmResourceAPI.js.map +1 -0
- package/build/dist/Server/API/ProjectAPI.js +11 -0
- package/build/dist/Server/API/ProjectAPI.js.map +1 -1
- package/build/dist/Server/API/ProxmoxResourceAPI.js +95 -0
- package/build/dist/Server/API/ProxmoxResourceAPI.js.map +1 -0
- package/build/dist/Server/API/ResellerPlanAPI.js +17 -3
- package/build/dist/Server/API/ResellerPlanAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +8 -1
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/GlobalCache.js +7 -2
- package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.js +76 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781500000000-AddProxmoxAndCephClusterTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.js +1100 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.js +108 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000000-AddProxmoxCephV2Columns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.js +253 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781600000001-AddProxmoxCephActivityAndRules.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.js +43 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781700000000-AddProxmoxCephV3Columns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Redis.js +31 -8
- package/build/dist/Server/Infrastructure/Redis.js.map +1 -1
- package/build/dist/Server/Services/AlertLabelRuleEngineService.js +30 -4
- package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +62 -5
- package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/BillingService.js +85 -23
- package/build/dist/Server/Services/BillingService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +166 -0
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterLabelRuleService.js +13 -0
- package/build/dist/Server/Services/CephClusterLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +186 -0
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/CephClusterOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/CephClusterOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterOwnerUserService.js +9 -0
- package/build/dist/Server/Services/CephClusterOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterService.js +353 -0
- package/build/dist/Server/Services/CephClusterService.js.map +1 -0
- package/build/dist/Server/Services/CephResourceService.js +257 -0
- package/build/dist/Server/Services/CephResourceService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceService.js +10 -2
- package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +10 -2
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +168 -0
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js +13 -0
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +188 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +9 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterService.js +353 -0
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmResourceService.js +258 -0
- package/build/dist/Server/Services/DockerSwarmResourceService.js.map +1 -0
- package/build/dist/Server/Services/ExceptionAggregationService.js +3 -0
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +10 -2
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +28 -4
- package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +62 -5
- package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +8 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +38 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +10 -2
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +3 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +3 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +69 -9
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +166 -0
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostLabelRuleService.js +13 -0
- package/build/dist/Server/Services/PodmanHostLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +186 -0
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/PodmanHostOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostOwnerUserService.js +9 -0
- package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostService.js +319 -0
- package/build/dist/Server/Services/PodmanHostService.js.map +1 -0
- package/build/dist/Server/Services/PodmanResourceService.js +196 -0
- package/build/dist/Server/Services/PodmanResourceService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +166 -0
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleService.js +13 -0
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +186 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js +9 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterService.js +337 -0
- package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxResourceService.js +285 -0
- package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -0
- package/build/dist/Server/Services/RumApplicationService.js +10 -2
- package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +30 -4
- package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +62 -5
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionService.js +10 -2
- package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +43 -3
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +3 -0
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +8 -25
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +13 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +44 -0
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +118 -0
- package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +422 -4
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +137 -8
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +32 -6
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +6 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +39 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
- package/build/dist/Server/Utils/Profiling.js +24 -3
- package/build/dist/Server/Utils/Profiling.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +4 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +854 -0
- package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +30 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +6 -0
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +80 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry.js +8 -10
- package/build/dist/Server/Utils/Telemetry.js.map +1 -1
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +69 -0
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js +11 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +4 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephOsdListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardCephPoolListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmNodeListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardDockerSwarmServiceListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanContainerListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanHostListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanImageListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanNetworkListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardPodmanVolumeListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxGuestListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardProxmoxNodeListComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +562 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js +359 -0
- package/build/dist/Types/DockerSwarm/DockerSwarmInventoryExtractor.js.map +1 -0
- package/build/dist/Types/Icon/IconProp.js +3 -0
- package/build/dist/Types/Icon/IconProp.js.map +1 -1
- package/build/dist/Types/Monitor/CephAlertTemplates.js +1379 -0
- package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/CephMetricCatalog.js +353 -0
- package/build/dist/Types/Monitor/CephMetricCatalog.js.map +1 -0
- package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js +358 -0
- package/build/dist/Types/Monitor/DockerSwarmAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js +103 -0
- package/build/dist/Types/Monitor/DockerSwarmMetricCatalog.js.map +1 -0
- package/build/dist/Types/Monitor/HostAlertTemplates.js +365 -0
- package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/HostMetricCatalog.js +138 -0
- package/build/dist/Types/Monitor/HostMetricCatalog.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStep.js +115 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepCephMonitor.js +34 -0
- package/build/dist/Types/Monitor/MonitorStepCephMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js +21 -0
- package/build/dist/Types/Monitor/MonitorStepDockerSwarmMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStepHostMonitor.js +20 -0
- package/build/dist/Types/Monitor/MonitorStepHostMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js +21 -0
- package/build/dist/Types/Monitor/MonitorStepPodmanMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStepProxmoxMonitor.js +36 -0
- package/build/dist/Types/Monitor/MonitorStepProxmoxMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorType.js +66 -1
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/PodmanAlertTemplates.js +410 -0
- package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/PodmanMetricCatalog.js +192 -0
- package/build/dist/Types/Monitor/PodmanMetricCatalog.js.map +1 -0
- package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +743 -0
- package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/ProxmoxMetricCatalog.js +320 -0
- package/build/dist/Types/Monitor/ProxmoxMetricCatalog.js.map +1 -0
- package/build/dist/Types/Permission.js +824 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Podman/PodmanInventoryExtractor.js +293 -0
- package/build/dist/Types/Podman/PodmanInventoryExtractor.js.map +1 -0
- package/build/dist/Types/Telemetry/EntityType.js +23 -0
- package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
- package/build/dist/Types/Telemetry/ServiceType.js +4 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +49 -0
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +30 -2
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +22 -0
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +11 -1
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Utils/Telemetry/Telemetry.js +11 -10
- package/build/dist/UI/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/UI/Utils/TelemetryService.js +6 -2
- package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardCephOsdListComponent.js +50 -0
- package/build/dist/Utils/Dashboard/Components/DashboardCephOsdListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardCephPoolListComponent.js +27 -0
- package/build/dist/Utils/Dashboard/Components/DashboardCephPoolListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardCephResourceListShared.js +46 -0
- package/build/dist/Utils/Dashboard/Components/DashboardCephResourceListShared.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js +55 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmNodeListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js +46 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmResourceListShared.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js +55 -0
- package/build/dist/Utils/Dashboard/Components/DashboardDockerSwarmServiceListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js +77 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanContainerListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js +71 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanHostListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js +77 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanImageListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js +68 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanNetworkListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js +68 -0
- package/build/dist/Utils/Dashboard/Components/DashboardPodmanVolumeListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.js +55 -0
- package/build/dist/Utils/Dashboard/Components/DashboardProxmoxGuestListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.js +42 -0
- package/build/dist/Utils/Dashboard/Components/DashboardProxmoxNodeListComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.js +46 -0
- package/build/dist/Utils/Dashboard/Components/DashboardProxmoxResourceListShared.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +44 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/Telemetry/EntityKey.js +41 -0
- package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
- package/build/dist/Utils/Telemetry/EntityRelationship.js +3 -0
- package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
- package/build/dist/Utils/Telemetry/HeartbeatAvailability.js +174 -0
- package/build/dist/Utils/Telemetry/HeartbeatAvailability.js.map +1 -0
- package/package.json +29 -21
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import CephCluster from "../../../Models/DatabaseModels/CephCluster";
|
|
2
|
+
import DockerSwarmCluster from "../../../Models/DatabaseModels/DockerSwarmCluster";
|
|
1
3
|
import DockerHost from "../../../Models/DatabaseModels/DockerHost";
|
|
2
4
|
import Host from "../../../Models/DatabaseModels/Host";
|
|
3
5
|
import Incident from "../../../Models/DatabaseModels/Incident";
|
|
@@ -8,6 +10,8 @@ import KubernetesCluster from "../../../Models/DatabaseModels/KubernetesCluster"
|
|
|
8
10
|
import Label from "../../../Models/DatabaseModels/Label";
|
|
9
11
|
import Monitor from "../../../Models/DatabaseModels/Monitor";
|
|
10
12
|
import OnCallDutyPolicy from "../../../Models/DatabaseModels/OnCallDutyPolicy";
|
|
13
|
+
import PodmanHost from "../../../Models/DatabaseModels/PodmanHost";
|
|
14
|
+
import ProxmoxCluster from "../../../Models/DatabaseModels/ProxmoxCluster";
|
|
11
15
|
import Service from "../../../Models/DatabaseModels/Service";
|
|
12
16
|
import Includes from "../../../Types/BaseDatabase/Includes";
|
|
13
17
|
import SortOrder from "../../../Types/BaseDatabase/SortOrder";
|
|
@@ -20,10 +24,13 @@ import ObjectID from "../../../Types/ObjectID";
|
|
|
20
24
|
import ProbeMonitorResponse from "../../../Types/Probe/ProbeMonitorResponse";
|
|
21
25
|
import { TelemetryQuery } from "../../../Types/Telemetry/TelemetryQuery";
|
|
22
26
|
import { DisableAutomaticIncidentCreation } from "../../EnvironmentConfig";
|
|
27
|
+
import CephClusterService from "../../Services/CephClusterService";
|
|
23
28
|
import DockerHostService from "../../Services/DockerHostService";
|
|
24
29
|
import HostService from "../../Services/HostService";
|
|
25
30
|
import IncidentService from "../../Services/IncidentService";
|
|
26
31
|
import KubernetesClusterService from "../../Services/KubernetesClusterService";
|
|
32
|
+
import PodmanHostService from "../../Services/PodmanHostService";
|
|
33
|
+
import ProxmoxClusterService from "../../Services/ProxmoxClusterService";
|
|
27
34
|
import ServiceService from "../../Services/ServiceService";
|
|
28
35
|
import IncidentSeverityService from "../../Services/IncidentSeverityService";
|
|
29
36
|
import IncidentStateTimelineService from "../../Services/IncidentStateTimelineService";
|
|
@@ -37,6 +44,9 @@ import OneUptimeDate from "../../../Types/Date";
|
|
|
37
44
|
import MonitorEvaluationSummary from "../../../Types/Monitor/MonitorEvaluationSummary";
|
|
38
45
|
import { IncidentMemberRoleAssignment } from "../../../Types/Monitor/CriteriaIncident";
|
|
39
46
|
import { PerSeriesCriteriaMatch } from "../../../Types/Probe/ProbeApiIngestResponse";
|
|
47
|
+
import MonitorClusterContextUtil, {
|
|
48
|
+
MonitorClusterContext,
|
|
49
|
+
} from "./MonitorClusterContext";
|
|
40
50
|
import SeriesResourceLabels, {
|
|
41
51
|
SeriesResourceRefs,
|
|
42
52
|
} from "./SeriesResourceLabels";
|
|
@@ -196,6 +206,19 @@ export default class MonitorIncident {
|
|
|
196
206
|
return;
|
|
197
207
|
}
|
|
198
208
|
|
|
209
|
+
/*
|
|
210
|
+
* Proxmox/Ceph monitors: resolve the monitored cluster once per
|
|
211
|
+
* evaluation (lookup-only, from the step config's clusterIdentifier)
|
|
212
|
+
* so every incident created below is attached to it. Series labels
|
|
213
|
+
* cannot supply this — they carry datapoint labels (`id`,
|
|
214
|
+
* `ceph_daemon`, `pool_id`), not cluster identity, and ungrouped
|
|
215
|
+
* templates have no series at all. No-op for other monitor types.
|
|
216
|
+
*/
|
|
217
|
+
const clusterContext: MonitorClusterContext =
|
|
218
|
+
await MonitorClusterContextUtil.resolveClusterContextForMonitor({
|
|
219
|
+
monitor: input.monitor,
|
|
220
|
+
});
|
|
221
|
+
|
|
199
222
|
/*
|
|
200
223
|
* Series-less path: one incident per criteriaIncident template as
|
|
201
224
|
* before. Series-aware path: one incident per (series × template).
|
|
@@ -384,6 +407,15 @@ export default class MonitorIncident {
|
|
|
384
407
|
});
|
|
385
408
|
}
|
|
386
409
|
|
|
410
|
+
/*
|
|
411
|
+
* Deterministic Proxmox/Ceph cluster link from the monitor's
|
|
412
|
+
* step config (resolved once above). Runs for both grouped and
|
|
413
|
+
* ungrouped incidents and merges with anything the series-label
|
|
414
|
+
* path resolved, so the per-cluster Activity tabs always see
|
|
415
|
+
* monitor-created incidents.
|
|
416
|
+
*/
|
|
417
|
+
this.attachClusterContext({ incident, clusterContext });
|
|
418
|
+
|
|
387
419
|
incident.onCallDutyPolicies =
|
|
388
420
|
criteriaIncident.onCallPolicyIds?.map((id: ObjectID) => {
|
|
389
421
|
const onCallPolicy: OnCallDutyPolicy = new OnCallDutyPolicy();
|
|
@@ -527,13 +559,14 @@ export default class MonitorIncident {
|
|
|
527
559
|
}
|
|
528
560
|
|
|
529
561
|
/*
|
|
530
|
-
* Pull every host / docker-host / k8s-cluster /
|
|
531
|
-
* out of the series labels and
|
|
532
|
-
* records to the incident. The
|
|
533
|
-
*
|
|
534
|
-
* suppression path so the two
|
|
535
|
-
* identify which resource). Lookups
|
|
536
|
-
* stale or hostile stamp can't pull in
|
|
562
|
+
* Pull every host / docker-host / k8s-cluster / proxmox-cluster /
|
|
563
|
+
* ceph-cluster / service identifier out of the series labels and
|
|
564
|
+
* attach the matching project-scoped records to the incident. The
|
|
565
|
+
* label-key → resource-type mapping lives in SeriesResourceLabels
|
|
566
|
+
* (shared with the scheduled-maintenance suppression path so the two
|
|
567
|
+
* never disagree about which labels identify which resource). Lookups
|
|
568
|
+
* are always project-scoped so a stale or hostile stamp can't pull in
|
|
569
|
+
* a record from another tenant.
|
|
537
570
|
*/
|
|
538
571
|
private static async linkResourceContextFromSeries(input: {
|
|
539
572
|
incident: Incident;
|
|
@@ -547,8 +580,11 @@ export default class MonitorIncident {
|
|
|
547
580
|
const [
|
|
548
581
|
resolvedHosts,
|
|
549
582
|
resolvedDockerHosts,
|
|
583
|
+
resolvedPodmanHosts,
|
|
550
584
|
resolvedClusters,
|
|
551
585
|
resolvedServices,
|
|
586
|
+
resolvedProxmoxClusters,
|
|
587
|
+
resolvedCephClusters,
|
|
552
588
|
] = await Promise.all([
|
|
553
589
|
this.resolveResourceIds({
|
|
554
590
|
ids: refs.hostIds,
|
|
@@ -564,6 +600,13 @@ export default class MonitorIncident {
|
|
|
564
600
|
projectId: input.projectId,
|
|
565
601
|
findBy: DockerHostService.findBy.bind(DockerHostService),
|
|
566
602
|
}),
|
|
603
|
+
this.resolveResourceIds({
|
|
604
|
+
ids: refs.podmanHostIds,
|
|
605
|
+
names: refs.podmanHostNames,
|
|
606
|
+
nameColumn: "hostIdentifier",
|
|
607
|
+
projectId: input.projectId,
|
|
608
|
+
findBy: PodmanHostService.findBy.bind(PodmanHostService),
|
|
609
|
+
}),
|
|
567
610
|
this.resolveResourceIds({
|
|
568
611
|
ids: refs.kubernetesClusterIds,
|
|
569
612
|
names: refs.kubernetesClusterNames,
|
|
@@ -578,6 +621,20 @@ export default class MonitorIncident {
|
|
|
578
621
|
projectId: input.projectId,
|
|
579
622
|
findBy: ServiceService.findBy.bind(ServiceService),
|
|
580
623
|
}),
|
|
624
|
+
this.resolveResourceIds({
|
|
625
|
+
ids: [],
|
|
626
|
+
names: refs.proxmoxClusterNames,
|
|
627
|
+
nameColumn: "name",
|
|
628
|
+
projectId: input.projectId,
|
|
629
|
+
findBy: ProxmoxClusterService.findBy.bind(ProxmoxClusterService),
|
|
630
|
+
}),
|
|
631
|
+
this.resolveResourceIds({
|
|
632
|
+
ids: [],
|
|
633
|
+
names: refs.cephClusterNames,
|
|
634
|
+
nameColumn: "name",
|
|
635
|
+
projectId: input.projectId,
|
|
636
|
+
findBy: CephClusterService.findBy.bind(CephClusterService),
|
|
637
|
+
}),
|
|
581
638
|
]);
|
|
582
639
|
|
|
583
640
|
if (resolvedHosts.length > 0) {
|
|
@@ -596,6 +653,15 @@ export default class MonitorIncident {
|
|
|
596
653
|
},
|
|
597
654
|
);
|
|
598
655
|
}
|
|
656
|
+
if (resolvedPodmanHosts.length > 0) {
|
|
657
|
+
input.incident.podmanHosts = resolvedPodmanHosts.map(
|
|
658
|
+
(id: string): PodmanHost => {
|
|
659
|
+
const podmanHost: PodmanHost = new PodmanHost();
|
|
660
|
+
podmanHost._id = id;
|
|
661
|
+
return podmanHost;
|
|
662
|
+
},
|
|
663
|
+
);
|
|
664
|
+
}
|
|
599
665
|
if (resolvedClusters.length > 0) {
|
|
600
666
|
input.incident.kubernetesClusters = resolvedClusters.map(
|
|
601
667
|
(id: string): KubernetesCluster => {
|
|
@@ -612,6 +678,108 @@ export default class MonitorIncident {
|
|
|
612
678
|
return service;
|
|
613
679
|
});
|
|
614
680
|
}
|
|
681
|
+
if (resolvedProxmoxClusters.length > 0) {
|
|
682
|
+
input.incident.proxmoxClusters = resolvedProxmoxClusters.map(
|
|
683
|
+
(id: string): ProxmoxCluster => {
|
|
684
|
+
const cluster: ProxmoxCluster = new ProxmoxCluster();
|
|
685
|
+
cluster._id = id;
|
|
686
|
+
return cluster;
|
|
687
|
+
},
|
|
688
|
+
);
|
|
689
|
+
}
|
|
690
|
+
if (resolvedCephClusters.length > 0) {
|
|
691
|
+
input.incident.cephClusters = resolvedCephClusters.map(
|
|
692
|
+
(id: string): CephCluster => {
|
|
693
|
+
const cluster: CephCluster = new CephCluster();
|
|
694
|
+
cluster._id = id;
|
|
695
|
+
return cluster;
|
|
696
|
+
},
|
|
697
|
+
);
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/*
|
|
702
|
+
* Attach the monitor-step-resolved Proxmox/Ceph cluster ids to the
|
|
703
|
+
* incident, merging with (never overwriting) anything the
|
|
704
|
+
* series-label path already linked. Both paths can resolve the same
|
|
705
|
+
* cluster, so dedupe by id.
|
|
706
|
+
*/
|
|
707
|
+
private static attachClusterContext(input: {
|
|
708
|
+
incident: Incident;
|
|
709
|
+
clusterContext: MonitorClusterContext;
|
|
710
|
+
}): void {
|
|
711
|
+
if (input.clusterContext.proxmoxClusterIds.length > 0) {
|
|
712
|
+
const existingIds: Set<string> = new Set<string>(
|
|
713
|
+
(input.incident.proxmoxClusters || []).map(
|
|
714
|
+
(cluster: ProxmoxCluster) => {
|
|
715
|
+
return String(cluster._id);
|
|
716
|
+
},
|
|
717
|
+
),
|
|
718
|
+
);
|
|
719
|
+
|
|
720
|
+
const merged: Array<ProxmoxCluster> = [
|
|
721
|
+
...(input.incident.proxmoxClusters || []),
|
|
722
|
+
];
|
|
723
|
+
|
|
724
|
+
for (const id of input.clusterContext.proxmoxClusterIds) {
|
|
725
|
+
if (existingIds.has(id)) {
|
|
726
|
+
continue;
|
|
727
|
+
}
|
|
728
|
+
const cluster: ProxmoxCluster = new ProxmoxCluster();
|
|
729
|
+
cluster._id = id;
|
|
730
|
+
merged.push(cluster);
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
input.incident.proxmoxClusters = merged;
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
if (input.clusterContext.cephClusterIds.length > 0) {
|
|
737
|
+
const existingIds: Set<string> = new Set<string>(
|
|
738
|
+
(input.incident.cephClusters || []).map((cluster: CephCluster) => {
|
|
739
|
+
return String(cluster._id);
|
|
740
|
+
}),
|
|
741
|
+
);
|
|
742
|
+
|
|
743
|
+
const merged: Array<CephCluster> = [
|
|
744
|
+
...(input.incident.cephClusters || []),
|
|
745
|
+
];
|
|
746
|
+
|
|
747
|
+
for (const id of input.clusterContext.cephClusterIds) {
|
|
748
|
+
if (existingIds.has(id)) {
|
|
749
|
+
continue;
|
|
750
|
+
}
|
|
751
|
+
const cluster: CephCluster = new CephCluster();
|
|
752
|
+
cluster._id = id;
|
|
753
|
+
merged.push(cluster);
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
input.incident.cephClusters = merged;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
if (input.clusterContext.dockerSwarmClusterIds.length > 0) {
|
|
760
|
+
const existingIds: Set<string> = new Set<string>(
|
|
761
|
+
(input.incident.dockerSwarmClusters || []).map(
|
|
762
|
+
(cluster: DockerSwarmCluster) => {
|
|
763
|
+
return String(cluster._id);
|
|
764
|
+
},
|
|
765
|
+
),
|
|
766
|
+
);
|
|
767
|
+
|
|
768
|
+
const merged: Array<DockerSwarmCluster> = [
|
|
769
|
+
...(input.incident.dockerSwarmClusters || []),
|
|
770
|
+
];
|
|
771
|
+
|
|
772
|
+
for (const id of input.clusterContext.dockerSwarmClusterIds) {
|
|
773
|
+
if (existingIds.has(id)) {
|
|
774
|
+
continue;
|
|
775
|
+
}
|
|
776
|
+
const cluster: DockerSwarmCluster = new DockerSwarmCluster();
|
|
777
|
+
cluster._id = id;
|
|
778
|
+
merged.push(cluster);
|
|
779
|
+
}
|
|
780
|
+
|
|
781
|
+
input.incident.dockerSwarmClusters = merged;
|
|
782
|
+
}
|
|
615
783
|
}
|
|
616
784
|
|
|
617
785
|
/*
|
|
@@ -23,7 +23,14 @@ export interface ResourceKeySet {
|
|
|
23
23
|
export interface MaintainedResourceKeys {
|
|
24
24
|
hosts: ResourceKeySet;
|
|
25
25
|
dockerHosts: ResourceKeySet;
|
|
26
|
+
podmanHosts: ResourceKeySet;
|
|
26
27
|
kubernetesClusters: ResourceKeySet;
|
|
28
|
+
/*
|
|
29
|
+
* Proxmox/Ceph clusters have no `oneuptime.*.id` label stamp, so only
|
|
30
|
+
* the name set is ever matched; the id set exists for shape parity.
|
|
31
|
+
*/
|
|
32
|
+
proxmoxClusters: ResourceKeySet;
|
|
33
|
+
cephClusters: ResourceKeySet;
|
|
27
34
|
services: ResourceKeySet;
|
|
28
35
|
}
|
|
29
36
|
|
|
@@ -45,7 +52,8 @@ export interface MaintainedResourceKeys {
|
|
|
45
52
|
* incident/alert creation loops can skip exactly those series while the
|
|
46
53
|
* other 90 hosts keep alerting. It covers every resource type a
|
|
47
54
|
* maintenance event can attach to AND a series can identify: Host,
|
|
48
|
-
* DockerHost, KubernetesCluster, and
|
|
55
|
+
* DockerHost, KubernetesCluster, ProxmoxCluster, CephCluster, and
|
|
56
|
+
* Service.
|
|
49
57
|
*/
|
|
50
58
|
export default class MonitorMaintenanceSuppression {
|
|
51
59
|
/*
|
|
@@ -105,6 +113,11 @@ export default class MonitorMaintenanceSuppression {
|
|
|
105
113
|
refs.dockerHostNames,
|
|
106
114
|
input.maintained.dockerHosts.names,
|
|
107
115
|
) ||
|
|
116
|
+
this.intersects(refs.podmanHostIds, input.maintained.podmanHosts.ids) ||
|
|
117
|
+
this.intersects(
|
|
118
|
+
refs.podmanHostNames,
|
|
119
|
+
input.maintained.podmanHosts.names,
|
|
120
|
+
) ||
|
|
108
121
|
this.intersects(
|
|
109
122
|
refs.kubernetesClusterIds,
|
|
110
123
|
input.maintained.kubernetesClusters.ids,
|
|
@@ -113,6 +126,14 @@ export default class MonitorMaintenanceSuppression {
|
|
|
113
126
|
refs.kubernetesClusterNames,
|
|
114
127
|
input.maintained.kubernetesClusters.names,
|
|
115
128
|
) ||
|
|
129
|
+
this.intersects(
|
|
130
|
+
refs.proxmoxClusterNames,
|
|
131
|
+
input.maintained.proxmoxClusters.names,
|
|
132
|
+
) ||
|
|
133
|
+
this.intersects(
|
|
134
|
+
refs.cephClusterNames,
|
|
135
|
+
input.maintained.cephClusters.names,
|
|
136
|
+
) ||
|
|
116
137
|
this.intersects(refs.serviceIds, input.maintained.services.ids) ||
|
|
117
138
|
this.intersects(refs.serviceNames, input.maintained.services.names);
|
|
118
139
|
|
|
@@ -141,8 +162,14 @@ export default class MonitorMaintenanceSuppression {
|
|
|
141
162
|
maintained.hosts.names.size > 0 ||
|
|
142
163
|
maintained.dockerHosts.ids.size > 0 ||
|
|
143
164
|
maintained.dockerHosts.names.size > 0 ||
|
|
165
|
+
maintained.podmanHosts.ids.size > 0 ||
|
|
166
|
+
maintained.podmanHosts.names.size > 0 ||
|
|
144
167
|
maintained.kubernetesClusters.ids.size > 0 ||
|
|
145
168
|
maintained.kubernetesClusters.names.size > 0 ||
|
|
169
|
+
maintained.proxmoxClusters.ids.size > 0 ||
|
|
170
|
+
maintained.proxmoxClusters.names.size > 0 ||
|
|
171
|
+
maintained.cephClusters.ids.size > 0 ||
|
|
172
|
+
maintained.cephClusters.names.size > 0 ||
|
|
146
173
|
maintained.services.ids.size > 0 ||
|
|
147
174
|
maintained.services.names.size > 0
|
|
148
175
|
);
|
|
@@ -150,11 +177,11 @@ export default class MonitorMaintenanceSuppression {
|
|
|
150
177
|
|
|
151
178
|
/*
|
|
152
179
|
* Collect the ids + identifiers of every Host / DockerHost /
|
|
153
|
-
* KubernetesCluster /
|
|
154
|
-
* in this project. Monitors attached
|
|
155
|
-
* not collected here — those are
|
|
156
|
-
* whole-monitor disable flag, which
|
|
157
|
-
* we ever reach per-series creation.
|
|
180
|
+
* KubernetesCluster / ProxmoxCluster / CephCluster / Service attached
|
|
181
|
+
* to an ongoing maintenance event in this project. Monitors attached
|
|
182
|
+
* to the event are intentionally not collected here — those are
|
|
183
|
+
* already handled upstream by the whole-monitor disable flag, which
|
|
184
|
+
* short-circuits evaluation before we ever reach per-series creation.
|
|
158
185
|
*/
|
|
159
186
|
private static async getResourcesUnderOngoingMaintenance(
|
|
160
187
|
projectId: ObjectID,
|
|
@@ -162,7 +189,10 @@ export default class MonitorMaintenanceSuppression {
|
|
|
162
189
|
const maintained: MaintainedResourceKeys = {
|
|
163
190
|
hosts: { ids: new Set<string>(), names: new Set<string>() },
|
|
164
191
|
dockerHosts: { ids: new Set<string>(), names: new Set<string>() },
|
|
192
|
+
podmanHosts: { ids: new Set<string>(), names: new Set<string>() },
|
|
165
193
|
kubernetesClusters: { ids: new Set<string>(), names: new Set<string>() },
|
|
194
|
+
proxmoxClusters: { ids: new Set<string>(), names: new Set<string>() },
|
|
195
|
+
cephClusters: { ids: new Set<string>(), names: new Set<string>() },
|
|
166
196
|
services: { ids: new Set<string>(), names: new Set<string>() },
|
|
167
197
|
};
|
|
168
198
|
|
|
@@ -178,7 +208,10 @@ export default class MonitorMaintenanceSuppression {
|
|
|
178
208
|
_id: true,
|
|
179
209
|
hosts: { _id: true, hostIdentifier: true },
|
|
180
210
|
dockerHosts: { _id: true, hostIdentifier: true },
|
|
211
|
+
podmanHosts: { _id: true, hostIdentifier: true },
|
|
181
212
|
kubernetesClusters: { _id: true, clusterIdentifier: true },
|
|
213
|
+
proxmoxClusters: { _id: true, name: true },
|
|
214
|
+
cephClusters: { _id: true, name: true },
|
|
182
215
|
services: { _id: true, name: true },
|
|
183
216
|
},
|
|
184
217
|
skip: 0,
|
|
@@ -199,6 +232,13 @@ export default class MonitorMaintenanceSuppression {
|
|
|
199
232
|
dockerHost.hostIdentifier,
|
|
200
233
|
);
|
|
201
234
|
}
|
|
235
|
+
for (const podmanHost of event.podmanHosts || []) {
|
|
236
|
+
this.addKey(
|
|
237
|
+
maintained.podmanHosts,
|
|
238
|
+
podmanHost._id,
|
|
239
|
+
podmanHost.hostIdentifier,
|
|
240
|
+
);
|
|
241
|
+
}
|
|
202
242
|
for (const cluster of event.kubernetesClusters || []) {
|
|
203
243
|
this.addKey(
|
|
204
244
|
maintained.kubernetesClusters,
|
|
@@ -206,6 +246,16 @@ export default class MonitorMaintenanceSuppression {
|
|
|
206
246
|
cluster.clusterIdentifier,
|
|
207
247
|
);
|
|
208
248
|
}
|
|
249
|
+
for (const proxmoxCluster of event.proxmoxClusters || []) {
|
|
250
|
+
this.addKey(
|
|
251
|
+
maintained.proxmoxClusters,
|
|
252
|
+
proxmoxCluster._id,
|
|
253
|
+
proxmoxCluster.name,
|
|
254
|
+
);
|
|
255
|
+
}
|
|
256
|
+
for (const cephCluster of event.cephClusters || []) {
|
|
257
|
+
this.addKey(maintained.cephClusters, cephCluster._id, cephCluster.name);
|
|
258
|
+
}
|
|
209
259
|
for (const service of event.services || []) {
|
|
210
260
|
this.addKey(maintained.services, service._id, service.name);
|
|
211
261
|
}
|
|
@@ -360,7 +360,12 @@ export default class MonitorTemplateUtil {
|
|
|
360
360
|
if (
|
|
361
361
|
data.monitorType === MonitorType.Metrics ||
|
|
362
362
|
data.monitorType === MonitorType.Kubernetes ||
|
|
363
|
-
data.monitorType === MonitorType.Docker
|
|
363
|
+
data.monitorType === MonitorType.Docker ||
|
|
364
|
+
data.monitorType === MonitorType.Host ||
|
|
365
|
+
data.monitorType === MonitorType.Podman ||
|
|
366
|
+
data.monitorType === MonitorType.DockerSwarm ||
|
|
367
|
+
data.monitorType === MonitorType.Proxmox ||
|
|
368
|
+
data.monitorType === MonitorType.Ceph
|
|
364
369
|
) {
|
|
365
370
|
const metricResponse: MetricMonitorResponse =
|
|
366
371
|
data.dataToProcess as MetricMonitorResponse;
|
|
@@ -48,6 +48,22 @@ export const DockerHostNameLabelKeys: ReadonlyArray<string> = [
|
|
|
48
48
|
"oneuptime.docker.host.name",
|
|
49
49
|
];
|
|
50
50
|
|
|
51
|
+
/*
|
|
52
|
+
* For Podman hosts we deliberately ignore raw `host.name` /
|
|
53
|
+
* `oneuptime.host.name`: those are the Host's territory. The ingest
|
|
54
|
+
* pipeline stamps `oneuptime.podman.host.*` independently when the
|
|
55
|
+
* source is a podman host, so only those keys identify a PodmanHost.
|
|
56
|
+
*/
|
|
57
|
+
export const PodmanHostIdLabelKeys: ReadonlyArray<string> = [
|
|
58
|
+
"resource.oneuptime.podman.host.id",
|
|
59
|
+
"oneuptime.podman.host.id",
|
|
60
|
+
];
|
|
61
|
+
|
|
62
|
+
export const PodmanHostNameLabelKeys: ReadonlyArray<string> = [
|
|
63
|
+
"resource.oneuptime.podman.host.name",
|
|
64
|
+
"oneuptime.podman.host.name",
|
|
65
|
+
];
|
|
66
|
+
|
|
51
67
|
export const KubernetesClusterIdLabelKeys: ReadonlyArray<string> = [
|
|
52
68
|
"resource.oneuptime.kubernetes.cluster.id",
|
|
53
69
|
"oneuptime.kubernetes.cluster.id",
|
|
@@ -60,6 +76,29 @@ export const KubernetesClusterNameLabelKeys: ReadonlyArray<string> = [
|
|
|
60
76
|
"k8s.cluster.name",
|
|
61
77
|
];
|
|
62
78
|
|
|
79
|
+
/*
|
|
80
|
+
* Proxmox/Ceph cluster identity rides the agent-stamped resource
|
|
81
|
+
* attribute (`proxmox.cluster.name` / `ceph.cluster.name`) and its
|
|
82
|
+
* ClickHouse `resource.`-prefixed twin. Ingest keys cluster rows by
|
|
83
|
+
* name only — there is no `oneuptime.*.id` stamp for these clusters —
|
|
84
|
+
* so only name keys exist. The name maps to the cluster model's `name`
|
|
85
|
+
* column. Note the shipped Proxmox/Ceph alert templates group by
|
|
86
|
+
* datapoint labels (`id`, `ceph_daemon`, `pool_id`), so their series
|
|
87
|
+
* labels do NOT carry these keys; the deterministic cluster link for
|
|
88
|
+
* those monitors comes from the monitor step config instead (see
|
|
89
|
+
* MonitorClusterContext). These keys cover user-built monitors that
|
|
90
|
+
* group by the cluster attribute, exactly like the K8s keys above.
|
|
91
|
+
*/
|
|
92
|
+
export const ProxmoxClusterNameLabelKeys: ReadonlyArray<string> = [
|
|
93
|
+
"resource.proxmox.cluster.name",
|
|
94
|
+
"proxmox.cluster.name",
|
|
95
|
+
];
|
|
96
|
+
|
|
97
|
+
export const CephClusterNameLabelKeys: ReadonlyArray<string> = [
|
|
98
|
+
"resource.ceph.cluster.name",
|
|
99
|
+
"ceph.cluster.name",
|
|
100
|
+
];
|
|
101
|
+
|
|
63
102
|
/*
|
|
64
103
|
* Services come from OTel-ingested telemetry. The ingest pipeline
|
|
65
104
|
* auto-creates a Service row keyed by `service.name`, so any series
|
|
@@ -89,8 +128,12 @@ export interface SeriesResourceRefs {
|
|
|
89
128
|
hostNames: Array<string>;
|
|
90
129
|
dockerHostIds: Array<string>;
|
|
91
130
|
dockerHostNames: Array<string>;
|
|
131
|
+
podmanHostIds: Array<string>;
|
|
132
|
+
podmanHostNames: Array<string>;
|
|
92
133
|
kubernetesClusterIds: Array<string>;
|
|
93
134
|
kubernetesClusterNames: Array<string>;
|
|
135
|
+
proxmoxClusterNames: Array<string>;
|
|
136
|
+
cephClusterNames: Array<string>;
|
|
94
137
|
serviceIds: Array<string>;
|
|
95
138
|
serviceNames: Array<string>;
|
|
96
139
|
}
|
|
@@ -141,6 +184,14 @@ export default class SeriesResourceLabels {
|
|
|
141
184
|
seriesLabels,
|
|
142
185
|
DockerHostNameLabelKeys,
|
|
143
186
|
),
|
|
187
|
+
podmanHostIds: this.collectLabelValues(
|
|
188
|
+
seriesLabels,
|
|
189
|
+
PodmanHostIdLabelKeys,
|
|
190
|
+
),
|
|
191
|
+
podmanHostNames: this.collectLabelValues(
|
|
192
|
+
seriesLabels,
|
|
193
|
+
PodmanHostNameLabelKeys,
|
|
194
|
+
),
|
|
144
195
|
kubernetesClusterIds: this.collectLabelValues(
|
|
145
196
|
seriesLabels,
|
|
146
197
|
KubernetesClusterIdLabelKeys,
|
|
@@ -149,6 +200,14 @@ export default class SeriesResourceLabels {
|
|
|
149
200
|
seriesLabels,
|
|
150
201
|
KubernetesClusterNameLabelKeys,
|
|
151
202
|
),
|
|
203
|
+
proxmoxClusterNames: this.collectLabelValues(
|
|
204
|
+
seriesLabels,
|
|
205
|
+
ProxmoxClusterNameLabelKeys,
|
|
206
|
+
),
|
|
207
|
+
cephClusterNames: this.collectLabelValues(
|
|
208
|
+
seriesLabels,
|
|
209
|
+
CephClusterNameLabelKeys,
|
|
210
|
+
),
|
|
152
211
|
serviceIds: this.collectLabelValues(seriesLabels, ServiceIdLabelKeys),
|
|
153
212
|
serviceNames: this.collectLabelValues(seriesLabels, ServiceNameLabelKeys),
|
|
154
213
|
};
|
|
@@ -1,9 +1,20 @@
|
|
|
1
|
-
import Pyroscope from "@pyroscope/nodejs";
|
|
2
1
|
import { EnableProfiling } from "../EnvironmentConfig";
|
|
3
2
|
import logger, { LogAttributes } from "./Logger";
|
|
4
3
|
import GracefulShutdown, { ShutdownPriority } from "./GracefulShutdown";
|
|
5
4
|
|
|
5
|
+
/*
|
|
6
|
+
* Type-only import: erased at compile time, so it emits NO runtime require.
|
|
7
|
+
* @pyroscope/nodejs pulls in @datadog/pprof, whose native (node-gyp) binding loads
|
|
8
|
+
* at require() time. When no prebuilt binary exists for the running Node ABI (e.g. a
|
|
9
|
+
* newer Node major than the pprof build ships for), that require throws — so the module
|
|
10
|
+
* must never be imported at the top level, or the throw takes down the whole process
|
|
11
|
+
* before init() is even reached. We load it lazily and defensively inside init() instead.
|
|
12
|
+
*/
|
|
13
|
+
type PyroscopeModule = typeof import("@pyroscope/nodejs");
|
|
14
|
+
|
|
6
15
|
export default class Profiling {
|
|
16
|
+
private static pyroscope: PyroscopeModule | null = null;
|
|
17
|
+
|
|
7
18
|
public static init(data: { serviceName: string }): void {
|
|
8
19
|
if (!EnableProfiling) {
|
|
9
20
|
return;
|
|
@@ -24,6 +35,25 @@ export default class Profiling {
|
|
|
24
35
|
return;
|
|
25
36
|
}
|
|
26
37
|
|
|
38
|
+
let Pyroscope: PyroscopeModule;
|
|
39
|
+
try {
|
|
40
|
+
/*
|
|
41
|
+
* Lazy load so the native pprof binding is only required when profiling is actually
|
|
42
|
+
* enabled, and so a load failure (missing/incompatible prebuilt binary for the running
|
|
43
|
+
* Node ABI) is caught here and degrades to "profiling disabled" instead of crashing
|
|
44
|
+
* the server. Profiling is a best-effort, optional feature.
|
|
45
|
+
*/
|
|
46
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires
|
|
47
|
+
Pyroscope = require("@pyroscope/nodejs") as PyroscopeModule;
|
|
48
|
+
} catch (err) {
|
|
49
|
+
logger.warn(
|
|
50
|
+
"Profiling enabled but the profiler native module could not be loaded. Continuing without profiling.",
|
|
51
|
+
profilingLogAttributes,
|
|
52
|
+
);
|
|
53
|
+
logger.warn(err, profilingLogAttributes);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
|
|
27
57
|
try {
|
|
28
58
|
Pyroscope.init({
|
|
29
59
|
appName: data.serviceName,
|
|
@@ -36,6 +66,8 @@ export default class Profiling {
|
|
|
36
66
|
|
|
37
67
|
Pyroscope.start();
|
|
38
68
|
|
|
69
|
+
this.pyroscope = Pyroscope;
|
|
70
|
+
|
|
39
71
|
logger.info(
|
|
40
72
|
`Profiling initialized for service: ${data.serviceName} -> ${serverAddress}`,
|
|
41
73
|
profilingLogAttributes,
|
|
@@ -43,6 +75,7 @@ export default class Profiling {
|
|
|
43
75
|
} catch (err) {
|
|
44
76
|
logger.error("Failed to initialize profiling:", profilingLogAttributes);
|
|
45
77
|
logger.error(err, profilingLogAttributes);
|
|
78
|
+
return;
|
|
46
79
|
}
|
|
47
80
|
|
|
48
81
|
// Stop the profiler last (Telemetry tier), alongside the OTEL flush.
|
|
@@ -51,7 +84,9 @@ export default class Profiling {
|
|
|
51
84
|
ShutdownPriority.Telemetry,
|
|
52
85
|
async (): Promise<void> => {
|
|
53
86
|
try {
|
|
54
|
-
|
|
87
|
+
if (this.pyroscope) {
|
|
88
|
+
await this.pyroscope.stop();
|
|
89
|
+
}
|
|
55
90
|
} catch (err) {
|
|
56
91
|
logger.error("Error stopping profiler:", profilingLogAttributes);
|
|
57
92
|
logger.error(err, profilingLogAttributes);
|
|
@@ -60,6 +60,10 @@ export const DEFAULT_ENTITY_BUDGET: ReadonlyMap<EntityType, number> = new Map<
|
|
|
60
60
|
[EntityType.KubernetesNamespace, 1000],
|
|
61
61
|
[EntityType.KubernetesPod, 5000],
|
|
62
62
|
[EntityType.KubernetesDeployment, 5000],
|
|
63
|
+
[EntityType.ProxmoxCluster, 10000],
|
|
64
|
+
[EntityType.ProxmoxNode, 1000],
|
|
65
|
+
[EntityType.ProxmoxGuest, 5000],
|
|
66
|
+
[EntityType.CephCluster, 10000],
|
|
63
67
|
]);
|
|
64
68
|
|
|
65
69
|
// For types not in the map (future promotions of high-churn types).
|