@oneuptime/common 11.0.2 → 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 +166 -0
- package/Models/DatabaseModels/AlertLabelRule.ts +38 -0
- package/Models/DatabaseModels/AlertOwnerRule.ts +38 -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/Incident.ts +166 -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 +24 -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/ScheduledMaintenance.ts +110 -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/DashboardAPI.ts +89 -0
- package/Server/API/DockerSwarmResourceAPI.ts +137 -0
- package/Server/API/TelemetryAPI.ts +8 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781587937032-MigrationName.ts +3199 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/AlertLabelRuleEngineService.ts +29 -0
- package/Server/Services/AlertOwnerRuleEngineService.ts +67 -0
- 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 +1 -0
- 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 +14 -0
- package/Server/Services/LogAggregationService.ts +1 -0
- package/Server/Services/MetricAggregationService.ts +1 -0
- package/Server/Services/OpenTelemetryIngestService.ts +37 -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/ScheduledMaintenanceLabelRuleEngineService.ts +29 -0
- package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +67 -0
- package/Server/Services/TelemetryUsageBillingService.ts +18 -0
- package/Server/Services/TraceAggregationService.ts +1 -0
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +13 -0
- package/Server/Utils/Monitor/MonitorAlert.ts +10 -0
- package/Server/Utils/Monitor/MonitorClusterContext.ts +35 -6
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +306 -0
- package/Server/Utils/Monitor/MonitorIncident.ts +45 -0
- package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +17 -0
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +3 -0
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +26 -0
- package/Server/Utils/Telemetry/ResourceFacetResolver.ts +49 -0
- package/Server/Utils/Telemetry/Telemetry.ts +10 -0
- package/Server/Utils/Telemetry/TelemetryEntity.ts +22 -0
- package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +1 -0
- package/Tests/Types/DockerSwarm/DockerSwarmInventoryExtractor.test.ts +667 -0
- package/Tests/Types/Monitor/DockerSwarmAlertTemplates.test.ts +528 -0
- package/Types/Dashboard/DashboardComponentType.ts +7 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +2 -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/DashboardTemplates.ts +194 -0
- package/Types/DockerSwarm/DockerSwarmInventoryExtractor.ts +452 -0
- package/Types/Icon/IconProp.ts +1 -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 +21 -0
- package/Types/Monitor/MonitorStep.ts +99 -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/MonitorType.ts +42 -0
- package/Types/Monitor/PodmanAlertTemplates.ts +507 -0
- package/Types/Monitor/PodmanMetricCatalog.ts +226 -0
- package/Types/Permission.ts +465 -4
- package/Types/Podman/PodmanInventoryExtractor.ts +343 -0
- package/Types/Telemetry/EntityType.ts +12 -0
- package/Types/Telemetry/ServiceType.ts +2 -0
- package/UI/Components/Icon/Icon.tsx +57 -0
- package/UI/Components/LogsViewer/LogsViewer.tsx +44 -1
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +28 -0
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +6 -0
- package/UI/Utils/TelemetryService.ts +1 -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/Index.ts +51 -0
- package/Utils/Telemetry/EntityKey.ts +18 -0
- package/build/dist/Models/DatabaseModels/Alert.js +162 -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/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/Incident.js +162 -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 +24 -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/ScheduledMaintenance.js +108 -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/DashboardAPI.js +89 -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/TelemetryAPI.js +8 -1
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- 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/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.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/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 +1 -0
- package/build/dist/Server/Services/ExceptionAggregationService.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 +14 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +1 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +1 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +43 -13
- 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/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/TelemetryUsageBillingService.js +13 -0
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +1 -0
- package/build/dist/Server/Services/TraceAggregationService.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 +8 -0
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +35 -7
- package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +194 -0
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +35 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +9 -0
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +3 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +16 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
- 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 +18 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js +7 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- 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/DashboardTemplates.js +168 -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 +1 -0
- package/build/dist/Types/Icon/IconProp.js.map +1 -1
- 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 +69 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- 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/MonitorType.js +39 -0
- 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/Permission.js +420 -4
- 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 +12 -0
- package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
- package/build/dist/Types/Telemetry/ServiceType.js +2 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +16 -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 +6 -0
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Utils/TelemetryService.js +1 -0
- package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
- 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/Index.js +28 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/Telemetry/EntityKey.js +14 -0
- package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,455 @@
|
|
|
1
|
+
import ObjectID from "../ObjectID";
|
|
2
|
+
import MonitorStep from "./MonitorStep";
|
|
3
|
+
import MonitorCriteria from "./MonitorCriteria";
|
|
4
|
+
import MonitorCriteriaInstance from "./MonitorCriteriaInstance";
|
|
5
|
+
import FilterCondition from "../Filter/FilterCondition";
|
|
6
|
+
import { CheckOn, FilterType, EvaluateOverTimeType } from "./CriteriaFilter";
|
|
7
|
+
import MonitorStepHostMonitor from "./MonitorStepHostMonitor";
|
|
8
|
+
import RollingTime from "../RollingTime/RollingTime";
|
|
9
|
+
import MetricsAggregationType from "../Metrics/MetricsAggregationType";
|
|
10
|
+
|
|
11
|
+
export type HostAlertTemplateCategory = "Resource" | "Host";
|
|
12
|
+
|
|
13
|
+
export type HostAlertTemplateSeverity = "Critical" | "Warning";
|
|
14
|
+
|
|
15
|
+
export interface HostAlertTemplateArgs {
|
|
16
|
+
hostIdentifier: string;
|
|
17
|
+
onlineMonitorStatusId: ObjectID;
|
|
18
|
+
offlineMonitorStatusId: ObjectID;
|
|
19
|
+
defaultIncidentSeverityId: ObjectID;
|
|
20
|
+
defaultAlertSeverityId: ObjectID;
|
|
21
|
+
monitorName: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface HostAlertTemplate {
|
|
25
|
+
id: string;
|
|
26
|
+
name: string;
|
|
27
|
+
description: string;
|
|
28
|
+
category: HostAlertTemplateCategory;
|
|
29
|
+
severity: HostAlertTemplateSeverity;
|
|
30
|
+
getMonitorStep: (args: HostAlertTemplateArgs) => MonitorStep;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export function buildHostMonitorStep(args: {
|
|
34
|
+
hostMonitor: MonitorStepHostMonitor;
|
|
35
|
+
offlineCriteriaInstance: MonitorCriteriaInstance;
|
|
36
|
+
onlineCriteriaInstance: MonitorCriteriaInstance;
|
|
37
|
+
}): MonitorStep {
|
|
38
|
+
const monitorStep: MonitorStep = new MonitorStep();
|
|
39
|
+
|
|
40
|
+
const monitorCriteria: MonitorCriteria = new MonitorCriteria();
|
|
41
|
+
|
|
42
|
+
monitorCriteria.data = {
|
|
43
|
+
monitorCriteriaInstanceArray: [
|
|
44
|
+
args.offlineCriteriaInstance,
|
|
45
|
+
args.onlineCriteriaInstance,
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
monitorStep.data = {
|
|
50
|
+
id: ObjectID.generate().toString(),
|
|
51
|
+
monitorDestination: undefined,
|
|
52
|
+
doNotFollowRedirects: undefined,
|
|
53
|
+
monitorDestinationPort: undefined,
|
|
54
|
+
monitorCriteria: monitorCriteria,
|
|
55
|
+
requestType: "GET" as any,
|
|
56
|
+
requestHeaders: undefined,
|
|
57
|
+
requestBody: undefined,
|
|
58
|
+
customCode: undefined,
|
|
59
|
+
screenSizeTypes: undefined,
|
|
60
|
+
browserTypes: undefined,
|
|
61
|
+
retryCountOnError: undefined,
|
|
62
|
+
logMonitor: undefined,
|
|
63
|
+
traceMonitor: undefined,
|
|
64
|
+
metricMonitor: undefined,
|
|
65
|
+
exceptionMonitor: undefined,
|
|
66
|
+
snmpMonitor: undefined,
|
|
67
|
+
dnsMonitor: undefined,
|
|
68
|
+
domainMonitor: undefined,
|
|
69
|
+
externalStatusPageMonitor: undefined,
|
|
70
|
+
kubernetesMonitor: undefined,
|
|
71
|
+
profileMonitor: undefined,
|
|
72
|
+
hostMonitor: args.hostMonitor,
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
return monitorStep;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
export function buildHostOfflineCriteriaInstance(args: {
|
|
79
|
+
offlineMonitorStatusId: ObjectID;
|
|
80
|
+
incidentSeverityId: ObjectID;
|
|
81
|
+
alertSeverityId: ObjectID;
|
|
82
|
+
monitorName: string;
|
|
83
|
+
metricAlias: string;
|
|
84
|
+
filterType: FilterType;
|
|
85
|
+
value: number;
|
|
86
|
+
incidentTitle?: string;
|
|
87
|
+
incidentDescription?: string;
|
|
88
|
+
criteriaName?: string;
|
|
89
|
+
criteriaDescription?: string;
|
|
90
|
+
}): MonitorCriteriaInstance {
|
|
91
|
+
const instance: MonitorCriteriaInstance = new MonitorCriteriaInstance();
|
|
92
|
+
|
|
93
|
+
const incidentTitle: string =
|
|
94
|
+
args.incidentTitle || `${args.monitorName} - Alert Triggered`;
|
|
95
|
+
const incidentDescription: string =
|
|
96
|
+
args.incidentDescription ||
|
|
97
|
+
`${args.monitorName} has triggered an alert condition. See root cause for detailed host information.`;
|
|
98
|
+
|
|
99
|
+
instance.data = {
|
|
100
|
+
id: ObjectID.generate().toString(),
|
|
101
|
+
monitorStatusId: args.offlineMonitorStatusId,
|
|
102
|
+
filterCondition: FilterCondition.Any,
|
|
103
|
+
filters: [
|
|
104
|
+
{
|
|
105
|
+
checkOn: CheckOn.MetricValue,
|
|
106
|
+
filterType: args.filterType,
|
|
107
|
+
metricMonitorOptions: {
|
|
108
|
+
metricAggregationType: EvaluateOverTimeType.AnyValue,
|
|
109
|
+
metricAlias: args.metricAlias,
|
|
110
|
+
},
|
|
111
|
+
value: args.value,
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
incidents: [
|
|
115
|
+
{
|
|
116
|
+
title: incidentTitle,
|
|
117
|
+
description: incidentDescription,
|
|
118
|
+
incidentSeverityId: args.incidentSeverityId,
|
|
119
|
+
autoResolveIncident: true,
|
|
120
|
+
id: ObjectID.generate().toString(),
|
|
121
|
+
onCallPolicyIds: [],
|
|
122
|
+
},
|
|
123
|
+
],
|
|
124
|
+
alerts: [
|
|
125
|
+
{
|
|
126
|
+
title: incidentTitle,
|
|
127
|
+
description: incidentDescription,
|
|
128
|
+
alertSeverityId: args.alertSeverityId,
|
|
129
|
+
autoResolveAlert: true,
|
|
130
|
+
id: ObjectID.generate().toString(),
|
|
131
|
+
onCallPolicyIds: [],
|
|
132
|
+
},
|
|
133
|
+
],
|
|
134
|
+
changeMonitorStatus: true,
|
|
135
|
+
createIncidents: true,
|
|
136
|
+
createAlerts: true,
|
|
137
|
+
name: args.criteriaName || `${args.monitorName} - Unhealthy`,
|
|
138
|
+
description:
|
|
139
|
+
args.criteriaDescription || `Criteria for detecting unhealthy state.`,
|
|
140
|
+
};
|
|
141
|
+
|
|
142
|
+
return instance;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export function buildHostOnlineCriteriaInstance(args: {
|
|
146
|
+
onlineMonitorStatusId: ObjectID;
|
|
147
|
+
metricAlias: string;
|
|
148
|
+
filterType: FilterType;
|
|
149
|
+
value: number;
|
|
150
|
+
}): MonitorCriteriaInstance {
|
|
151
|
+
const instance: MonitorCriteriaInstance = new MonitorCriteriaInstance();
|
|
152
|
+
|
|
153
|
+
instance.data = {
|
|
154
|
+
id: ObjectID.generate().toString(),
|
|
155
|
+
monitorStatusId: args.onlineMonitorStatusId,
|
|
156
|
+
filterCondition: FilterCondition.Any,
|
|
157
|
+
filters: [
|
|
158
|
+
{
|
|
159
|
+
checkOn: CheckOn.MetricValue,
|
|
160
|
+
filterType: args.filterType,
|
|
161
|
+
metricMonitorOptions: {
|
|
162
|
+
metricAggregationType: EvaluateOverTimeType.AnyValue,
|
|
163
|
+
metricAlias: args.metricAlias,
|
|
164
|
+
},
|
|
165
|
+
value: args.value,
|
|
166
|
+
},
|
|
167
|
+
],
|
|
168
|
+
incidents: [],
|
|
169
|
+
alerts: [],
|
|
170
|
+
changeMonitorStatus: true,
|
|
171
|
+
createIncidents: false,
|
|
172
|
+
createAlerts: false,
|
|
173
|
+
name: "Healthy",
|
|
174
|
+
description: "Criteria for healthy state.",
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
return instance;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
export function buildHostMonitorConfig(args: {
|
|
181
|
+
hostIdentifier: string;
|
|
182
|
+
metricName: string;
|
|
183
|
+
metricAlias: string;
|
|
184
|
+
rollingTime: RollingTime;
|
|
185
|
+
aggregationType: MetricsAggregationType;
|
|
186
|
+
attributes?: Record<string, string>;
|
|
187
|
+
}): MonitorStepHostMonitor {
|
|
188
|
+
return {
|
|
189
|
+
hostIdentifier: args.hostIdentifier,
|
|
190
|
+
metricViewConfig: {
|
|
191
|
+
queryConfigs: [
|
|
192
|
+
{
|
|
193
|
+
metricAliasData: {
|
|
194
|
+
metricVariable: args.metricAlias,
|
|
195
|
+
title: args.metricAlias,
|
|
196
|
+
description: args.metricAlias,
|
|
197
|
+
legend: args.metricAlias,
|
|
198
|
+
legendUnit: undefined,
|
|
199
|
+
},
|
|
200
|
+
metricQueryData: {
|
|
201
|
+
filterData: {
|
|
202
|
+
metricName: args.metricName,
|
|
203
|
+
attributes: args.attributes || {},
|
|
204
|
+
aggegationType: args.aggregationType,
|
|
205
|
+
aggregateBy: {},
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
],
|
|
210
|
+
formulaConfigs: [],
|
|
211
|
+
},
|
|
212
|
+
rollingTime: args.rollingTime,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// --- Template Definitions ---
|
|
217
|
+
|
|
218
|
+
const highCpuTemplate: HostAlertTemplate = {
|
|
219
|
+
id: "host-high-cpu",
|
|
220
|
+
name: "High CPU Utilization",
|
|
221
|
+
description: "Alert when host CPU utilization exceeds 80% sustained.",
|
|
222
|
+
category: "Resource",
|
|
223
|
+
severity: "Warning",
|
|
224
|
+
getMonitorStep: (args: HostAlertTemplateArgs): MonitorStep => {
|
|
225
|
+
const metricAlias: string = "host_cpu";
|
|
226
|
+
|
|
227
|
+
return buildHostMonitorStep({
|
|
228
|
+
hostMonitor: buildHostMonitorConfig({
|
|
229
|
+
hostIdentifier: args.hostIdentifier,
|
|
230
|
+
metricName: "system.cpu.utilization",
|
|
231
|
+
metricAlias,
|
|
232
|
+
rollingTime: RollingTime.Past5Minutes,
|
|
233
|
+
aggregationType: MetricsAggregationType.Avg,
|
|
234
|
+
}),
|
|
235
|
+
offlineCriteriaInstance: buildHostOfflineCriteriaInstance({
|
|
236
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
237
|
+
incidentSeverityId: args.defaultIncidentSeverityId,
|
|
238
|
+
alertSeverityId: args.defaultAlertSeverityId,
|
|
239
|
+
monitorName: args.monitorName,
|
|
240
|
+
metricAlias,
|
|
241
|
+
filterType: FilterType.GreaterThan,
|
|
242
|
+
// system.cpu.utilization is a [0, 1] ratio, so 0.8 == 80%.
|
|
243
|
+
value: 0.8,
|
|
244
|
+
incidentTitle: `[Host] High CPU Utilization (>80%) - ${args.monitorName}`,
|
|
245
|
+
incidentDescription: `A monitored host's CPU utilization has exceeded 80%. Sustained high CPU usage can cause performance degradation. Check the root cause for the specific host details.`,
|
|
246
|
+
criteriaName: "High CPU - Utilization > 80%",
|
|
247
|
+
criteriaDescription:
|
|
248
|
+
"Triggers when host CPU utilization exceeds 80% over the monitoring window.",
|
|
249
|
+
}),
|
|
250
|
+
onlineCriteriaInstance: buildHostOnlineCriteriaInstance({
|
|
251
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
252
|
+
metricAlias,
|
|
253
|
+
filterType: FilterType.LessThanOrEqualTo,
|
|
254
|
+
value: 0.8,
|
|
255
|
+
}),
|
|
256
|
+
});
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
|
|
260
|
+
const highMemoryTemplate: HostAlertTemplate = {
|
|
261
|
+
id: "host-high-memory",
|
|
262
|
+
name: "High Memory Utilization",
|
|
263
|
+
description: "Alert when host memory utilization exceeds 85%.",
|
|
264
|
+
category: "Resource",
|
|
265
|
+
severity: "Warning",
|
|
266
|
+
getMonitorStep: (args: HostAlertTemplateArgs): MonitorStep => {
|
|
267
|
+
const metricAlias: string = "host_memory";
|
|
268
|
+
|
|
269
|
+
return buildHostMonitorStep({
|
|
270
|
+
hostMonitor: buildHostMonitorConfig({
|
|
271
|
+
hostIdentifier: args.hostIdentifier,
|
|
272
|
+
metricName: "system.memory.utilization",
|
|
273
|
+
metricAlias,
|
|
274
|
+
rollingTime: RollingTime.Past5Minutes,
|
|
275
|
+
aggregationType: MetricsAggregationType.Avg,
|
|
276
|
+
}),
|
|
277
|
+
offlineCriteriaInstance: buildHostOfflineCriteriaInstance({
|
|
278
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
279
|
+
incidentSeverityId: args.defaultIncidentSeverityId,
|
|
280
|
+
alertSeverityId: args.defaultAlertSeverityId,
|
|
281
|
+
monitorName: args.monitorName,
|
|
282
|
+
metricAlias,
|
|
283
|
+
filterType: FilterType.GreaterThan,
|
|
284
|
+
// system.memory.utilization is a [0, 1] ratio, so 0.85 == 85%.
|
|
285
|
+
value: 0.85,
|
|
286
|
+
incidentTitle: `[Host] High Memory Utilization (>85%) - ${args.monitorName}`,
|
|
287
|
+
incidentDescription: `A monitored host's memory utilization has exceeded 85%. High memory usage can lead to swapping and OOM kills. Check the root cause for the specific host details.`,
|
|
288
|
+
criteriaName: "High Memory - Utilization > 85%",
|
|
289
|
+
criteriaDescription:
|
|
290
|
+
"Triggers when host memory utilization exceeds 85% over the monitoring window.",
|
|
291
|
+
}),
|
|
292
|
+
onlineCriteriaInstance: buildHostOnlineCriteriaInstance({
|
|
293
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
294
|
+
metricAlias,
|
|
295
|
+
filterType: FilterType.LessThanOrEqualTo,
|
|
296
|
+
value: 0.85,
|
|
297
|
+
}),
|
|
298
|
+
});
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
|
|
302
|
+
const highFilesystemUsageTemplate: HostAlertTemplate = {
|
|
303
|
+
id: "host-high-filesystem",
|
|
304
|
+
name: "High Filesystem Usage",
|
|
305
|
+
description: "Alert when host filesystem utilization exceeds 90%.",
|
|
306
|
+
category: "Resource",
|
|
307
|
+
severity: "Critical",
|
|
308
|
+
getMonitorStep: (args: HostAlertTemplateArgs): MonitorStep => {
|
|
309
|
+
const metricAlias: string = "host_filesystem";
|
|
310
|
+
|
|
311
|
+
return buildHostMonitorStep({
|
|
312
|
+
hostMonitor: buildHostMonitorConfig({
|
|
313
|
+
hostIdentifier: args.hostIdentifier,
|
|
314
|
+
metricName: "system.filesystem.utilization",
|
|
315
|
+
metricAlias,
|
|
316
|
+
rollingTime: RollingTime.Past5Minutes,
|
|
317
|
+
/*
|
|
318
|
+
* Use Max so a single full filesystem trips the threshold instead of
|
|
319
|
+
* being diluted by averaging across multiple mounted filesystems.
|
|
320
|
+
*/
|
|
321
|
+
aggregationType: MetricsAggregationType.Max,
|
|
322
|
+
}),
|
|
323
|
+
offlineCriteriaInstance: buildHostOfflineCriteriaInstance({
|
|
324
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
325
|
+
incidentSeverityId: args.defaultIncidentSeverityId,
|
|
326
|
+
alertSeverityId: args.defaultAlertSeverityId,
|
|
327
|
+
monitorName: args.monitorName,
|
|
328
|
+
metricAlias,
|
|
329
|
+
filterType: FilterType.GreaterThan,
|
|
330
|
+
// system.filesystem.utilization is a [0, 1] ratio, so 0.9 == 90%.
|
|
331
|
+
value: 0.9,
|
|
332
|
+
incidentTitle: `[Host] High Filesystem Usage (>90%) - ${args.monitorName}`,
|
|
333
|
+
incidentDescription: `A monitored host's filesystem utilization has exceeded 90%. A full disk can cause application failures and data loss. Check the root cause for the specific host and free up disk space.`,
|
|
334
|
+
criteriaName: "High Filesystem - Usage > 90%",
|
|
335
|
+
criteriaDescription:
|
|
336
|
+
"Triggers when any host filesystem exceeds 90% utilization over the monitoring window.",
|
|
337
|
+
}),
|
|
338
|
+
onlineCriteriaInstance: buildHostOnlineCriteriaInstance({
|
|
339
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
340
|
+
metricAlias,
|
|
341
|
+
filterType: FilterType.LessThanOrEqualTo,
|
|
342
|
+
value: 0.9,
|
|
343
|
+
}),
|
|
344
|
+
});
|
|
345
|
+
},
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
const highLoadAverageTemplate: HostAlertTemplate = {
|
|
349
|
+
id: "host-high-load-average",
|
|
350
|
+
name: "High Load Average (1m)",
|
|
351
|
+
description:
|
|
352
|
+
"Alert when the host's 1-minute load average exceeds 4, indicating sustained CPU contention.",
|
|
353
|
+
category: "Resource",
|
|
354
|
+
severity: "Warning",
|
|
355
|
+
getMonitorStep: (args: HostAlertTemplateArgs): MonitorStep => {
|
|
356
|
+
const metricAlias: string = "host_load_1m";
|
|
357
|
+
|
|
358
|
+
return buildHostMonitorStep({
|
|
359
|
+
hostMonitor: buildHostMonitorConfig({
|
|
360
|
+
hostIdentifier: args.hostIdentifier,
|
|
361
|
+
metricName: "system.cpu.load_average.1m",
|
|
362
|
+
metricAlias,
|
|
363
|
+
rollingTime: RollingTime.Past5Minutes,
|
|
364
|
+
aggregationType: MetricsAggregationType.Avg,
|
|
365
|
+
}),
|
|
366
|
+
offlineCriteriaInstance: buildHostOfflineCriteriaInstance({
|
|
367
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
368
|
+
incidentSeverityId: args.defaultIncidentSeverityId,
|
|
369
|
+
alertSeverityId: args.defaultAlertSeverityId,
|
|
370
|
+
monitorName: args.monitorName,
|
|
371
|
+
metricAlias,
|
|
372
|
+
filterType: FilterType.GreaterThan,
|
|
373
|
+
value: 4,
|
|
374
|
+
incidentTitle: `[Host] High Load Average (1m > 4) - ${args.monitorName}`,
|
|
375
|
+
incidentDescription: `A monitored host's 1-minute load average has exceeded 4. A sustained high load average indicates CPU contention or runaway processes. Compare against the host's core count and check the root cause.`,
|
|
376
|
+
criteriaName: "High Load - 1m Average > 4",
|
|
377
|
+
criteriaDescription:
|
|
378
|
+
"Triggers when the host's 1-minute load average exceeds 4 over the monitoring window.",
|
|
379
|
+
}),
|
|
380
|
+
onlineCriteriaInstance: buildHostOnlineCriteriaInstance({
|
|
381
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
382
|
+
metricAlias,
|
|
383
|
+
filterType: FilterType.LessThanOrEqualTo,
|
|
384
|
+
value: 4,
|
|
385
|
+
}),
|
|
386
|
+
});
|
|
387
|
+
},
|
|
388
|
+
};
|
|
389
|
+
|
|
390
|
+
const highProcessCountTemplate: HostAlertTemplate = {
|
|
391
|
+
id: "host-high-processes",
|
|
392
|
+
name: "High Process Count",
|
|
393
|
+
description:
|
|
394
|
+
"Alert when the host has an unusually high number of processes, which may indicate a fork bomb or resource leak.",
|
|
395
|
+
category: "Host",
|
|
396
|
+
severity: "Warning",
|
|
397
|
+
getMonitorStep: (args: HostAlertTemplateArgs): MonitorStep => {
|
|
398
|
+
const metricAlias: string = "host_processes";
|
|
399
|
+
|
|
400
|
+
return buildHostMonitorStep({
|
|
401
|
+
hostMonitor: buildHostMonitorConfig({
|
|
402
|
+
hostIdentifier: args.hostIdentifier,
|
|
403
|
+
metricName: "system.processes.count",
|
|
404
|
+
metricAlias,
|
|
405
|
+
rollingTime: RollingTime.Past5Minutes,
|
|
406
|
+
aggregationType: MetricsAggregationType.Max,
|
|
407
|
+
}),
|
|
408
|
+
offlineCriteriaInstance: buildHostOfflineCriteriaInstance({
|
|
409
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
410
|
+
incidentSeverityId: args.defaultIncidentSeverityId,
|
|
411
|
+
alertSeverityId: args.defaultAlertSeverityId,
|
|
412
|
+
monitorName: args.monitorName,
|
|
413
|
+
metricAlias,
|
|
414
|
+
filterType: FilterType.GreaterThan,
|
|
415
|
+
value: 2000,
|
|
416
|
+
incidentTitle: `[Host] High Process Count (>2000) - ${args.monitorName}`,
|
|
417
|
+
incidentDescription: `A monitored host has an unusually high number of processes (>2000). This may indicate a fork bomb, resource leak, or misconfigured application. Check the host for runaway processes.`,
|
|
418
|
+
criteriaName: "High Processes - Count > 2000",
|
|
419
|
+
criteriaDescription: "Triggers when host process count exceeds 2000.",
|
|
420
|
+
}),
|
|
421
|
+
onlineCriteriaInstance: buildHostOnlineCriteriaInstance({
|
|
422
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
423
|
+
metricAlias,
|
|
424
|
+
filterType: FilterType.LessThanOrEqualTo,
|
|
425
|
+
value: 2000,
|
|
426
|
+
}),
|
|
427
|
+
});
|
|
428
|
+
},
|
|
429
|
+
};
|
|
430
|
+
|
|
431
|
+
export function getAllHostAlertTemplates(): Array<HostAlertTemplate> {
|
|
432
|
+
return [
|
|
433
|
+
highCpuTemplate,
|
|
434
|
+
highMemoryTemplate,
|
|
435
|
+
highFilesystemUsageTemplate,
|
|
436
|
+
highLoadAverageTemplate,
|
|
437
|
+
highProcessCountTemplate,
|
|
438
|
+
];
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
export function getHostAlertTemplatesByCategory(
|
|
442
|
+
category: HostAlertTemplateCategory,
|
|
443
|
+
): Array<HostAlertTemplate> {
|
|
444
|
+
return getAllHostAlertTemplates().filter((template: HostAlertTemplate) => {
|
|
445
|
+
return template.category === category;
|
|
446
|
+
});
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
export function getHostAlertTemplateById(
|
|
450
|
+
id: string,
|
|
451
|
+
): HostAlertTemplate | undefined {
|
|
452
|
+
return getAllHostAlertTemplates().find((template: HostAlertTemplate) => {
|
|
453
|
+
return template.id === id;
|
|
454
|
+
});
|
|
455
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import MetricsAggregationType from "../Metrics/MetricsAggregationType";
|
|
2
|
+
|
|
3
|
+
export type HostMetricCategory =
|
|
4
|
+
| "CPU"
|
|
5
|
+
| "Memory"
|
|
6
|
+
| "Disk"
|
|
7
|
+
| "Network"
|
|
8
|
+
| "Load"
|
|
9
|
+
| "Processes";
|
|
10
|
+
|
|
11
|
+
export interface HostMetricDefinition {
|
|
12
|
+
id: string;
|
|
13
|
+
friendlyName: string;
|
|
14
|
+
description: string;
|
|
15
|
+
metricName: string;
|
|
16
|
+
category: HostMetricCategory;
|
|
17
|
+
defaultAggregation: MetricsAggregationType;
|
|
18
|
+
unit?: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* These are the real OpenTelemetry host metrics emitted by the OneUptime
|
|
23
|
+
* Infrastructure Agent's hostmetrics receiver (the Hosts product). The
|
|
24
|
+
* utilization metrics (system.cpu.utilization, system.memory.utilization,
|
|
25
|
+
* system.filesystem.utilization) are reported as a [0, 1] ratio by the OTel
|
|
26
|
+
* host receiver, so the friendly unit is "ratio" — the dashboard auto-scales
|
|
27
|
+
* these to percent at render time.
|
|
28
|
+
*/
|
|
29
|
+
const hostMetricCatalog: Array<HostMetricDefinition> = [
|
|
30
|
+
// CPU Metrics
|
|
31
|
+
{
|
|
32
|
+
id: "system-cpu-utilization",
|
|
33
|
+
friendlyName: "CPU Utilization",
|
|
34
|
+
description:
|
|
35
|
+
"Host CPU utilization as a ratio (0 to 1). 1.0 = all cores fully busy.",
|
|
36
|
+
metricName: "system.cpu.utilization",
|
|
37
|
+
category: "CPU",
|
|
38
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
39
|
+
unit: "ratio",
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: "process-cpu-utilization",
|
|
43
|
+
friendlyName: "Process CPU Utilization",
|
|
44
|
+
description:
|
|
45
|
+
"Per-process CPU utilization as a ratio (0 to 1) for processes running on the host.",
|
|
46
|
+
metricName: "process.cpu.utilization",
|
|
47
|
+
category: "CPU",
|
|
48
|
+
defaultAggregation: MetricsAggregationType.Max,
|
|
49
|
+
unit: "ratio",
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
// Memory Metrics
|
|
53
|
+
{
|
|
54
|
+
id: "system-memory-utilization",
|
|
55
|
+
friendlyName: "Memory Utilization",
|
|
56
|
+
description:
|
|
57
|
+
"Host memory utilization as a ratio (0 to 1) of total physical memory in use.",
|
|
58
|
+
metricName: "system.memory.utilization",
|
|
59
|
+
category: "Memory",
|
|
60
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
61
|
+
unit: "ratio",
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: "system-memory-usage",
|
|
65
|
+
friendlyName: "Memory Usage",
|
|
66
|
+
description: "Host memory usage in bytes.",
|
|
67
|
+
metricName: "system.memory.usage",
|
|
68
|
+
category: "Memory",
|
|
69
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
70
|
+
unit: "bytes",
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
// Disk / Filesystem Metrics
|
|
74
|
+
{
|
|
75
|
+
id: "system-filesystem-utilization",
|
|
76
|
+
friendlyName: "Filesystem Utilization",
|
|
77
|
+
description:
|
|
78
|
+
"Filesystem utilization as a ratio (0 to 1) of total disk capacity in use.",
|
|
79
|
+
metricName: "system.filesystem.utilization",
|
|
80
|
+
category: "Disk",
|
|
81
|
+
defaultAggregation: MetricsAggregationType.Max,
|
|
82
|
+
unit: "ratio",
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
id: "system-filesystem-usage",
|
|
86
|
+
friendlyName: "Filesystem Usage",
|
|
87
|
+
description: "Filesystem usage in bytes.",
|
|
88
|
+
metricName: "system.filesystem.usage",
|
|
89
|
+
category: "Disk",
|
|
90
|
+
defaultAggregation: MetricsAggregationType.Max,
|
|
91
|
+
unit: "bytes",
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
// Network Metrics
|
|
95
|
+
{
|
|
96
|
+
id: "system-network-io",
|
|
97
|
+
friendlyName: "Network I/O",
|
|
98
|
+
description:
|
|
99
|
+
"Cumulative network bytes transferred (received + transmitted) by the host.",
|
|
100
|
+
metricName: "system.network.io",
|
|
101
|
+
category: "Network",
|
|
102
|
+
defaultAggregation: MetricsAggregationType.Sum,
|
|
103
|
+
unit: "bytes",
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
// Load Average Metrics
|
|
107
|
+
{
|
|
108
|
+
id: "system-cpu-load-average-1m",
|
|
109
|
+
friendlyName: "Load Average (1m)",
|
|
110
|
+
description: "Host CPU load average over the last 1 minute.",
|
|
111
|
+
metricName: "system.cpu.load_average.1m",
|
|
112
|
+
category: "Load",
|
|
113
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
114
|
+
unit: "count",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: "system-cpu-load-average-5m",
|
|
118
|
+
friendlyName: "Load Average (5m)",
|
|
119
|
+
description: "Host CPU load average over the last 5 minutes.",
|
|
120
|
+
metricName: "system.cpu.load_average.5m",
|
|
121
|
+
category: "Load",
|
|
122
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
123
|
+
unit: "count",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: "system-cpu-load-average-15m",
|
|
127
|
+
friendlyName: "Load Average (15m)",
|
|
128
|
+
description: "Host CPU load average over the last 15 minutes.",
|
|
129
|
+
metricName: "system.cpu.load_average.15m",
|
|
130
|
+
category: "Load",
|
|
131
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
132
|
+
unit: "count",
|
|
133
|
+
},
|
|
134
|
+
|
|
135
|
+
// Process Metrics
|
|
136
|
+
{
|
|
137
|
+
id: "system-processes-count",
|
|
138
|
+
friendlyName: "Process Count",
|
|
139
|
+
description: "Number of processes running on the host.",
|
|
140
|
+
metricName: "system.processes.count",
|
|
141
|
+
category: "Processes",
|
|
142
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
143
|
+
unit: "count",
|
|
144
|
+
},
|
|
145
|
+
];
|
|
146
|
+
|
|
147
|
+
export function getAllHostMetrics(): Array<HostMetricDefinition> {
|
|
148
|
+
return hostMetricCatalog;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export function getHostMetricsByCategory(
|
|
152
|
+
category: HostMetricCategory,
|
|
153
|
+
): Array<HostMetricDefinition> {
|
|
154
|
+
return hostMetricCatalog.filter((m: HostMetricDefinition) => {
|
|
155
|
+
return m.category === category;
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export function getHostMetricById(
|
|
160
|
+
id: string,
|
|
161
|
+
): HostMetricDefinition | undefined {
|
|
162
|
+
return hostMetricCatalog.find((m: HostMetricDefinition) => {
|
|
163
|
+
return m.id === id;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export function getHostMetricByMetricName(
|
|
168
|
+
metricName: string,
|
|
169
|
+
): HostMetricDefinition | undefined {
|
|
170
|
+
return hostMetricCatalog.find((m: HostMetricDefinition) => {
|
|
171
|
+
return m.metricName === metricName;
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export function getAllHostMetricCategories(): Array<HostMetricCategory> {
|
|
176
|
+
return ["CPU", "Memory", "Disk", "Network", "Load", "Processes"];
|
|
177
|
+
}
|
|
@@ -66,6 +66,26 @@ export interface CephResourceBreakdown {
|
|
|
66
66
|
attributes: Dictionary<string>;
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
+
export interface DockerSwarmAffectedResource {
|
|
70
|
+
/** `container.name` datapoint label — a Swarm task's container is `<service>.<slot>.<taskid>`. */
|
|
71
|
+
containerName?: string | undefined;
|
|
72
|
+
/** `container.image.name` datapoint label, when present. */
|
|
73
|
+
containerImage?: string | undefined;
|
|
74
|
+
/** `docker.swarm.node.name` datapoint label, when the agent stamps it. */
|
|
75
|
+
nodeName?: string | undefined;
|
|
76
|
+
/** `docker.swarm.service.name` datapoint label, when the agent stamps it. */
|
|
77
|
+
serviceName?: string | undefined;
|
|
78
|
+
metricValue: number;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface DockerSwarmResourceBreakdown {
|
|
82
|
+
clusterName: string;
|
|
83
|
+
metricName: string;
|
|
84
|
+
metricFriendlyName: string;
|
|
85
|
+
affectedResources: Array<DockerSwarmAffectedResource>;
|
|
86
|
+
attributes: Dictionary<string>;
|
|
87
|
+
}
|
|
88
|
+
|
|
69
89
|
export default interface MetricMonitorResponse {
|
|
70
90
|
projectId: ObjectID;
|
|
71
91
|
startAndEndDate?: InBetween<Date>;
|
|
@@ -76,6 +96,7 @@ export default interface MetricMonitorResponse {
|
|
|
76
96
|
kubernetesResourceBreakdown?: KubernetesResourceBreakdown | undefined;
|
|
77
97
|
proxmoxResourceBreakdown?: ProxmoxResourceBreakdown | undefined;
|
|
78
98
|
cephResourceBreakdown?: CephResourceBreakdown | undefined;
|
|
99
|
+
dockerSwarmResourceBreakdown?: DockerSwarmResourceBreakdown | undefined;
|
|
79
100
|
/**
|
|
80
101
|
* Per-series breakdown when any queryConfig sets groupByAttributeKeys.
|
|
81
102
|
* Each entry carries a fingerprint, the label values identifying that
|