@oneuptime/common 11.7.2 → 11.7.4
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/AnalyticsModels/KubernetesCostAllocation.ts +103 -0
- package/Models/DatabaseModels/AlertEpisodeStateTimeline.ts +1 -0
- package/Models/DatabaseModels/AlertStateTimeline.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +1 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -0
- package/Models/DatabaseModels/Index.ts +5 -0
- package/Models/DatabaseModels/LogDropFilter.ts +89 -0
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +13 -3
- package/Models/DatabaseModels/RecommendationDismissal.ts +463 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +1 -0
- package/Models/DatabaseModels/StatusPageGroup.ts +95 -0
- package/Models/DatabaseModels/TableView.ts +40 -0
- package/Models/DatabaseModels/TraceDropFilter.ts +89 -0
- package/Models/DatabaseModels/WorkflowVariable.ts +5 -1
- package/Server/API/AlertAPI.ts +32 -17
- package/Server/API/BaseAPI.ts +31 -2
- package/Server/API/BaseAnalyticsAPI.ts +36 -2
- package/Server/API/CommonAPI.ts +57 -0
- package/Server/API/IncidentAPI.ts +60 -33
- package/Server/API/IncidentEpisodeAPI.ts +31 -16
- package/Server/API/MonitorAPI.ts +30 -0
- package/Server/API/MonitorTemplateAPI.ts +8 -0
- package/Server/API/ProbeAPI.ts +196 -15
- package/Server/API/ProjectAPI.ts +79 -1
- package/Server/API/ScheduledMaintenanceAPI.ts +33 -18
- package/Server/API/StatusPageAPI.ts +74 -37
- package/Server/API/WorkspaceNotificationRuleAPI.ts +34 -4
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.ts +13 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785320000000-RepairCrossProjectIncidentReferences.ts +527 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785329453269-AddParentGroupToStatusPageGroup.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785397674289-AddRecommendationDismissalTable.ts +55 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785405581596-AddDroppedCountersToDropFilters.ts +53 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Services/AlertEpisodeService.ts +47 -0
- package/Server/Services/AlertService.ts +125 -0
- package/Server/Services/BillingService.ts +98 -0
- package/Server/Services/DatabaseService.ts +184 -20
- package/Server/Services/IncidentEpisodeService.ts +47 -0
- package/Server/Services/IncidentService.ts +123 -0
- package/Server/Services/IncidentTemplateService.ts +123 -1
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/LogDropFilterService.ts +133 -0
- package/Server/Services/MonitorProbeService.ts +94 -4
- package/Server/Services/MonitorService.ts +48 -43
- package/Server/Services/NetworkDeviceDiscoveryScanService.ts +70 -0
- package/Server/Services/ProbeService.ts +66 -0
- package/Server/Services/ProjectService.ts +131 -7
- package/Server/Services/RecommendationDismissalService.ts +52 -0
- package/Server/Services/RunbookAgentJobService.ts +68 -7
- package/Server/Services/ScheduledMaintenanceService.ts +103 -0
- package/Server/Services/ScheduledMaintenanceTemplateService.ts +90 -0
- package/Server/Services/StatusPageGroupService.ts +186 -0
- package/Server/Services/TraceDropFilterService.ts +133 -0
- package/Server/Types/Workflow/Components/API/Delete.ts +12 -0
- package/Server/Types/Workflow/Components/API/Get.ts +12 -0
- package/Server/Types/Workflow/Components/API/Patch.ts +12 -0
- package/Server/Types/Workflow/Components/API/Post.ts +12 -0
- package/Server/Types/Workflow/Components/API/Put.ts +13 -0
- package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +212 -0
- package/Server/Utils/DropFilterValidation.ts +127 -0
- package/Server/Utils/Errors.ts +5 -0
- package/Server/Utils/Monitor/MonitorAlert.ts +28 -1
- package/Server/Utils/Monitor/MonitorIncident.ts +31 -2
- package/Server/Utils/Telemetry/AppMetrics.ts +31 -0
- package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +16 -0
- package/Tests/Models/DatabaseModels/MonitorProbeColumnAccessControl.test.ts +196 -0
- package/Tests/Models/RecommendationDismissalModel.test.ts +269 -0
- package/Tests/Server/API/BaseAPIUpdatePayloadValidation.test.ts +320 -0
- package/Tests/Server/API/BaseAnalyticsAPIUpdatePayloadValidation.test.ts +293 -0
- package/Tests/Server/API/CommonAPIAuthGuard.test.ts +164 -0
- package/Tests/Server/API/ProbeAPI.test.ts +422 -53
- package/Tests/Server/API/ProjectAPI.test.ts +180 -0
- package/Tests/Server/API/ProjectAPIExtendTrialBillingDisabled.test.ts +138 -0
- package/Tests/Server/API/ProjectScopedCustomRouteAuth.test.ts +458 -0
- package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +359 -0
- package/Tests/Server/Infrastructure/ProcessSignalDelivery.test.ts +427 -0
- package/Tests/Server/Services/BillingServiceExtendTrial.test.ts +439 -0
- package/Tests/Server/Services/CrossProjectReferenceWriteGuard.test.ts +810 -0
- package/Tests/Server/Services/DatabaseServiceAtomicAddToColumns.test.ts +269 -0
- package/Tests/Server/Services/DatabaseServiceEmptyUpdate.test.ts +277 -0
- package/Tests/Server/Services/DatabaseServiceSortColumnSelect.test.ts +201 -0
- package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +81 -23
- package/Tests/Server/Services/DropFilterSaveValidation.test.ts +398 -0
- package/Tests/Server/Services/MonitorProbeDeleteHooks.test.ts +280 -0
- package/Tests/Server/Services/MonitorProbeServiceProbeTenancy.test.ts +304 -0
- package/Tests/Server/Services/NetworkDeviceDiscoveryScanService.test.ts +262 -0
- package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +614 -0
- package/Tests/Server/Services/RecommendationDismissalService.test.ts +306 -0
- package/Tests/Server/Services/RepairCrossProjectIncidentReferencesMigration.test.ts +528 -0
- package/Tests/Server/Services/StatusPageGroupNesting.test.ts +395 -0
- package/Tests/Server/TestingUtils/Services/BillingServiceHelper.ts +26 -21
- package/Tests/Server/Types/Database/Permissions/WorkflowVariableColumnPermission.test.ts +227 -0
- package/Tests/Server/Types/Workflow/Components/ApiComponentErrorPort.test.ts +285 -0
- package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +463 -0
- package/Tests/Server/Utils/DropFilterValidation.test.ts +269 -0
- package/Tests/Server/Utils/Telemetry/SpanUtil.test.ts +94 -0
- package/Tests/Types/DateUserTimezone.test.ts +52 -0
- package/Tests/Types/JSONFunctions.test.ts +103 -1
- package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +177 -9
- package/Tests/Types/Monitor/MonitorStepDnsMonitor.test.ts +105 -0
- package/Tests/Types/Monitor/MonitorStepDnssecMonitor.test.ts +131 -0
- package/Tests/Types/Monitor/MonitorStepDomainMonitor.test.ts +60 -0
- package/Tests/Types/Monitor/MonitorStepExternalStatusPageMonitor.test.ts +82 -0
- package/Tests/Types/Monitor/MonitorStepInfrastructureMonitors.test.ts +268 -0
- package/Tests/Types/Monitor/MonitorStepMetricMonitor.test.ts +386 -0
- package/Tests/Types/Monitor/MonitorStepProfileMonitor.test.ts +185 -0
- package/Tests/Types/Monitor/MonitorStepSnmpMonitor.test.ts +156 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +371 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +901 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +607 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.test.ts +754 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +960 -0
- package/Tests/Types/RollingTime/RollingTimeUtil.test.ts +186 -0
- package/Tests/Types/Runbook/RunbookStepTimeout.test.ts +410 -0
- package/Tests/Types/Telemetry/DropFilterSampling.test.ts +241 -0
- package/Tests/Types/Workspace/NotificationRuleConditionUtil.test.ts +353 -0
- package/Tests/Types/Workspace/NotificationRuleUtil.test.ts +566 -0
- package/Tests/UI/Components/CodeEditor.test.tsx +174 -0
- package/Tests/UI/Components/ErrorBoundary.test.tsx +555 -24
- package/Tests/UI/Components/InfoCard.test.tsx +358 -0
- package/Tests/UI/Components/LogTimeRangePicker.test.tsx +138 -0
- package/Tests/UI/Components/Modal.test.tsx +43 -5
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +679 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableSearchLabels.test.tsx +397 -0
- package/Tests/UI/Components/ModelTable/ColumnCustomizationModal.test.tsx +999 -0
- package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +1678 -0
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1094 -0
- package/Tests/UI/Components/Runbook/StepTimeoutInput.test.tsx +386 -0
- package/Tests/UI/Components/StatusPage/ResourceGroupSection.test.tsx +671 -0
- package/Tests/UI/Components/TelemetryTimeRangePicker.test.tsx +404 -0
- package/Tests/UI/Utils/DropdownAlignment.test.ts +306 -0
- package/Tests/UI/Utils/TableFilterUrlState.test.ts +292 -0
- package/Tests/Utils/Monitor/MonitorSummaryProbeUtil.test.ts +263 -0
- package/Tests/Utils/NetworkDiscovery/ScanTargetUtil.test.ts +583 -0
- package/Tests/Utils/StatusPage/GroupNestingLayout.test.ts +1072 -0
- package/Tests/Utils/StatusPage/GroupTree.test.ts +583 -0
- package/Tests/Utils/StatusPage/ResourceUptime.test.ts +411 -0
- package/Tests/Utils/UserPreferences.test.ts +563 -0
- package/Types/Date.ts +15 -6
- package/Types/JSONFunctions.ts +7 -2
- package/Types/Kubernetes/KubernetesCostIngest.ts +37 -1
- package/Types/Monitor/KubernetesAlertTemplates.ts +205 -0
- package/Types/Monitor/MonitorStep.ts +10 -1
- package/Types/Monitor/MonitorStepMetricMonitor.ts +46 -1
- package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +413 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.ts +168 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +175 -0
- package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +743 -0
- package/Types/Permission.ts +45 -0
- package/Types/Recommendation/RecommendationType.ts +20 -0
- package/Types/Runbook/RunbookExecutionDeadline.ts +129 -0
- package/Types/Runbook/RunbookStepTimeout.ts +202 -0
- package/Types/Telemetry/DropFilterSampling.ts +92 -0
- package/UI/Components/AI/GenerateFromAIModal.tsx +0 -2
- package/UI/Components/Accordion/Accordion.tsx +10 -2
- package/UI/Components/BulkUpdate/BulkLabelActions.tsx +0 -1
- package/UI/Components/CodeEditor/CodeEditor.tsx +34 -20
- package/UI/Components/Date/RangeStartAndEndDateView.tsx +0 -1
- package/UI/Components/EditionLabel/EditionLabel.tsx +1 -27
- package/UI/Components/Error/PageError.tsx +0 -4
- package/UI/Components/ErrorBoundary.tsx +252 -15
- package/UI/Components/InfoCard/InfoCard.tsx +58 -1
- package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +34 -1
- package/UI/Components/MasterPage/MasterPage.tsx +65 -0
- package/UI/Components/Modal/Modal.tsx +16 -60
- package/UI/Components/ModelFormModal/ModelFormModal.tsx +0 -8
- package/UI/Components/ModelTable/BaseModelTable.tsx +503 -71
- package/UI/Components/ModelTable/Column.ts +17 -0
- package/UI/Components/ModelTable/ColumnCustomizationModal.tsx +523 -0
- package/UI/Components/ModelTable/ColumnPreference.ts +482 -0
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +326 -0
- package/UI/Components/ModelTable/TableView.tsx +24 -2
- package/UI/Components/ModelTable/useCustomFieldColumns.ts +150 -0
- package/UI/Components/Runbook/StepTimeoutInput.tsx +173 -0
- package/UI/Components/SideMenu/SideMenu.tsx +24 -4
- package/UI/Components/StatusPage/ResourceGroupSection.tsx +231 -0
- package/UI/Components/Table/Table.tsx +14 -1
- package/UI/Components/Table/TableRow.tsx +180 -175
- package/UI/Components/Table/Types/Column.ts +2 -0
- package/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.tsx +34 -1
- package/UI/Utils/DropdownAlignment.ts +162 -0
- package/UI/Utils/TableFilterUrlState.ts +59 -20
- package/Utils/API.ts +106 -2
- package/Utils/Monitor/MonitorSummaryProbeUtil.ts +130 -0
- package/Utils/NetworkDiscovery/ScanTargetUtil.ts +434 -0
- package/Utils/StatusPage/GroupNestingLayout.ts +343 -0
- package/Utils/StatusPage/GroupTree.ts +307 -0
- package/Utils/StatusPage/ResourceUptime.ts +90 -17
- package/Utils/UserPreferences.ts +53 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +86 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogDropFilter.js +91 -0
- package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +14 -4
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/RecommendationDismissal.js +484 -0
- package/build/dist/Models/DatabaseModels/RecommendationDismissal.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js +94 -0
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TableView.js +40 -0
- package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js +91 -0
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js +5 -1
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
- package/build/dist/Server/API/AlertAPI.js +22 -13
- package/build/dist/Server/API/AlertAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +22 -1
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAnalyticsAPI.js +24 -1
- package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +42 -0
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentAPI.js +43 -26
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js +21 -12
- package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
- package/build/dist/Server/API/MonitorAPI.js +23 -0
- package/build/dist/Server/API/MonitorAPI.js.map +1 -1
- package/build/dist/Server/API/MonitorTemplateAPI.js +4 -0
- package/build/dist/Server/API/MonitorTemplateAPI.js.map +1 -1
- package/build/dist/Server/API/ProbeAPI.js +131 -15
- package/build/dist/Server/API/ProbeAPI.js.map +1 -1
- package/build/dist/Server/API/ProjectAPI.js +62 -3
- package/build/dist/Server/API/ProjectAPI.js.map +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js +23 -14
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +61 -33
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/API/WorkspaceNotificationRuleAPI.js +26 -2
- package/build/dist/Server/API/WorkspaceNotificationRuleAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785320000000-RepairCrossProjectIncidentReferences.js +397 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785320000000-RepairCrossProjectIncidentReferences.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785329453269-AddParentGroupToStatusPageGroup.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785329453269-AddParentGroupToStatusPageGroup.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785397674289-AddRecommendationDismissalTable.js +30 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785397674289-AddRecommendationDismissalTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785405581596-AddDroppedCountersToDropFilters.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785405581596-AddDroppedCountersToDropFilters.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/Services/AlertEpisodeService.js +39 -0
- package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +95 -0
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/BillingService.js +71 -0
- package/build/dist/Server/Services/BillingService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +140 -17
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeService.js +39 -0
- package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +100 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/IncidentTemplateService.js +97 -0
- package/build/dist/Server/Services/IncidentTemplateService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LogDropFilterService.js +93 -0
- package/build/dist/Server/Services/LogDropFilterService.js.map +1 -1
- package/build/dist/Server/Services/MonitorProbeService.js +73 -5
- package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +34 -39
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +71 -0
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -1
- package/build/dist/Server/Services/ProbeService.js +64 -0
- package/build/dist/Server/Services/ProbeService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +103 -7
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/RecommendationDismissalService.js +50 -0
- package/build/dist/Server/Services/RecommendationDismissalService.js.map +1 -0
- package/build/dist/Server/Services/RunbookAgentJobService.js +63 -5
- package/build/dist/Server/Services/RunbookAgentJobService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +83 -0
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js +65 -0
- package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageGroupService.js +136 -0
- package/build/dist/Server/Services/StatusPageGroupService.js.map +1 -1
- package/build/dist/Server/Services/TraceDropFilterService.js +93 -0
- package/build/dist/Server/Services/TraceDropFilterService.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js +11 -0
- package/build/dist/Server/Types/Workflow/Components/API/Delete.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Get.js +11 -0
- package/build/dist/Server/Types/Workflow/Components/API/Get.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js +11 -0
- package/build/dist/Server/Types/Workflow/Components/API/Patch.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Post.js +11 -0
- package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Put.js +12 -0
- package/build/dist/Server/Types/Workflow/Components/API/Put.js.map +1 -1
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +132 -0
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -0
- package/build/dist/Server/Utils/DropFilterValidation.js +80 -0
- package/build/dist/Server/Utils/DropFilterValidation.js.map +1 -0
- package/build/dist/Server/Utils/Errors.js +3 -0
- package/build/dist/Server/Utils/Errors.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +30 -12
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +38 -18
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js +26 -0
- package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
- package/build/dist/Types/Date.js +14 -4
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +8 -3
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -1
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +192 -0
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +6 -1
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +32 -1
- package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +294 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js +110 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js.map +1 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +58 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +451 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -0
- package/build/dist/Types/Permission.js +40 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Recommendation/RecommendationType.js +21 -0
- package/build/dist/Types/Recommendation/RecommendationType.js.map +1 -0
- package/build/dist/Types/Runbook/RunbookExecutionDeadline.js +93 -0
- package/build/dist/Types/Runbook/RunbookExecutionDeadline.js.map +1 -0
- package/build/dist/Types/Runbook/RunbookStepTimeout.js +142 -0
- package/build/dist/Types/Runbook/RunbookStepTimeout.js.map +1 -0
- package/build/dist/Types/Telemetry/DropFilterSampling.js +75 -0
- package/build/dist/Types/Telemetry/DropFilterSampling.js.map +1 -0
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js +1 -2
- package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
- package/build/dist/UI/Components/Accordion/Accordion.js +9 -2
- package/build/dist/UI/Components/Accordion/Accordion.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js +27 -14
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
- package/build/dist/UI/Components/Date/RangeStartAndEndDateView.js +1 -1
- package/build/dist/UI/Components/Date/RangeStartAndEndDateView.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +2 -20
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/Error/PageError.js +1 -3
- package/build/dist/UI/Components/Error/PageError.js.map +1 -1
- package/build/dist/UI/Components/ErrorBoundary.js +145 -11
- package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
- package/build/dist/UI/Components/InfoCard/InfoCard.js +28 -1
- package/build/dist/UI/Components/InfoCard/InfoCard.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +13 -2
- package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js +50 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
- package/build/dist/UI/Components/Modal/Modal.js +4 -32
- package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
- package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +308 -40
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js +230 -0
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js +258 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +168 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/TableView.js +13 -2
- package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +84 -0
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/Runbook/StepTimeoutInput.js +101 -0
- package/build/dist/UI/Components/Runbook/StepTimeoutInput.js.map +1 -0
- package/build/dist/UI/Components/SideMenu/SideMenu.js +15 -5
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js +73 -0
- package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js.map +1 -0
- package/build/dist/UI/Components/Table/Table.js +15 -2
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +11 -6
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js +13 -2
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js.map +1 -1
- package/build/dist/UI/Utils/DropdownAlignment.js +98 -0
- package/build/dist/UI/Utils/DropdownAlignment.js.map +1 -0
- package/build/dist/UI/Utils/TableFilterUrlState.js +48 -15
- package/build/dist/UI/Utils/TableFilterUrlState.js.map +1 -1
- package/build/dist/Utils/API.js +39 -2
- package/build/dist/Utils/API.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorSummaryProbeUtil.js +97 -0
- package/build/dist/Utils/Monitor/MonitorSummaryProbeUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js +330 -0
- package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js.map +1 -0
- package/build/dist/Utils/StatusPage/GroupNestingLayout.js +280 -0
- package/build/dist/Utils/StatusPage/GroupNestingLayout.js.map +1 -0
- package/build/dist/Utils/StatusPage/GroupTree.js +214 -0
- package/build/dist/Utils/StatusPage/GroupTree.js.map +1 -0
- package/build/dist/Utils/StatusPage/ResourceUptime.js +60 -16
- package/build/dist/Utils/StatusPage/ResourceUptime.js.map +1 -1
- package/build/dist/Utils/UserPreferences.js +33 -0
- package/build/dist/Utils/UserPreferences.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
import MonitorType from "../MonitorType";
|
|
2
|
+
import IconProp from "../../Icon/IconProp";
|
|
3
|
+
import RecommendationType from "../../Recommendation/RecommendationType";
|
|
4
|
+
import { MonitorRecommendationResourceType, buildRecommendationId, } from "./MonitorRecommendationTypes";
|
|
5
|
+
import { getAllCephAlertTemplates, } from "../CephAlertTemplates";
|
|
6
|
+
import { getAllDockerAlertTemplates, } from "../DockerAlertTemplates";
|
|
7
|
+
import { getAllDockerSwarmAlertTemplates, } from "../DockerSwarmAlertTemplates";
|
|
8
|
+
import { getAllHostAlertTemplates, } from "../HostAlertTemplates";
|
|
9
|
+
import { getAllIoTAlertTemplates, } from "../IotAlertTemplates";
|
|
10
|
+
import { getAllKubernetesAlertTemplates, } from "../KubernetesAlertTemplates";
|
|
11
|
+
import { getAllPodmanAlertTemplates, } from "../PodmanAlertTemplates";
|
|
12
|
+
import { getAllProxmoxAlertTemplates, } from "../ProxmoxAlertTemplates";
|
|
13
|
+
function normalize(data) {
|
|
14
|
+
return {
|
|
15
|
+
recommendationId: buildRecommendationId(data.resourceType, data.template.id),
|
|
16
|
+
recommendationType: RecommendationType.Monitor,
|
|
17
|
+
resourceType: data.resourceType,
|
|
18
|
+
monitorType: data.monitorType,
|
|
19
|
+
templateId: data.template.id,
|
|
20
|
+
name: data.template.name,
|
|
21
|
+
description: data.template.description,
|
|
22
|
+
category: data.template.category,
|
|
23
|
+
severity: data.template.severity,
|
|
24
|
+
getMonitorStep: data.getMonitorStep,
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/*
|
|
28
|
+
* One adapter per module. Each is deliberately written out rather than
|
|
29
|
+
* generated from a lookup table: the args field rename is the only thing that
|
|
30
|
+
* differs, and doing it explicitly keeps every call site fully type-checked
|
|
31
|
+
* against that module's real args interface. A generic version would need
|
|
32
|
+
* `any` and would not catch a renamed field.
|
|
33
|
+
*/
|
|
34
|
+
function getKubernetesRecommendations() {
|
|
35
|
+
return getAllKubernetesAlertTemplates().map((template) => {
|
|
36
|
+
return normalize({
|
|
37
|
+
resourceType: MonitorRecommendationResourceType.Kubernetes,
|
|
38
|
+
monitorType: MonitorType.Kubernetes,
|
|
39
|
+
template: template,
|
|
40
|
+
getMonitorStep: (args) => {
|
|
41
|
+
return template.getMonitorStep({
|
|
42
|
+
clusterIdentifier: args.resourceIdentifier,
|
|
43
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
44
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
45
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
46
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
47
|
+
monitorName: args.monitorName,
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function getHostRecommendations() {
|
|
54
|
+
return getAllHostAlertTemplates().map((template) => {
|
|
55
|
+
return normalize({
|
|
56
|
+
resourceType: MonitorRecommendationResourceType.Host,
|
|
57
|
+
monitorType: MonitorType.Host,
|
|
58
|
+
template: template,
|
|
59
|
+
getMonitorStep: (args) => {
|
|
60
|
+
return template.getMonitorStep({
|
|
61
|
+
hostIdentifier: args.resourceIdentifier,
|
|
62
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
63
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
64
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
65
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
66
|
+
monitorName: args.monitorName,
|
|
67
|
+
});
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
function getDockerRecommendations() {
|
|
73
|
+
return getAllDockerAlertTemplates().map((template) => {
|
|
74
|
+
return normalize({
|
|
75
|
+
resourceType: MonitorRecommendationResourceType.Docker,
|
|
76
|
+
monitorType: MonitorType.Docker,
|
|
77
|
+
template: template,
|
|
78
|
+
getMonitorStep: (args) => {
|
|
79
|
+
return template.getMonitorStep({
|
|
80
|
+
hostIdentifier: args.resourceIdentifier,
|
|
81
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
82
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
83
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
84
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
85
|
+
monitorName: args.monitorName,
|
|
86
|
+
});
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
function getDockerSwarmRecommendations() {
|
|
92
|
+
return getAllDockerSwarmAlertTemplates().map((template) => {
|
|
93
|
+
return normalize({
|
|
94
|
+
resourceType: MonitorRecommendationResourceType.DockerSwarm,
|
|
95
|
+
monitorType: MonitorType.DockerSwarm,
|
|
96
|
+
template: template,
|
|
97
|
+
getMonitorStep: (args) => {
|
|
98
|
+
return template.getMonitorStep({
|
|
99
|
+
clusterIdentifier: args.resourceIdentifier,
|
|
100
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
101
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
102
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
103
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
104
|
+
monitorName: args.monitorName,
|
|
105
|
+
});
|
|
106
|
+
},
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
function getPodmanRecommendations() {
|
|
111
|
+
return getAllPodmanAlertTemplates().map((template) => {
|
|
112
|
+
return normalize({
|
|
113
|
+
resourceType: MonitorRecommendationResourceType.Podman,
|
|
114
|
+
monitorType: MonitorType.Podman,
|
|
115
|
+
template: template,
|
|
116
|
+
getMonitorStep: (args) => {
|
|
117
|
+
return template.getMonitorStep({
|
|
118
|
+
hostIdentifier: args.resourceIdentifier,
|
|
119
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
120
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
121
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
122
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
123
|
+
monitorName: args.monitorName,
|
|
124
|
+
});
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
function getProxmoxRecommendations() {
|
|
130
|
+
return getAllProxmoxAlertTemplates().map((template) => {
|
|
131
|
+
return normalize({
|
|
132
|
+
resourceType: MonitorRecommendationResourceType.Proxmox,
|
|
133
|
+
monitorType: MonitorType.Proxmox,
|
|
134
|
+
template: template,
|
|
135
|
+
getMonitorStep: (args) => {
|
|
136
|
+
return template.getMonitorStep({
|
|
137
|
+
clusterIdentifier: args.resourceIdentifier,
|
|
138
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
139
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
140
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
141
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
142
|
+
monitorName: args.monitorName,
|
|
143
|
+
});
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
function getCephRecommendations() {
|
|
149
|
+
return getAllCephAlertTemplates().map((template) => {
|
|
150
|
+
return normalize({
|
|
151
|
+
resourceType: MonitorRecommendationResourceType.Ceph,
|
|
152
|
+
monitorType: MonitorType.Ceph,
|
|
153
|
+
template: template,
|
|
154
|
+
getMonitorStep: (args) => {
|
|
155
|
+
return template.getMonitorStep({
|
|
156
|
+
clusterIdentifier: args.resourceIdentifier,
|
|
157
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
158
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
159
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
160
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
161
|
+
monitorName: args.monitorName,
|
|
162
|
+
});
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
function getIoTRecommendations() {
|
|
168
|
+
return getAllIoTAlertTemplates().map((template) => {
|
|
169
|
+
return normalize({
|
|
170
|
+
resourceType: MonitorRecommendationResourceType.IoTDevice,
|
|
171
|
+
monitorType: MonitorType.IoTDevice,
|
|
172
|
+
template: template,
|
|
173
|
+
getMonitorStep: (args) => {
|
|
174
|
+
return template.getMonitorStep({
|
|
175
|
+
fleetIdentifier: args.resourceIdentifier,
|
|
176
|
+
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
177
|
+
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
178
|
+
defaultIncidentSeverityId: args.defaultIncidentSeverityId,
|
|
179
|
+
defaultAlertSeverityId: args.defaultAlertSeverityId,
|
|
180
|
+
monitorName: args.monitorName,
|
|
181
|
+
});
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
const RESOURCE_TYPE_DEFINITIONS = [
|
|
187
|
+
{
|
|
188
|
+
resourceType: MonitorRecommendationResourceType.Kubernetes,
|
|
189
|
+
monitorType: MonitorType.Kubernetes,
|
|
190
|
+
resourceLabel: "Kubernetes Cluster",
|
|
191
|
+
identifierFieldName: "clusterIdentifier",
|
|
192
|
+
icon: IconProp.Kubernetes,
|
|
193
|
+
getRecommendations: getKubernetesRecommendations,
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
resourceType: MonitorRecommendationResourceType.Host,
|
|
197
|
+
monitorType: MonitorType.Host,
|
|
198
|
+
resourceLabel: "Host",
|
|
199
|
+
identifierFieldName: "hostIdentifier",
|
|
200
|
+
icon: IconProp.Server,
|
|
201
|
+
getRecommendations: getHostRecommendations,
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
resourceType: MonitorRecommendationResourceType.Docker,
|
|
205
|
+
monitorType: MonitorType.Docker,
|
|
206
|
+
resourceLabel: "Docker Host",
|
|
207
|
+
identifierFieldName: "hostIdentifier",
|
|
208
|
+
icon: IconProp.Docker,
|
|
209
|
+
getRecommendations: getDockerRecommendations,
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
resourceType: MonitorRecommendationResourceType.DockerSwarm,
|
|
213
|
+
monitorType: MonitorType.DockerSwarm,
|
|
214
|
+
resourceLabel: "Docker Swarm Cluster",
|
|
215
|
+
identifierFieldName: "clusterIdentifier",
|
|
216
|
+
icon: IconProp.DockerSwarm,
|
|
217
|
+
getRecommendations: getDockerSwarmRecommendations,
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
resourceType: MonitorRecommendationResourceType.Podman,
|
|
221
|
+
monitorType: MonitorType.Podman,
|
|
222
|
+
resourceLabel: "Podman Host",
|
|
223
|
+
identifierFieldName: "hostIdentifier",
|
|
224
|
+
icon: IconProp.Podman,
|
|
225
|
+
getRecommendations: getPodmanRecommendations,
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
resourceType: MonitorRecommendationResourceType.Proxmox,
|
|
229
|
+
monitorType: MonitorType.Proxmox,
|
|
230
|
+
resourceLabel: "Proxmox Cluster",
|
|
231
|
+
identifierFieldName: "clusterIdentifier",
|
|
232
|
+
icon: IconProp.Server,
|
|
233
|
+
getRecommendations: getProxmoxRecommendations,
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
resourceType: MonitorRecommendationResourceType.Ceph,
|
|
237
|
+
monitorType: MonitorType.Ceph,
|
|
238
|
+
resourceLabel: "Ceph Cluster",
|
|
239
|
+
identifierFieldName: "clusterIdentifier",
|
|
240
|
+
icon: IconProp.Database,
|
|
241
|
+
getRecommendations: getCephRecommendations,
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
resourceType: MonitorRecommendationResourceType.IoTDevice,
|
|
245
|
+
monitorType: MonitorType.IoTDevice,
|
|
246
|
+
resourceLabel: "IoT Fleet",
|
|
247
|
+
identifierFieldName: "fleetIdentifier",
|
|
248
|
+
icon: IconProp.CPUChip,
|
|
249
|
+
getRecommendations: getIoTRecommendations,
|
|
250
|
+
},
|
|
251
|
+
];
|
|
252
|
+
export default class MonitorRecommendationCatalog {
|
|
253
|
+
static getResourceTypeDefinitions() {
|
|
254
|
+
return [...RESOURCE_TYPE_DEFINITIONS];
|
|
255
|
+
}
|
|
256
|
+
static getResourceTypeDefinition(resourceType) {
|
|
257
|
+
return RESOURCE_TYPE_DEFINITIONS.find((definition) => {
|
|
258
|
+
return definition.resourceType === resourceType;
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
static getRecommendations(resourceType) {
|
|
262
|
+
const definition = this.getResourceTypeDefinition(resourceType);
|
|
263
|
+
if (!definition) {
|
|
264
|
+
return [];
|
|
265
|
+
}
|
|
266
|
+
return definition.getRecommendations();
|
|
267
|
+
}
|
|
268
|
+
static getAllRecommendations() {
|
|
269
|
+
return RESOURCE_TYPE_DEFINITIONS.flatMap((definition) => {
|
|
270
|
+
return definition.getRecommendations();
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
static getRecommendationById(recommendationId) {
|
|
274
|
+
return this.getAllRecommendations().find((recommendation) => {
|
|
275
|
+
return recommendation.recommendationId === recommendationId;
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
/*
|
|
279
|
+
* Distinct categories for a resource type, in the order the underlying
|
|
280
|
+
* module declares its templates. Order matters for the UI: the modules list
|
|
281
|
+
* their most important templates first, and the page renders category
|
|
282
|
+
* sections in this order.
|
|
283
|
+
*/
|
|
284
|
+
static getCategories(resourceType) {
|
|
285
|
+
const categories = [];
|
|
286
|
+
for (const recommendation of this.getRecommendations(resourceType)) {
|
|
287
|
+
if (!categories.includes(recommendation.category)) {
|
|
288
|
+
categories.push(recommendation.category);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return categories;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
//# sourceMappingURL=MonitorRecommendationCatalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonitorRecommendationCatalog.js","sourceRoot":"","sources":["../../../../../Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,QAAQ,MAAM,qBAAqB,CAAC;AAC3C,OAAO,kBAAkB,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAGL,iCAAiC,EAEjC,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEL,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,+BAA+B,GAChC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEL,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,uBAAuB,GACxB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,8BAA8B,GAC/B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAEL,0BAA0B,GAC3B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,2BAA2B,GAC5B,MAAM,0BAA0B,CAAC;AAyClC,SAAS,SAAS,CAAC,IAKlB;IACC,OAAO;QACL,gBAAgB,EAAE,qBAAqB,CACrC,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,QAAQ,CAAC,EAAE,CACjB;QACD,kBAAkB,EAAE,kBAAkB,CAAC,OAAO;QAC9C,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;QAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI;QACxB,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW;QACtC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAChC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ;QAChC,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AAEH,SAAS,4BAA4B;IACnC,OAAO,8BAA8B,EAAE,CAAC,GAAG,CACzC,CAAC,QAAiC,EAAE,EAAE;QACpC,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,UAAU;YAC1D,WAAW,EAAE,WAAW,CAAC,UAAU;YACnC,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;oBAC1C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,wBAAwB,EAAE,CAAC,GAAG,CAAC,CAAC,QAA2B,EAAE,EAAE;QACpE,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,IAAI;YACpD,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,cAAc,EAAE,IAAI,CAAC,kBAAkB;oBACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,0BAA0B,EAAE,CAAC,GAAG,CAAC,CAAC,QAA6B,EAAE,EAAE;QACxE,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,MAAM;YACtD,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,cAAc,EAAE,IAAI,CAAC,kBAAkB;oBACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,6BAA6B;IACpC,OAAO,+BAA+B,EAAE,CAAC,GAAG,CAC1C,CAAC,QAAkC,EAAE,EAAE;QACrC,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,WAAW;YAC3D,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;oBAC1C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB;IAC/B,OAAO,0BAA0B,EAAE,CAAC,GAAG,CAAC,CAAC,QAA6B,EAAE,EAAE;QACxE,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,MAAM;YACtD,WAAW,EAAE,WAAW,CAAC,MAAM;YAC/B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,cAAc,EAAE,IAAI,CAAC,kBAAkB;oBACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,yBAAyB;IAChC,OAAO,2BAA2B,EAAE,CAAC,GAAG,CAAC,CAAC,QAA8B,EAAE,EAAE;QAC1E,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,OAAO;YACvD,WAAW,EAAE,WAAW,CAAC,OAAO;YAChC,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;oBAC1C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,wBAAwB,EAAE,CAAC,GAAG,CAAC,CAAC,QAA2B,EAAE,EAAE;QACpE,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,IAAI;YACpD,WAAW,EAAE,WAAW,CAAC,IAAI;YAC7B,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,iBAAiB,EAAE,IAAI,CAAC,kBAAkB;oBAC1C,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB;IAC5B,OAAO,uBAAuB,EAAE,CAAC,GAAG,CAAC,CAAC,QAA0B,EAAE,EAAE;QAClE,OAAO,SAAS,CAAC;YACf,YAAY,EAAE,iCAAiC,CAAC,SAAS;YACzD,WAAW,EAAE,WAAW,CAAC,SAAS;YAClC,QAAQ,EAAE,QAAQ;YAClB,cAAc,EAAE,CAAC,IAA+B,EAAE,EAAE;gBAClD,OAAO,QAAQ,CAAC,cAAc,CAAC;oBAC7B,eAAe,EAAE,IAAI,CAAC,kBAAkB;oBACxC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;oBACjD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,yBAAyB,EAAE,IAAI,CAAC,yBAAyB;oBACzD,sBAAsB,EAAE,IAAI,CAAC,sBAAsB;oBACnD,WAAW,EAAE,IAAI,CAAC,WAAW;iBAC9B,CAAC,CAAC;YACL,CAAC;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,yBAAyB,GAC7B;IACE;QACE,YAAY,EAAE,iCAAiC,CAAC,UAAU;QAC1D,WAAW,EAAE,WAAW,CAAC,UAAU;QACnC,aAAa,EAAE,oBAAoB;QACnC,mBAAmB,EAAE,mBAAmB;QACxC,IAAI,EAAE,QAAQ,CAAC,UAAU;QACzB,kBAAkB,EAAE,4BAA4B;KACjD;IACD;QACE,YAAY,EAAE,iCAAiC,CAAC,IAAI;QACpD,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,aAAa,EAAE,MAAM;QACrB,mBAAmB,EAAE,gBAAgB;QACrC,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,kBAAkB,EAAE,sBAAsB;KAC3C;IACD;QACE,YAAY,EAAE,iCAAiC,CAAC,MAAM;QACtD,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,aAAa,EAAE,aAAa;QAC5B,mBAAmB,EAAE,gBAAgB;QACrC,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,kBAAkB,EAAE,wBAAwB;KAC7C;IACD;QACE,YAAY,EAAE,iCAAiC,CAAC,WAAW;QAC3D,WAAW,EAAE,WAAW,CAAC,WAAW;QACpC,aAAa,EAAE,sBAAsB;QACrC,mBAAmB,EAAE,mBAAmB;QACxC,IAAI,EAAE,QAAQ,CAAC,WAAW;QAC1B,kBAAkB,EAAE,6BAA6B;KAClD;IACD;QACE,YAAY,EAAE,iCAAiC,CAAC,MAAM;QACtD,WAAW,EAAE,WAAW,CAAC,MAAM;QAC/B,aAAa,EAAE,aAAa;QAC5B,mBAAmB,EAAE,gBAAgB;QACrC,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,kBAAkB,EAAE,wBAAwB;KAC7C;IACD;QACE,YAAY,EAAE,iCAAiC,CAAC,OAAO;QACvD,WAAW,EAAE,WAAW,CAAC,OAAO;QAChC,aAAa,EAAE,iBAAiB;QAChC,mBAAmB,EAAE,mBAAmB;QACxC,IAAI,EAAE,QAAQ,CAAC,MAAM;QACrB,kBAAkB,EAAE,yBAAyB;KAC9C;IACD;QACE,YAAY,EAAE,iCAAiC,CAAC,IAAI;QACpD,WAAW,EAAE,WAAW,CAAC,IAAI;QAC7B,aAAa,EAAE,cAAc;QAC7B,mBAAmB,EAAE,mBAAmB;QACxC,IAAI,EAAE,QAAQ,CAAC,QAAQ;QACvB,kBAAkB,EAAE,sBAAsB;KAC3C;IACD;QACE,YAAY,EAAE,iCAAiC,CAAC,SAAS;QACzD,WAAW,EAAE,WAAW,CAAC,SAAS;QAClC,aAAa,EAAE,WAAW;QAC1B,mBAAmB,EAAE,iBAAiB;QACtC,IAAI,EAAE,QAAQ,CAAC,OAAO;QACtB,kBAAkB,EAAE,qBAAqB;KAC1C;CACF,CAAC;AAEJ,MAAM,CAAC,OAAO,OAAO,4BAA4B;IACxC,MAAM,CAAC,0BAA0B;QACtC,OAAO,CAAC,GAAG,yBAAyB,CAAC,CAAC;IACxC,CAAC;IAEM,MAAM,CAAC,yBAAyB,CACrC,YAA+C;QAE/C,OAAO,yBAAyB,CAAC,IAAI,CACnC,CAAC,UAAuD,EAAE,EAAE;YAC1D,OAAO,UAAU,CAAC,YAAY,KAAK,YAAY,CAAC;QAClD,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,kBAAkB,CAC9B,YAA+C;QAE/C,MAAM,UAAU,GACd,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QAE/C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO,UAAU,CAAC,kBAAkB,EAAE,CAAC;IACzC,CAAC;IAEM,MAAM,CAAC,qBAAqB;QACjC,OAAO,yBAAyB,CAAC,OAAO,CACtC,CAAC,UAAuD,EAAE,EAAE;YAC1D,OAAO,UAAU,CAAC,kBAAkB,EAAE,CAAC;QACzC,CAAC,CACF,CAAC;IACJ,CAAC;IAEM,MAAM,CAAC,qBAAqB,CACjC,gBAAwB;QAExB,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC,IAAI,CACtC,CAAC,cAAqC,EAAE,EAAE;YACxC,OAAO,cAAc,CAAC,gBAAgB,KAAK,gBAAgB,CAAC;QAC9D,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,aAAa,CACzB,YAA+C;QAE/C,MAAM,UAAU,GAAkB,EAAE,CAAC;QAErC,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Maps a recommendation's declared severity (`Critical` / `Warning`) onto one
|
|
3
|
+
* of the project's own incident or alert severities.
|
|
4
|
+
*
|
|
5
|
+
* Why this exists: the templates take a single `defaultIncidentSeverityId`
|
|
6
|
+
* argument, and the page filled it with the project's first severity. So
|
|
7
|
+
* "Deployment Replica Mismatch" (Warning) and "Node Not Ready" (Critical)
|
|
8
|
+
* both opened a Critical Incident. Every recommendation paged at the same
|
|
9
|
+
* level, and the Critical/Warning badge on the card described nothing that
|
|
10
|
+
* happened afterwards.
|
|
11
|
+
*
|
|
12
|
+
* The rule is intentionally boring and order-based rather than name-based:
|
|
13
|
+
* severities are user-renameable ("Sev1", "P0", "Critical Incident", localized
|
|
14
|
+
* names), so matching on a name works for the default seed and for nothing
|
|
15
|
+
* else. `order` is the field the product itself treats as rank.
|
|
16
|
+
*/
|
|
17
|
+
export default class MonitorRecommendationSeverityMapper {
|
|
18
|
+
/*
|
|
19
|
+
* Severities ranked most-severe first.
|
|
20
|
+
*
|
|
21
|
+
* Sorted by `order` ascending, with rows missing an order pushed to the end
|
|
22
|
+
* rather than treated as order 0 — an unset order is "unranked", and
|
|
23
|
+
* silently promoting it to most-severe would map every Critical
|
|
24
|
+
* recommendation onto it.
|
|
25
|
+
*
|
|
26
|
+
* Ties (two severities sharing an order, which the product permits) fall
|
|
27
|
+
* back to the incoming array order, so the mapping is stable across calls
|
|
28
|
+
* given the same input. Callers pass the list already sorted by order from
|
|
29
|
+
* the API, so in practice this is the API's own ordering.
|
|
30
|
+
*/
|
|
31
|
+
static rankSeverities(options) {
|
|
32
|
+
return [...options].sort((a, b) => {
|
|
33
|
+
const aOrder = typeof a.order === "number" ? a.order : Number.MAX_SAFE_INTEGER;
|
|
34
|
+
const bOrder = typeof b.order === "number" ? b.order : Number.MAX_SAFE_INTEGER;
|
|
35
|
+
return aOrder - bOrder;
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/*
|
|
39
|
+
* The default Critical -> ? / Warning -> ? mapping for a project.
|
|
40
|
+
*
|
|
41
|
+
* Critical takes the most severe row. Warning takes the next one down, and
|
|
42
|
+
* falls back to the same row as Critical when the project only defines one
|
|
43
|
+
* severity — a project with a single severity has no way to express the
|
|
44
|
+
* distinction, and refusing to map Warning at all would leave those monitors
|
|
45
|
+
* on the template's own choice, which is the bug this class exists to fix.
|
|
46
|
+
*
|
|
47
|
+
* Warning deliberately takes the SECOND severity rather than the LAST. On
|
|
48
|
+
* the default seed those are the same row (incidents: Critical/Major/Minor
|
|
49
|
+
* -> Major either way is second, Minor is last), but a project with five
|
|
50
|
+
* severities means "Warning" much closer to Major than to the bottom of the
|
|
51
|
+
* scale, and a recommendation the catalog calls Warning is a real
|
|
52
|
+
* production problem, not a nitpick.
|
|
53
|
+
*/
|
|
54
|
+
static getDefaultSeverityMapping(options) {
|
|
55
|
+
const ranked = this.rankSeverities(options);
|
|
56
|
+
if (ranked.length === 0) {
|
|
57
|
+
return {};
|
|
58
|
+
}
|
|
59
|
+
const mostSevere = ranked[0];
|
|
60
|
+
const nextSevere = ranked[1] || mostSevere;
|
|
61
|
+
return {
|
|
62
|
+
Critical: mostSevere.id,
|
|
63
|
+
Warning: nextSevere.id,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/*
|
|
67
|
+
* Resolve one recommendation's severity through a mapping.
|
|
68
|
+
*
|
|
69
|
+
* Returns undefined when the mapping has no entry, which callers must treat
|
|
70
|
+
* as "leave the template's own severity alone" rather than as "no severity"
|
|
71
|
+
* — a criteria instance with a populated incident and no severity id fails
|
|
72
|
+
* `MonitorCriteriaInstance.getValidationError` and the whole create fails.
|
|
73
|
+
*/
|
|
74
|
+
static resolveSeverityId(data) {
|
|
75
|
+
if (!data.severityMap) {
|
|
76
|
+
return undefined;
|
|
77
|
+
}
|
|
78
|
+
return data.severityMap[data.severity];
|
|
79
|
+
}
|
|
80
|
+
/*
|
|
81
|
+
* Human-readable "Critical -> Critical Incident" pairs, for the create form
|
|
82
|
+
* to show what it is about to do. Rendering the mapping is the only thing
|
|
83
|
+
* that makes an automatic choice reviewable instead of surprising.
|
|
84
|
+
*/
|
|
85
|
+
static describeMapping(data) {
|
|
86
|
+
const severities = [
|
|
87
|
+
"Critical",
|
|
88
|
+
"Warning",
|
|
89
|
+
];
|
|
90
|
+
const described = [];
|
|
91
|
+
for (const severity of severities) {
|
|
92
|
+
const id = this.resolveSeverityId({
|
|
93
|
+
severity: severity,
|
|
94
|
+
severityMap: data.severityMap,
|
|
95
|
+
});
|
|
96
|
+
if (!id) {
|
|
97
|
+
continue;
|
|
98
|
+
}
|
|
99
|
+
const match = data.options.find((option) => {
|
|
100
|
+
return option.id.toString() === id.toString();
|
|
101
|
+
});
|
|
102
|
+
if (!match) {
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
described.push({ severity: severity, name: match.name });
|
|
106
|
+
}
|
|
107
|
+
return described;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=MonitorRecommendationSeverityMapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonitorRecommendationSeverityMapper.js","sourceRoot":"","sources":["../../../../../Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,OAAO,mCAAmC;IACtD;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,cAAc,CAC1B,OAAmD;QAEnD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CACtB,CACE,CAAsC,EACtC,CAAsC,EACtC,EAAE;YACF,MAAM,MAAM,GACV,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAClE,MAAM,MAAM,GACV,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC;YAElE,OAAO,MAAM,GAAG,MAAM,CAAC;QACzB,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;;;OAeG;IACI,MAAM,CAAC,yBAAyB,CACrC,OAAmD;QAEnD,MAAM,MAAM,GACV,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE/B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAwC,MAAM,CAAC,CAAC,CAAE,CAAC;QACnE,MAAM,UAAU,GACd,MAAM,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;QAE1B,OAAO;YACL,QAAQ,EAAE,UAAU,CAAC,EAAE;YACvB,OAAO,EAAE,UAAU,CAAC,EAAE;SACvB,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAG/B;QACC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,eAAe,CAAC,IAG7B;QACC,MAAM,UAAU,GAAyC;YACvD,UAAU;YACV,SAAS;SACV,CAAC;QAEF,MAAM,SAAS,GAGV,EAAE,CAAC;QAER,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,MAAM,EAAE,GAAyB,IAAI,CAAC,iBAAiB,CAAC;gBACtD,QAAQ,EAAE,QAAQ;gBAClB,WAAW,EAAE,IAAI,CAAC,WAAW;aAC9B,CAAC,CAAC;YAEH,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAA2C,EAAE,EAAE;gBAChE,OAAO,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;YAChD,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YAED,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* The infrastructure resource types that ship a curated alert-template
|
|
3
|
+
* library. There is exactly one member per `<X>AlertTemplates.ts` module in
|
|
4
|
+
* `Common/Types/Monitor` — adding a ninth template module means adding a
|
|
5
|
+
* member here and an adapter in `MonitorRecommendationCatalog.ts`, and the
|
|
6
|
+
* catalog's own tests fail until both exist.
|
|
7
|
+
*
|
|
8
|
+
* These values are persisted nowhere. They are a UI/registry key only, so
|
|
9
|
+
* they are free to differ from `MonitorType` (which they do: `DockerSwarm`
|
|
10
|
+
* here vs `"Docker Swarm"` there).
|
|
11
|
+
*/
|
|
12
|
+
export var MonitorRecommendationResourceType;
|
|
13
|
+
(function (MonitorRecommendationResourceType) {
|
|
14
|
+
MonitorRecommendationResourceType["Kubernetes"] = "Kubernetes";
|
|
15
|
+
MonitorRecommendationResourceType["Host"] = "Host";
|
|
16
|
+
MonitorRecommendationResourceType["Docker"] = "Docker";
|
|
17
|
+
MonitorRecommendationResourceType["DockerSwarm"] = "DockerSwarm";
|
|
18
|
+
MonitorRecommendationResourceType["Podman"] = "Podman";
|
|
19
|
+
MonitorRecommendationResourceType["Proxmox"] = "Proxmox";
|
|
20
|
+
MonitorRecommendationResourceType["Ceph"] = "Ceph";
|
|
21
|
+
MonitorRecommendationResourceType["IoTDevice"] = "IoTDevice";
|
|
22
|
+
})(MonitorRecommendationResourceType || (MonitorRecommendationResourceType = {}));
|
|
23
|
+
/*
|
|
24
|
+
* Registry-wide unique id for a recommendation.
|
|
25
|
+
*
|
|
26
|
+
* Every template module happens to self-prefix its ids today (`host-high-cpu`,
|
|
27
|
+
* `docker-high-cpu`, `podman-high-cpu`), so the 76 template ids are in fact
|
|
28
|
+
* globally unique right now. That is a convention across eight independently
|
|
29
|
+
* maintained files, not a contract — each module only guarantees uniqueness
|
|
30
|
+
* WITHIN itself. Prefixing here makes the registry correct regardless: without
|
|
31
|
+
* it, the day two modules pick the same id, selecting one card in the UI would
|
|
32
|
+
* silently also select the other. `MonitorRecommendationCatalog.test.ts` keeps
|
|
33
|
+
* a canary on the current global uniqueness so the drift is at least visible.
|
|
34
|
+
*/
|
|
35
|
+
export function buildRecommendationId(resourceType, templateId) {
|
|
36
|
+
return `${resourceType}:${templateId}`;
|
|
37
|
+
}
|
|
38
|
+
/*
|
|
39
|
+
* What a created monitor should open when its condition is met.
|
|
40
|
+
*
|
|
41
|
+
* Every shipped template sets BOTH `createIncidents: true` and
|
|
42
|
+
* `createAlerts: true` on its unhealthy criteria, so today one threshold
|
|
43
|
+
* breach opens an incident AND an alert describing the same thing — two
|
|
44
|
+
* records, two notification fan-outs, two things to resolve. That is almost
|
|
45
|
+
* never what anyone wants, and there is no way to say so from the
|
|
46
|
+
* recommendations page. This is that choice.
|
|
47
|
+
*
|
|
48
|
+
* The distinction the product draws (see the monitor criteria form's own
|
|
49
|
+
* tooltips): an alert notifies the team; an incident notifies the team AND
|
|
50
|
+
* shows on the status page.
|
|
51
|
+
*/
|
|
52
|
+
export var MonitorRecommendationNotificationMode;
|
|
53
|
+
(function (MonitorRecommendationNotificationMode) {
|
|
54
|
+
MonitorRecommendationNotificationMode["Alert"] = "Alert";
|
|
55
|
+
MonitorRecommendationNotificationMode["Incident"] = "Incident";
|
|
56
|
+
MonitorRecommendationNotificationMode["Both"] = "Both";
|
|
57
|
+
})(MonitorRecommendationNotificationMode || (MonitorRecommendationNotificationMode = {}));
|
|
58
|
+
//# sourceMappingURL=MonitorRecommendationTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MonitorRecommendationTypes.js","sourceRoot":"","sources":["../../../../../Types/Monitor/Recommendation/MonitorRecommendationTypes.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;GAUG;AACH,MAAM,CAAN,IAAY,iCASX;AATD,WAAY,iCAAiC;IAC3C,8DAAyB,CAAA;IACzB,kDAAa,CAAA;IACb,sDAAiB,CAAA;IACjB,gEAA2B,CAAA;IAC3B,sDAAiB,CAAA;IACjB,wDAAmB,CAAA;IACnB,kDAAa,CAAA;IACb,4DAAuB,CAAA;AACzB,CAAC,EATW,iCAAiC,KAAjC,iCAAiC,QAS5C;AA4DD;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAA+C,EAC/C,UAAkB;IAElB,OAAO,GAAG,YAAY,IAAI,UAAU,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAN,IAAY,qCAIX;AAJD,WAAY,qCAAqC;IAC/C,wDAAe,CAAA;IACf,8DAAqB,CAAA;IACrB,sDAAa,CAAA;AACf,CAAC,EAJW,qCAAqC,KAArC,qCAAqC,QAIhD"}
|