@oneuptime/common 12.0.4 → 12.0.5
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/AIRun.ts +38 -1
- package/Models/DatabaseModels/AlertFeed.ts +30 -0
- package/Models/DatabaseModels/Dashboard.ts +28 -0
- package/Models/DatabaseModels/Incident.ts +2 -0
- package/Models/DatabaseModels/IncidentEpisode.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodePublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +1 -0
- package/Models/DatabaseModels/IncidentFeed.ts +30 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -0
- package/Models/DatabaseModels/LogSavedView.ts +33 -0
- package/Models/DatabaseModels/Project.ts +231 -9
- package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.ts +4 -4
- package/Models/DatabaseModels/StatusPage.ts +28 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +1 -0
- package/Server/API/AIAgentDataAPI.ts +44 -55
- package/Server/API/AIInvestigationAPI.ts +175 -17
- package/Server/API/DashboardAPI.ts +10 -10
- package/Server/API/StatusPageAPI.ts +38 -19
- package/Server/EnvironmentConfig.ts +16 -0
- package/Server/Infrastructure/ClickhouseConfig.ts +15 -1
- package/Server/Infrastructure/ClickhouseDatabase.ts +1 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786096660558-AddTimeRangeToLogSavedView.ts +27 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786101798351-MigrationName.ts +89 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786105470826-MigrationName.ts +27 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786400000000-AddMasterPasswordSalt.ts +40 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786500000000-AddInvestigationCodeFixRecommendation.ts +26 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Services/AIRunService.ts +78 -10
- package/Server/Services/AIService.ts +94 -22
- package/Server/Services/AlertFeedService.ts +5 -0
- package/Server/Services/AnalyticsDatabaseService.ts +29 -0
- package/Server/Services/DatabaseService.ts +43 -2
- package/Server/Services/IncidentFeedService.ts +5 -0
- package/Server/Services/LlmLogService.ts +46 -2
- package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +6 -0
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +4 -0
- package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +8 -5
- package/Server/Utils/AI/CodeFix/FixRunBudget.ts +90 -16
- package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +2 -0
- package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +2 -0
- package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +223 -22
- package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +25 -24
- package/Server/Utils/AI/SRE/ConfidenceSignal.ts +182 -71
- package/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.ts +252 -43
- package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +25 -24
- package/Server/Utils/AI/SRE/InstrumentationTaskTrigger.ts +47 -13
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +9 -5
- package/Server/Utils/AI/SRE/InvestigationQueue.ts +141 -24
- package/Server/Utils/AI/SRE/InvestigationSubjectLock.ts +66 -0
- package/Server/Utils/AI/SRE/PostedRootCause.ts +94 -3
- package/Server/Utils/AI/SRE/README.md +1 -1
- package/Server/Utils/AI/SRE/SubjectCodeFixRun.ts +132 -10
- package/Server/Utils/AnalyticsDatabase/ClusterConfig.ts +24 -0
- package/Server/Utils/Monitor/Criteria/APIRequestCriteria.ts +29 -0
- package/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.ts +56 -0
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +46 -0
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +1 -0
- package/Server/Utils/PasswordHash.ts +28 -4
- package/Tests/App/Dashboard/AIInvestigationHeaderStatus.test.tsx +251 -0
- package/Tests/App/Dashboard/EventStatusPanel.test.tsx +747 -0
- package/Tests/App/Dashboard/InvestigationFeedRefresh.test.tsx +480 -0
- package/Tests/App/Dashboard/InvestigationPanel.test.tsx +1184 -0
- package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +500 -0
- package/Tests/App/Dashboard/PortMonitorCriteriaFilter.test.ts +93 -0
- package/Tests/App/StatusPage/PublicStatusPageAPIErrorHandling.test.ts +117 -0
- package/Tests/App/StatusPage/StatusPageModelAPIPolymorphism.test.ts +223 -0
- package/Tests/Models/DatabaseModels/PermissionCatalogueCoverage.test.ts +243 -0
- package/Tests/Server/API/AIAgentDataFixFromIncidentContext.test.ts +266 -0
- package/Tests/Server/API/AIInvestigationAPI.test.ts +594 -0
- package/Tests/Server/API/AIInvestigationCreateFixTask.test.ts +80 -0
- package/Tests/Server/API/DashboardMasterPasswordAPI.test.ts +172 -1
- package/Tests/Server/API/StatusPageMasterPasswordAPI.test.ts +335 -0
- package/Tests/Server/Services/AIRunCodeFixClaim.test.ts +59 -5
- package/Tests/Server/Services/AIRunHumanVerdict.test.ts +127 -58
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +396 -20
- package/Tests/Server/Services/AddMasterPasswordSaltMigration.test.ts +283 -0
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +25 -1
- package/Tests/Server/Services/DatabaseServicePerUserPasswordSalt.test.ts +45 -35
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsWithoutHooks.test.ts +54 -0
- package/Tests/Server/Services/FeedAIRunAssociation.test.ts +125 -0
- package/Tests/Server/Services/FixFromIncidentTaskTrigger.test.ts +418 -57
- package/Tests/Server/Services/InstrumentationTaskTrigger.test.ts +173 -14
- package/Tests/Server/Services/MasterPasswordScrypt.test.ts +567 -0
- package/Tests/Server/Services/SeparateIncidentAlertAiSettingsMigration.test.ts +194 -0
- package/Tests/Server/Utils/AI/AIAlertGating.test.ts +37 -4
- package/Tests/Server/Utils/AI/AIConfidenceSignal.test.ts +330 -29
- package/Tests/Server/Utils/AI/AIIncidentGating.test.ts +25 -0
- package/Tests/Server/Utils/AI/AIInvestigationQueue.test.ts +293 -5
- package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +59 -1
- package/Tests/Server/Utils/AI/FixFromIncidentAutoTrigger.test.ts +342 -19
- package/Tests/Server/Utils/AI/FixRunBudget.test.ts +214 -30
- package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +2 -0
- package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +65 -17
- package/Tests/Server/Utils/AI/InvestigationQueueRemediationExecution.test.ts +3 -0
- package/Tests/Server/Utils/AI/InvestigationSettlement.test.ts +313 -20
- package/Tests/Server/Utils/AI/PostedRootCause.test.ts +254 -0
- package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +4 -0
- package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +2 -0
- package/Tests/Server/Utils/AI/SubjectCodeFixRunDedupe.test.ts +44 -0
- package/Tests/Server/Utils/AnalyticsDatabase/ClusterAwareSchema.test.ts +30 -0
- package/Tests/Server/Utils/Monitor/Criteria/APIRequestCriteriaPortTimings.test.ts +212 -0
- package/Tests/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.test.ts +401 -0
- package/Tests/Server/Utils/Monitor/MonitorMetricUtilPortTimings.test.ts +243 -0
- package/Tests/Server/Utils/PasswordHash.test.ts +30 -0
- package/Tests/Types/Dashboard/DashboardTemplates.test.ts +111 -0
- package/Tests/Types/Monitor/CephMetricCatalog.test.ts +104 -0
- package/Tests/Types/Monitor/CriteriaFilter.test.ts +4 -0
- package/Tests/Types/Monitor/DockerMetricCatalog.test.ts +109 -0
- package/Tests/Types/Monitor/DockerSwarmMetricCatalog.test.ts +118 -0
- package/Tests/Types/Monitor/HostMetricCatalog.test.ts +104 -0
- package/Tests/Types/Monitor/IotMetricCatalog.test.ts +104 -0
- package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +118 -0
- package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +42 -0
- package/Tests/Types/Monitor/MonitorStep.test.ts +38 -0
- package/Tests/Types/Monitor/MonitorStepDomainMonitor.test.ts +75 -0
- package/Tests/Types/Monitor/PodmanMetricCatalog.test.ts +109 -0
- package/Tests/Types/Monitor/ProxmoxMetricCatalog.test.ts +107 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.test.ts +151 -0
- package/Tests/Types/Permission.test.ts +137 -0
- package/Tests/Types/Rum/SessionReplayMaskingMode.test.ts +101 -0
- package/Tests/UI/Components/AiInvestigationSettingsCard.test.tsx +5 -5
- package/Tests/UI/Components/CardModelDetailEdit.test.tsx +3 -5
- package/Tests/UI/Components/ErrorBoundary.test.tsx +158 -0
- package/Tests/UI/Components/FeedItemSafeMode.test.tsx +74 -0
- package/Tests/UI/Components/MoreMenu.test.tsx +756 -0
- package/Tests/UI/Components/StatusPage/ResourceGroupSection.test.tsx +62 -0
- package/Tests/UI/Monitor/PortMonitorView.test.tsx +237 -0
- package/Tests/UI/Telemetry/TelemetrySnapshotWindowAlert.test.tsx +91 -0
- package/Tests/UI/Utils/DownloadFile.test.ts +103 -0
- package/Tests/UI/Utils/ErrorSupportBundle.test.ts +582 -0
- package/Tests/UI/Utils/Project.test.ts +31 -0
- package/Tests/UI/Utils/StatusPageModelAPIInjection.test.ts +245 -0
- package/Tests/UI/Utils/UseDashboardGridDnd.test.tsx +820 -0
- package/Tests/Utils/Dashboard/DashboardViewConfig.test.ts +329 -0
- package/Tests/Utils/Dashboard/GridLayout.test.ts +951 -0
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +117 -0
- package/Tests/Utils/RecordingRuleExpression.test.ts +327 -0
- package/Tests/Utils/StatusPage/GroupNestingLayout.test.ts +186 -0
- package/Tests/Utils/StatusPage/GroupTree.test.ts +456 -0
- package/Tests/Utils/StatusPage/OverviewGroupHierarchyVisibility.test.ts +588 -0
- package/Tests/Utils/Telemetry/SavedViewTimeRange.test.ts +244 -0
- package/Tests/Utils/Telemetry/TelemetryQueryTimeRange.test.ts +825 -0
- package/Types/AI/AIRunCodeFixRecommendation.ts +17 -0
- package/Types/AI/CodeFixTaskContext.ts +63 -3
- package/Types/AI/CodeFixTaskType.ts +3 -3
- package/Types/HashedString.ts +4 -3
- package/Types/Monitor/CriteriaFilter.ts +4 -0
- package/Types/Monitor/DomainMonitor/DomainLookupMethod.ts +23 -0
- package/Types/Monitor/DomainMonitor/DomainMonitorResponse.ts +7 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +24 -7
- package/Types/Monitor/MonitorMetricType.ts +8 -0
- package/Types/Monitor/MonitorStep.ts +10 -1
- package/Types/Monitor/MonitorStepDomainMonitor.ts +21 -0
- package/Types/Monitor/PortMonitor/PortMonitorTimings.ts +10 -0
- package/Types/Permission.ts +23 -175
- package/Types/Probe/ProbeMonitorResponse.ts +6 -0
- package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +2 -3
- package/UI/Components/ErrorBoundary.tsx +138 -11
- package/UI/Components/Feed/FeedItem.tsx +9 -2
- package/UI/Components/ModelDetail/CardModelDetail.tsx +0 -12
- package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +12 -2
- package/UI/Components/MoreMenu/MoreMenu.tsx +285 -97
- package/UI/Components/MoreMenu/MoreMenuItem.tsx +8 -5
- package/UI/Utils/DownloadFile.ts +16 -8
- package/UI/Utils/ErrorSupportBundle.ts +805 -0
- package/UI/Utils/ModelAPI/ModelAPI.ts +19 -8
- package/UI/Utils/Project.ts +4 -0
- package/UI/Utils/StatusPage.ts +8 -2
- package/UI/Utils/UseDashboardGridDnd.ts +917 -0
- package/Utils/Dashboard/DashboardViewConfig.ts +80 -36
- package/Utils/Dashboard/GridLayout.ts +523 -0
- package/Utils/Metrics/RecordingRuleExpression.ts +19 -17
- package/Utils/Monitor/MonitorMetricType.ts +44 -2
- package/Utils/StatusPage/GroupNestingLayout.ts +69 -0
- package/Utils/StatusPage/GroupTree.ts +157 -66
- package/Utils/StatusPage/ResourceUptime.ts +37 -2
- package/Utils/Telemetry/SavedViewTimeRange.ts +114 -0
- package/Utils/Telemetry/TelemetryQueryTimeRange.ts +334 -0
- package/build/dist/Models/DatabaseModels/AIRun.js +39 -1
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertFeed.js +32 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Dashboard.js +29 -0
- package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +2 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.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/IncidentFeed.js +32 -0
- package/build/dist/Models/DatabaseModels/IncidentFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.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/LogSavedView.js +33 -0
- package/build/dist/Models/DatabaseModels/LogSavedView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +241 -11
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js +4 -4
- package/build/dist/Models/DatabaseModels/StatusPage.js +29 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +28 -46
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +111 -11
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +8 -5
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +29 -11
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +14 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js +12 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786096660558-AddTimeRangeToLogSavedView.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786096660558-AddTimeRangeToLogSavedView.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786101798351-MigrationName.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786101798351-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786105470826-MigrationName.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786105470826-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786400000000-AddMasterPasswordSalt.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786400000000-AddMasterPasswordSalt.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786500000000-AddInvestigationCodeFixRecommendation.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786500000000-AddInvestigationCodeFixRecommendation.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/AIRunService.js +58 -12
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +74 -21
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/AlertFeedService.js +3 -0
- package/build/dist/Server/Services/AlertFeedService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +29 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +21 -2
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentFeedService.js +3 -0
- package/build/dist/Server/Services/IncidentFeedService.js.map +1 -1
- package/build/dist/Server/Services/LlmLogService.js +22 -1
- package/build/dist/Server/Services/LlmLogService.js.map +1 -1
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +3 -0
- package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +4 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +8 -5
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +63 -24
- package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +2 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +2 -0
- package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +156 -28
- package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +21 -19
- package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js +128 -49
- package/build/dist/Server/Utils/AI/SRE/ConfidenceSignal.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js +170 -31
- package/build/dist/Server/Utils/AI/SRE/FixFromIncidentTaskTrigger.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +21 -19
- package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js +33 -9
- package/build/dist/Server/Utils/AI/SRE/InstrumentationTaskTrigger.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +9 -5
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +121 -41
- package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationSubjectLock.js +46 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationSubjectLock.js.map +1 -0
- package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js +61 -14
- package/build/dist/Server/Utils/AI/SRE/PostedRootCause.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js +79 -1
- package/build/dist/Server/Utils/AI/SRE/SubjectCodeFixRun.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/ClusterConfig.js +21 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/ClusterConfig.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js +20 -3
- package/build/dist/Server/Utils/Monitor/Criteria/APIRequestCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js +43 -0
- package/build/dist/Server/Utils/Monitor/Criteria/DomainMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +33 -0
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/PasswordHash.js +25 -4
- package/build/dist/Server/Utils/PasswordHash.js.map +1 -1
- package/build/dist/Types/AI/AIRunCodeFixRecommendation.js +18 -0
- package/build/dist/Types/AI/AIRunCodeFixRecommendation.js.map +1 -0
- package/build/dist/Types/AI/CodeFixTaskContext.js +23 -3
- package/build/dist/Types/AI/CodeFixTaskContext.js.map +1 -1
- package/build/dist/Types/AI/CodeFixTaskType.js +3 -3
- package/build/dist/Types/HashedString.js +4 -3
- package/build/dist/Types/HashedString.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +4 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/DomainMonitor/DomainLookupMethod.js +24 -0
- package/build/dist/Types/Monitor/DomainMonitor/DomainLookupMethod.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +24 -7
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
- package/build/dist/Types/Monitor/MonitorMetricType.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/MonitorStepDomainMonitor.js +15 -0
- package/build/dist/Types/Monitor/MonitorStepDomainMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/PortMonitor/PortMonitorTimings.js +2 -0
- package/build/dist/Types/Monitor/PortMonitor/PortMonitorTimings.js.map +1 -0
- package/build/dist/Types/Permission.js +23 -155
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +2 -5
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
- package/build/dist/UI/Components/ErrorBoundary.js +67 -8
- package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
- package/build/dist/UI/Components/Feed/FeedItem.js +2 -2
- package/build/dist/UI/Components/Feed/FeedItem.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +0 -12
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +12 -2
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +193 -65
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
- package/build/dist/UI/Utils/DownloadFile.js +15 -8
- package/build/dist/UI/Utils/DownloadFile.js.map +1 -1
- package/build/dist/UI/Utils/ErrorSupportBundle.js +476 -0
- package/build/dist/UI/Utils/ErrorSupportBundle.js.map +1 -0
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +18 -8
- package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
- package/build/dist/UI/Utils/Project.js +3 -0
- package/build/dist/UI/Utils/Project.js.map +1 -1
- package/build/dist/UI/Utils/StatusPage.js +4 -4
- package/build/dist/UI/Utils/StatusPage.js.map +1 -1
- package/build/dist/UI/Utils/UseDashboardGridDnd.js +551 -0
- package/build/dist/UI/Utils/UseDashboardGridDnd.js.map +1 -0
- package/build/dist/Utils/Dashboard/DashboardViewConfig.js +42 -26
- package/build/dist/Utils/Dashboard/DashboardViewConfig.js.map +1 -1
- package/build/dist/Utils/Dashboard/GridLayout.js +338 -0
- package/build/dist/Utils/Dashboard/GridLayout.js.map +1 -0
- package/build/dist/Utils/Metrics/RecordingRuleExpression.js +19 -17
- package/build/dist/Utils/Metrics/RecordingRuleExpression.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js +38 -6
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Utils/StatusPage/GroupNestingLayout.js +46 -0
- package/build/dist/Utils/StatusPage/GroupNestingLayout.js.map +1 -1
- package/build/dist/Utils/StatusPage/GroupTree.js +79 -34
- package/build/dist/Utils/StatusPage/GroupTree.js.map +1 -1
- package/build/dist/Utils/StatusPage/ResourceUptime.js +22 -1
- package/build/dist/Utils/StatusPage/ResourceUptime.js.map +1 -1
- package/build/dist/Utils/Telemetry/SavedViewTimeRange.js +79 -0
- package/build/dist/Utils/Telemetry/SavedViewTimeRange.js.map +1 -0
- package/build/dist/Utils/Telemetry/TelemetryQueryTimeRange.js +236 -0
- package/build/dist/Utils/Telemetry/TelemetryQueryTimeRange.js.map +1 -0
- package/package.json +1 -1
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import OneUptimeDate from "../../../../Types/Date";
|
|
11
11
|
import AIRunType from "../../../../Types/AI/AIRunType";
|
|
12
12
|
import AIRunStatus from "../../../../Types/AI/AIRunStatus";
|
|
13
|
+
import AIRunCodeFixRecommendation from "../../../../Types/AI/AIRunCodeFixRecommendation";
|
|
13
14
|
import AIRun from "../../../../Models/DatabaseModels/AIRun";
|
|
14
15
|
import AIRunService from "../../../Services/AIRunService";
|
|
15
16
|
import ProjectService from "../../../Services/ProjectService";
|
|
@@ -18,6 +19,7 @@ import SortOrder from "../../../../Types/BaseDatabase/SortOrder";
|
|
|
18
19
|
import QueryHelper from "../../../Types/Database/QueryHelper";
|
|
19
20
|
import logger from "../../Logger";
|
|
20
21
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
22
|
+
import InvestigationSubjectLock from "./InvestigationSubjectLock";
|
|
21
23
|
/*
|
|
22
24
|
* AI SRE — the durable investigation queue (Phase 2's first item; Q1
|
|
23
25
|
* decided as the DB-claim pattern on AIRun rows, no new infrastructure).
|
|
@@ -51,11 +53,11 @@ import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
|
51
53
|
// Initial attempt + one retry.
|
|
52
54
|
export const MAX_INVESTIGATION_ATTEMPTS = 2;
|
|
53
55
|
/*
|
|
54
|
-
* G4 cost guardrail: at most this many investigations may be Running
|
|
55
|
-
*
|
|
56
|
-
* Project.aiMaxConcurrentInvestigations
|
|
57
|
-
* queues (bounded by dedupe + severity
|
|
58
|
-
* rate instead of being dropped.
|
|
56
|
+
* G4 cost guardrail: at most this many investigations may be Running in an
|
|
57
|
+
* incident, alert or subjectless lane at once. Each lane has its own project
|
|
58
|
+
* override; subjectless work keeps Project.aiMaxConcurrentInvestigations.
|
|
59
|
+
* Enforced at CLAIM time, so a storm queues (bounded by dedupe + severity
|
|
60
|
+
* gates + this TTL) and drains at cap rate instead of being dropped.
|
|
59
61
|
*/
|
|
60
62
|
export const DEFAULT_MAX_CONCURRENT_INVESTIGATIONS = 3;
|
|
61
63
|
/*
|
|
@@ -65,7 +67,7 @@ export const DEFAULT_MAX_CONCURRENT_INVESTIGATIONS = 3;
|
|
|
65
67
|
const MIN_CONCURRENT_INVESTIGATIONS = 1;
|
|
66
68
|
const MAX_CONCURRENT_INVESTIGATIONS = 25;
|
|
67
69
|
/*
|
|
68
|
-
* Lane priority. Two kinds of run share this queue and
|
|
70
|
+
* Lane priority. Two kinds of run share this queue and each subject lane's
|
|
69
71
|
* concurrency cap above:
|
|
70
72
|
* - the INTERACTIVE lane (incident/alert RCA) — a human is waiting;
|
|
71
73
|
* - the PREVENTIVE lane (AI-insight triage, identified by
|
|
@@ -108,13 +110,20 @@ export default class AIInvestigationQueue {
|
|
|
108
110
|
*/
|
|
109
111
|
static async enqueue(data) {
|
|
110
112
|
const { projectId } = data;
|
|
113
|
+
if (data.subjectIncidentId && data.subjectAlertId) {
|
|
114
|
+
logger.error(`AI: not enqueueing investigation for project ${projectId.toString()} — a run cannot belong to both an incident and an alert.`);
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
111
117
|
/*
|
|
112
118
|
* Budget quiet-skip at enqueue: when the daily budget is already
|
|
113
119
|
* exhausted there is no point recording intent that the TTL would
|
|
114
120
|
* expire anyway. Fails cheap (skip) like all the cost gates.
|
|
115
121
|
*/
|
|
116
122
|
try {
|
|
117
|
-
const budget = await AIService.getAutonomousDailyBudgetStatus(projectId
|
|
123
|
+
const budget = await AIService.getAutonomousDailyBudgetStatus(projectId, {
|
|
124
|
+
incidentId: data.subjectIncidentId,
|
|
125
|
+
alertId: data.subjectAlertId,
|
|
126
|
+
});
|
|
118
127
|
if (budget.exhausted) {
|
|
119
128
|
logger.debug(`AI: not enqueueing investigation for project ${projectId.toString()} — daily autonomous token budget exhausted (${budget.usedTokensToday} of ${budget.limitInTokens} tokens used today).`);
|
|
120
129
|
return null;
|
|
@@ -131,6 +140,13 @@ export default class AIInvestigationQueue {
|
|
|
131
140
|
run.projectId = projectId;
|
|
132
141
|
run.runType = runType;
|
|
133
142
|
run.status = AIRunStatus.Queued;
|
|
143
|
+
/*
|
|
144
|
+
* Queued and Running rows must never advertise an unresolved code-fix
|
|
145
|
+
* decision. The engine atomically moves eligible incident/alert runs to
|
|
146
|
+
* Pending only when it wins the Running -> Completed transition; until
|
|
147
|
+
* then the fail-closed default is NotRecommended.
|
|
148
|
+
*/
|
|
149
|
+
run.codeFixRecommendation = AIRunCodeFixRecommendation.NotRecommended;
|
|
134
150
|
if (data.subjectIncidentId) {
|
|
135
151
|
run.triggeredByIncidentId = data.subjectIncidentId;
|
|
136
152
|
}
|
|
@@ -149,10 +165,28 @@ export default class AIInvestigationQueue {
|
|
|
149
165
|
}
|
|
150
166
|
let createdRun;
|
|
151
167
|
try {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
168
|
+
const createRun = async () => {
|
|
169
|
+
return AIRunService.create({
|
|
170
|
+
data: run,
|
|
171
|
+
props: { isRoot: true },
|
|
172
|
+
});
|
|
173
|
+
};
|
|
174
|
+
/*
|
|
175
|
+
* Linearize subject Investigation creation with FixFromIncident's
|
|
176
|
+
* final latest-source validation and INSERT. Whichever writer gets the
|
|
177
|
+
* shared lock first becomes authoritative: a fix inserted first is
|
|
178
|
+
* valid at that instant; an Investigation inserted first is observed by
|
|
179
|
+
* the fix gate and makes the stale request fail closed.
|
|
180
|
+
*/
|
|
181
|
+
createdRun =
|
|
182
|
+
runType === AIRunType.Investigation &&
|
|
183
|
+
(data.subjectIncidentId || data.subjectAlertId)
|
|
184
|
+
? await InvestigationSubjectLock.runExclusive({
|
|
185
|
+
projectId,
|
|
186
|
+
incidentId: data.subjectIncidentId,
|
|
187
|
+
alertId: data.subjectAlertId,
|
|
188
|
+
}, createRun)
|
|
189
|
+
: await createRun();
|
|
156
190
|
}
|
|
157
191
|
catch (error) {
|
|
158
192
|
logger.error(`AI: failed to enqueue investigation run: ${error}`);
|
|
@@ -233,6 +267,7 @@ export default class AIInvestigationQueue {
|
|
|
233
267
|
fromStatus: AIRunStatus.Queued,
|
|
234
268
|
set: {
|
|
235
269
|
status: AIRunStatus.Cancelled,
|
|
270
|
+
codeFixRecommendation: AIRunCodeFixRecommendation.NotRecommended,
|
|
236
271
|
completedAt: OneUptimeDate.getCurrentDate(),
|
|
237
272
|
errorMessage: `Expired in the investigation queue after ${QUEUE_TTL_MINUTES} minutes — a first-pass analysis this late would no longer be useful. The project may have been at its concurrency cap or daily token budget.`,
|
|
238
273
|
},
|
|
@@ -327,8 +362,10 @@ export default class AIInvestigationQueue {
|
|
|
327
362
|
const requeued = await AIRunService.attemptStatusTransition({
|
|
328
363
|
aiRunId: data.aiRunId,
|
|
329
364
|
fromStatus: AIRunStatus.Running,
|
|
365
|
+
expectedAttemptCount: data.attemptCount,
|
|
330
366
|
set: {
|
|
331
367
|
status: AIRunStatus.Queued,
|
|
368
|
+
codeFixRecommendation: AIRunCodeFixRecommendation.NotRecommended,
|
|
332
369
|
errorMessage: `Attempt ${data.attemptCount} failed and the run was requeued: ${truncatedMessage}`,
|
|
333
370
|
},
|
|
334
371
|
});
|
|
@@ -341,8 +378,10 @@ export default class AIInvestigationQueue {
|
|
|
341
378
|
const finalized = await AIRunService.attemptStatusTransition({
|
|
342
379
|
aiRunId: data.aiRunId,
|
|
343
380
|
fromStatus: AIRunStatus.Running,
|
|
381
|
+
expectedAttemptCount: data.attemptCount,
|
|
344
382
|
set: {
|
|
345
383
|
status: AIRunStatus.Error,
|
|
384
|
+
codeFixRecommendation: AIRunCodeFixRecommendation.NotRecommended,
|
|
346
385
|
completedAt: OneUptimeDate.getCurrentDate(),
|
|
347
386
|
errorMessage: truncatedMessage,
|
|
348
387
|
},
|
|
@@ -366,8 +405,11 @@ export default class AIInvestigationQueue {
|
|
|
366
405
|
const requeued = await AIRunService.attemptStatusTransition({
|
|
367
406
|
aiRunId: run.id,
|
|
368
407
|
fromStatus: AIRunStatus.Running,
|
|
408
|
+
expectedAttemptCount: run.attemptCount,
|
|
409
|
+
expectedLastHeartbeatAt: run.lastHeartbeatAt,
|
|
369
410
|
set: {
|
|
370
411
|
status: AIRunStatus.Queued,
|
|
412
|
+
codeFixRecommendation: AIRunCodeFixRecommendation.NotRecommended,
|
|
371
413
|
errorMessage: `Attempt ${run.attemptCount} stopped reporting progress (the server processing it may have restarted) and the run was requeued.`,
|
|
372
414
|
},
|
|
373
415
|
});
|
|
@@ -378,8 +420,11 @@ export default class AIInvestigationQueue {
|
|
|
378
420
|
const staled = await AIRunService.attemptStatusTransition({
|
|
379
421
|
aiRunId: run.id,
|
|
380
422
|
fromStatus: AIRunStatus.Running,
|
|
423
|
+
expectedAttemptCount: run.attemptCount,
|
|
424
|
+
expectedLastHeartbeatAt: run.lastHeartbeatAt,
|
|
381
425
|
set: {
|
|
382
426
|
status: AIRunStatus.Stale,
|
|
427
|
+
codeFixRecommendation: AIRunCodeFixRecommendation.NotRecommended,
|
|
383
428
|
completedAt: OneUptimeDate.getCurrentDate(),
|
|
384
429
|
errorMessage: "The run stopped reporting progress and was marked as stale after exhausting its retry attempts. The server processing it may have restarted.",
|
|
385
430
|
},
|
|
@@ -390,8 +435,9 @@ export default class AIInvestigationQueue {
|
|
|
390
435
|
*/
|
|
391
436
|
if (staled > 0) {
|
|
392
437
|
await this.handOffSettledInvestigationToRemediation(run);
|
|
438
|
+
return "stale";
|
|
393
439
|
}
|
|
394
|
-
return "
|
|
440
|
+
return "noop";
|
|
395
441
|
}
|
|
396
442
|
/*
|
|
397
443
|
* Release a terminally-settled incident/alert investigation to the
|
|
@@ -435,29 +481,43 @@ export default class AIInvestigationQueue {
|
|
|
435
481
|
* errors.
|
|
436
482
|
*/
|
|
437
483
|
static async passesClaimGates(run) {
|
|
438
|
-
|
|
439
|
-
|
|
484
|
+
if (run.triggeredByIncidentId && run.triggeredByAlertId) {
|
|
485
|
+
logger.error(`AI: leaving run ${run.id.toString()} queued — a run cannot belong to both an incident and an alert.`);
|
|
486
|
+
return false;
|
|
487
|
+
}
|
|
488
|
+
/*
|
|
489
|
+
* Each subject lane owns its own concurrency pool. Insight triage and any
|
|
490
|
+
* future subjectless queue work retain the legacy project-wide fallback.
|
|
491
|
+
*/
|
|
440
492
|
const project = await ProjectService.findOneById({
|
|
441
493
|
id: run.projectId,
|
|
442
|
-
select: {
|
|
494
|
+
select: {
|
|
495
|
+
aiMaxConcurrentInvestigations: true,
|
|
496
|
+
incidentAiMaxConcurrentInvestigations: true,
|
|
497
|
+
alertAiMaxConcurrentInvestigations: true,
|
|
498
|
+
},
|
|
443
499
|
props: { isRoot: true },
|
|
444
500
|
});
|
|
445
|
-
|
|
501
|
+
let configuredConcurrencyCap = project === null || project === void 0 ? void 0 : project.aiMaxConcurrentInvestigations;
|
|
502
|
+
if (run.triggeredByIncidentId) {
|
|
503
|
+
configuredConcurrencyCap = project === null || project === void 0 ? void 0 : project.incidentAiMaxConcurrentInvestigations;
|
|
504
|
+
}
|
|
505
|
+
else if (run.triggeredByAlertId) {
|
|
506
|
+
configuredConcurrencyCap = project === null || project === void 0 ? void 0 : project.alertAiMaxConcurrentInvestigations;
|
|
507
|
+
}
|
|
508
|
+
const concurrencyCap = Math.min(MAX_CONCURRENT_INVESTIGATIONS, Math.max(MIN_CONCURRENT_INVESTIGATIONS, configuredConcurrencyCap !== null && configuredConcurrencyCap !== void 0 ? configuredConcurrencyCap : DEFAULT_MAX_CONCURRENT_INVESTIGATIONS));
|
|
509
|
+
const subjectLaneQuery = this.getSubjectLaneQuery(run);
|
|
446
510
|
/*
|
|
447
511
|
* Investigations, remediation plans and remediation executions share
|
|
448
|
-
* the
|
|
449
|
-
*
|
|
512
|
+
* the cap inside their incident, alert or subjectless lane. Work in one
|
|
513
|
+
* lane never consumes another lane's concurrency slots.
|
|
450
514
|
*/
|
|
451
515
|
const runningCount = (await AIRunService.countBy({
|
|
452
|
-
query: {
|
|
453
|
-
projectId: run.projectId,
|
|
454
|
-
runType: QueryHelper.any([
|
|
516
|
+
query: Object.assign({ projectId: run.projectId, runType: QueryHelper.any([
|
|
455
517
|
AIRunType.Investigation,
|
|
456
518
|
AIRunType.RemediationPlan,
|
|
457
519
|
AIRunType.RemediationExecution,
|
|
458
|
-
]),
|
|
459
|
-
status: AIRunStatus.Running,
|
|
460
|
-
},
|
|
520
|
+
]), status: AIRunStatus.Running }, subjectLaneQuery),
|
|
461
521
|
props: { isRoot: true },
|
|
462
522
|
})).toNumber();
|
|
463
523
|
if (runningCount >= concurrencyCap) {
|
|
@@ -472,10 +532,10 @@ export default class AIInvestigationQueue {
|
|
|
472
532
|
* kinds share ONE combined sub-cap, so together they always leave the
|
|
473
533
|
* reserved slot reachable. Floored at 1 so a project running at the
|
|
474
534
|
* minimum cap of 1 still drains its background work (slower, one at a
|
|
475
|
-
* time) instead of deadlocking the lane entirely —
|
|
476
|
-
*
|
|
477
|
-
*
|
|
478
|
-
*
|
|
535
|
+
* time) instead of deadlocking the lane entirely — foreground work keeps
|
|
536
|
+
* its priority through the lane cap check above, which a single running
|
|
537
|
+
* background run cannot outlast for long (both kinds are read-only and
|
|
538
|
+
* short).
|
|
479
539
|
*/
|
|
480
540
|
const isBackgroundLane = Boolean(run.triggeredByAiInsightId) ||
|
|
481
541
|
run.runType === AIRunType.RemediationPlan ||
|
|
@@ -487,23 +547,14 @@ export default class AIInvestigationQueue {
|
|
|
487
547
|
* are their own runType — the two counts never overlap.
|
|
488
548
|
*/
|
|
489
549
|
const runningTriageCount = (await AIRunService.countBy({
|
|
490
|
-
query: {
|
|
491
|
-
projectId: run.projectId,
|
|
492
|
-
runType: AIRunType.Investigation,
|
|
493
|
-
status: AIRunStatus.Running,
|
|
494
|
-
triggeredByAiInsightId: QueryHelper.notNull(),
|
|
495
|
-
},
|
|
550
|
+
query: Object.assign({ projectId: run.projectId, runType: AIRunType.Investigation, status: AIRunStatus.Running, triggeredByAiInsightId: QueryHelper.notNull() }, subjectLaneQuery),
|
|
496
551
|
props: { isRoot: true },
|
|
497
552
|
})).toNumber();
|
|
498
553
|
const runningPlanCount = (await AIRunService.countBy({
|
|
499
|
-
query: {
|
|
500
|
-
projectId: run.projectId,
|
|
501
|
-
runType: QueryHelper.any([
|
|
554
|
+
query: Object.assign({ projectId: run.projectId, runType: QueryHelper.any([
|
|
502
555
|
AIRunType.RemediationPlan,
|
|
503
556
|
AIRunType.RemediationExecution,
|
|
504
|
-
]),
|
|
505
|
-
status: AIRunStatus.Running,
|
|
506
|
-
},
|
|
557
|
+
]), status: AIRunStatus.Running }, subjectLaneQuery),
|
|
507
558
|
props: { isRoot: true },
|
|
508
559
|
})).toNumber();
|
|
509
560
|
const runningBackgroundCount = runningTriageCount + runningPlanCount;
|
|
@@ -512,13 +563,39 @@ export default class AIInvestigationQueue {
|
|
|
512
563
|
return false;
|
|
513
564
|
}
|
|
514
565
|
}
|
|
515
|
-
const budget = await AIService.getAutonomousDailyBudgetStatus(run.projectId
|
|
566
|
+
const budget = await AIService.getAutonomousDailyBudgetStatus(run.projectId, {
|
|
567
|
+
incidentId: run.triggeredByIncidentId,
|
|
568
|
+
alertId: run.triggeredByAlertId,
|
|
569
|
+
});
|
|
516
570
|
if (budget.exhausted) {
|
|
517
571
|
logger.debug(`AI: leaving run ${run.id.toString()} queued — daily autonomous token budget exhausted.`);
|
|
518
572
|
return false;
|
|
519
573
|
}
|
|
520
574
|
return true;
|
|
521
575
|
}
|
|
576
|
+
/*
|
|
577
|
+
* Scope queue counts to one independent lane. The concrete subject id is
|
|
578
|
+
* deliberately not compared: all incidents share the incident cap, all
|
|
579
|
+
* alerts share the alert cap, and subjectless work must have neither link.
|
|
580
|
+
*/
|
|
581
|
+
static getSubjectLaneQuery(run) {
|
|
582
|
+
if (run.triggeredByIncidentId) {
|
|
583
|
+
return {
|
|
584
|
+
triggeredByIncidentId: QueryHelper.notNull(),
|
|
585
|
+
triggeredByAlertId: QueryHelper.isNull(),
|
|
586
|
+
};
|
|
587
|
+
}
|
|
588
|
+
if (run.triggeredByAlertId) {
|
|
589
|
+
return {
|
|
590
|
+
triggeredByIncidentId: QueryHelper.isNull(),
|
|
591
|
+
triggeredByAlertId: QueryHelper.notNull(),
|
|
592
|
+
};
|
|
593
|
+
}
|
|
594
|
+
return {
|
|
595
|
+
triggeredByIncidentId: QueryHelper.isNull(),
|
|
596
|
+
triggeredByAlertId: QueryHelper.isNull(),
|
|
597
|
+
};
|
|
598
|
+
}
|
|
522
599
|
/*
|
|
523
600
|
* The atomic claim: Queued -> Running, guarded on the attemptCount the
|
|
524
601
|
* caller observed, so a stale queue snapshot can neither double-claim
|
|
@@ -556,6 +633,7 @@ export default class AIInvestigationQueue {
|
|
|
556
633
|
await AIRunService.attemptStatusTransition({
|
|
557
634
|
aiRunId: run.id,
|
|
558
635
|
fromStatus: AIRunStatus.Running,
|
|
636
|
+
expectedAttemptCount: attempt,
|
|
559
637
|
set: {
|
|
560
638
|
status: AIRunStatus.Error,
|
|
561
639
|
completedAt: OneUptimeDate.getCurrentDate(),
|
|
@@ -580,6 +658,7 @@ export default class AIInvestigationQueue {
|
|
|
580
658
|
await AIRunService.attemptStatusTransition({
|
|
581
659
|
aiRunId: run.id,
|
|
582
660
|
fromStatus: AIRunStatus.Running,
|
|
661
|
+
expectedAttemptCount: attempt,
|
|
583
662
|
set: {
|
|
584
663
|
status: AIRunStatus.Error,
|
|
585
664
|
completedAt: OneUptimeDate.getCurrentDate(),
|
|
@@ -650,6 +729,7 @@ export default class AIInvestigationQueue {
|
|
|
650
729
|
await AIRunService.attemptStatusTransition({
|
|
651
730
|
aiRunId: run.id,
|
|
652
731
|
fromStatus: AIRunStatus.Running,
|
|
732
|
+
expectedAttemptCount: attempt,
|
|
653
733
|
set: {
|
|
654
734
|
status: AIRunStatus.Error,
|
|
655
735
|
completedAt: OneUptimeDate.getCurrentDate(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvestigationQueue.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/InvestigationQueue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InvestigationQueue.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/InvestigationQueue.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import BadDataException from "../../../../Types/Exception/BadDataException";
|
|
2
|
+
import Semaphore from "../../../Infrastructure/Semaphore";
|
|
3
|
+
import logger from "../../Logger";
|
|
4
|
+
/*
|
|
5
|
+
* Investigation creation and FixFromIncident authorization must share one
|
|
6
|
+
* linearization point. Without it, a new Investigation can be inserted after
|
|
7
|
+
* a fix trigger's "latest run" read but before the CodeFix INSERT, allowing a
|
|
8
|
+
* task grounded in an analysis that is no longer authoritative.
|
|
9
|
+
*/
|
|
10
|
+
export const INVESTIGATION_SUBJECT_LOCK_NAMESPACE = "InvestigationSubjectLifecycle";
|
|
11
|
+
export function getInvestigationSubjectLockKey(data) {
|
|
12
|
+
if (Boolean(data.incidentId) === Boolean(data.alertId)) {
|
|
13
|
+
throw new BadDataException("Exactly one incident or alert subject is required.");
|
|
14
|
+
}
|
|
15
|
+
const subjectKey = data.incidentId
|
|
16
|
+
? `incident-${data.incidentId.toString()}`
|
|
17
|
+
: `alert-${data.alertId.toString()}`;
|
|
18
|
+
return `${data.projectId.toString()}-${subjectKey}`;
|
|
19
|
+
}
|
|
20
|
+
export default class InvestigationSubjectLock {
|
|
21
|
+
static async runExclusive(data, operation) {
|
|
22
|
+
const key = getInvestigationSubjectLockKey(data);
|
|
23
|
+
const mutex = await Semaphore.lock({
|
|
24
|
+
key,
|
|
25
|
+
namespace: INVESTIGATION_SUBJECT_LOCK_NAMESPACE,
|
|
26
|
+
lockTimeout: 30 * 1000,
|
|
27
|
+
acquireTimeout: 10 * 1000,
|
|
28
|
+
});
|
|
29
|
+
try {
|
|
30
|
+
return await operation();
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
try {
|
|
34
|
+
await Semaphore.release(mutex);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
/*
|
|
38
|
+
* The Redis mutex expires automatically. Do not hide the operation's
|
|
39
|
+
* result (or its more useful error) when best-effort release fails.
|
|
40
|
+
*/
|
|
41
|
+
logger.error(`AI: failed to release the investigation subject lock ${key}; it will expire automatically: ${error}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=InvestigationSubjectLock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InvestigationSubjectLock.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/InvestigationSubjectLock.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;AAC5E,OAAO,SAA6B,MAAM,mCAAmC,CAAC;AAC9E,OAAO,MAAM,MAAM,cAAc,CAAC;AAElC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAC/C,+BAA+B,CAAC;AAQlC,MAAM,UAAU,8BAA8B,CAC5C,IAAkC;IAElC,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,gBAAgB,CACxB,oDAAoD,CACrD,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAW,IAAI,CAAC,UAAU;QACxC,CAAC,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE;QAC1C,CAAC,CAAC,SAAS,IAAI,CAAC,OAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;IAExC,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,UAAU,EAAE,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,OAAO,OAAO,wBAAwB;IACpC,MAAM,CAAC,KAAK,CAAC,YAAY,CAC9B,IAAkC,EAClC,SAA2B;QAE3B,MAAM,GAAG,GAAW,8BAA8B,CAAC,IAAI,CAAC,CAAC;QACzD,MAAM,KAAK,GAAmB,MAAM,SAAS,CAAC,IAAI,CAAC;YACjD,GAAG;YACH,SAAS,EAAE,oCAAoC;YAC/C,WAAW,EAAE,EAAE,GAAG,IAAI;YACtB,cAAc,EAAE,EAAE,GAAG,IAAI;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC;gBACH,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf;;;mBAGG;gBACH,MAAM,CAAC,KAAK,CACV,wDAAwD,GAAG,mCAAmC,KAAK,EAAE,CACtG,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -13,7 +13,9 @@ import { IncidentFeedEventType, } from "../../../../Models/DatabaseModels/Incide
|
|
|
13
13
|
import { AlertFeedEventType, } from "../../../../Models/DatabaseModels/AlertFeed";
|
|
14
14
|
import ObjectID from "../../../../Types/ObjectID";
|
|
15
15
|
import SortOrder from "../../../../Types/BaseDatabase/SortOrder";
|
|
16
|
+
import QueryHelper from "../../../Types/Database/QueryHelper";
|
|
16
17
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
18
|
+
export const AI_ROOT_CAUSE_HEADING = "AI — Automated Root Cause Analysis";
|
|
17
19
|
/*
|
|
18
20
|
* The analysis an AI investigation posted for a subject.
|
|
19
21
|
*
|
|
@@ -24,12 +26,42 @@ import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
|
24
26
|
* where the analysis lives moves one place.
|
|
25
27
|
*/
|
|
26
28
|
export default class PostedRootCause {
|
|
27
|
-
|
|
29
|
+
/*
|
|
30
|
+
* Resolve one run's report exactly. A narrow compatibility path keeps
|
|
31
|
+
* reports written before aiRunId was deployed visible. Deployment time is
|
|
32
|
+
* not the migration file's build timestamp, so compatibility cannot use a
|
|
33
|
+
* wall-clock cutover. Instead, only null-associated rows posted after the
|
|
34
|
+
* run completed and carrying the server's branded AI heading qualify.
|
|
35
|
+
*/
|
|
36
|
+
static async getForInvestigation(data) {
|
|
37
|
+
const exactAnalysis = await this.getForSubject({
|
|
38
|
+
incidentId: data.incidentId,
|
|
39
|
+
alertId: data.alertId,
|
|
40
|
+
aiRunId: data.aiRunId,
|
|
41
|
+
});
|
|
42
|
+
if (exactAnalysis) {
|
|
43
|
+
return exactAnalysis;
|
|
44
|
+
}
|
|
45
|
+
if (!data.runCompletedAt) {
|
|
46
|
+
return null;
|
|
47
|
+
}
|
|
48
|
+
const legacyAnalysis = await this.getForSubject({
|
|
49
|
+
incidentId: data.incidentId,
|
|
50
|
+
alertId: data.alertId,
|
|
51
|
+
withoutAIRunId: true,
|
|
52
|
+
createdAtOrAfter: data.runCompletedAt,
|
|
53
|
+
});
|
|
54
|
+
return (legacyAnalysis === null || legacyAnalysis === void 0 ? void 0 : legacyAnalysis.includes(AI_ROOT_CAUSE_HEADING))
|
|
55
|
+
? legacyAnalysis
|
|
56
|
+
: null;
|
|
57
|
+
}
|
|
58
|
+
static async getForIncident(incidentId, options) {
|
|
28
59
|
const feedItem = await IncidentFeedService.findOneBy({
|
|
29
|
-
query: {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
60
|
+
query: Object.assign(Object.assign(Object.assign({ incidentId: incidentId, incidentFeedEventType: IncidentFeedEventType.RootCause }, ((options === null || options === void 0 ? void 0 : options.aiRunId) ? { aiRunId: options.aiRunId } : {})), ((options === null || options === void 0 ? void 0 : options.withoutAIRunId) ? { aiRunId: QueryHelper.isNull() } : {})), ((options === null || options === void 0 ? void 0 : options.createdAtOrAfter)
|
|
61
|
+
? {
|
|
62
|
+
createdAt: QueryHelper.greaterThanEqualTo(options.createdAtOrAfter),
|
|
63
|
+
}
|
|
64
|
+
: {})),
|
|
33
65
|
select: {
|
|
34
66
|
feedInfoInMarkdown: true,
|
|
35
67
|
},
|
|
@@ -41,12 +73,13 @@ export default class PostedRootCause {
|
|
|
41
73
|
const analysis = ((feedItem === null || feedItem === void 0 ? void 0 : feedItem.feedInfoInMarkdown) || "").trim();
|
|
42
74
|
return analysis || null;
|
|
43
75
|
}
|
|
44
|
-
static async getForAlert(alertId) {
|
|
76
|
+
static async getForAlert(alertId, options) {
|
|
45
77
|
const feedItem = await AlertFeedService.findOneBy({
|
|
46
|
-
query: {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
78
|
+
query: Object.assign(Object.assign(Object.assign({ alertId: alertId, alertFeedEventType: AlertFeedEventType.RootCause }, ((options === null || options === void 0 ? void 0 : options.aiRunId) ? { aiRunId: options.aiRunId } : {})), ((options === null || options === void 0 ? void 0 : options.withoutAIRunId) ? { aiRunId: QueryHelper.isNull() } : {})), ((options === null || options === void 0 ? void 0 : options.createdAtOrAfter)
|
|
79
|
+
? {
|
|
80
|
+
createdAt: QueryHelper.greaterThanEqualTo(options.createdAtOrAfter),
|
|
81
|
+
}
|
|
82
|
+
: {})),
|
|
50
83
|
select: {
|
|
51
84
|
feedInfoInMarkdown: true,
|
|
52
85
|
},
|
|
@@ -60,10 +93,18 @@ export default class PostedRootCause {
|
|
|
60
93
|
}
|
|
61
94
|
static async getForSubject(data) {
|
|
62
95
|
if (data.incidentId) {
|
|
63
|
-
return PostedRootCause.getForIncident(data.incidentId
|
|
96
|
+
return PostedRootCause.getForIncident(data.incidentId, {
|
|
97
|
+
aiRunId: data.aiRunId,
|
|
98
|
+
withoutAIRunId: data.withoutAIRunId,
|
|
99
|
+
createdAtOrAfter: data.createdAtOrAfter,
|
|
100
|
+
});
|
|
64
101
|
}
|
|
65
102
|
if (data.alertId) {
|
|
66
|
-
return PostedRootCause.getForAlert(data.alertId
|
|
103
|
+
return PostedRootCause.getForAlert(data.alertId, {
|
|
104
|
+
aiRunId: data.aiRunId,
|
|
105
|
+
withoutAIRunId: data.withoutAIRunId,
|
|
106
|
+
createdAtOrAfter: data.createdAtOrAfter,
|
|
107
|
+
});
|
|
67
108
|
}
|
|
68
109
|
return null;
|
|
69
110
|
}
|
|
@@ -71,13 +112,19 @@ export default class PostedRootCause {
|
|
|
71
112
|
__decorate([
|
|
72
113
|
CaptureSpan(),
|
|
73
114
|
__metadata("design:type", Function),
|
|
74
|
-
__metadata("design:paramtypes", [
|
|
115
|
+
__metadata("design:paramtypes", [Object]),
|
|
116
|
+
__metadata("design:returntype", Promise)
|
|
117
|
+
], PostedRootCause, "getForInvestigation", null);
|
|
118
|
+
__decorate([
|
|
119
|
+
CaptureSpan(),
|
|
120
|
+
__metadata("design:type", Function),
|
|
121
|
+
__metadata("design:paramtypes", [ObjectID, Object]),
|
|
75
122
|
__metadata("design:returntype", Promise)
|
|
76
123
|
], PostedRootCause, "getForIncident", null);
|
|
77
124
|
__decorate([
|
|
78
125
|
CaptureSpan(),
|
|
79
126
|
__metadata("design:type", Function),
|
|
80
|
-
__metadata("design:paramtypes", [ObjectID]),
|
|
127
|
+
__metadata("design:paramtypes", [ObjectID, Object]),
|
|
81
128
|
__metadata("design:returntype", Promise)
|
|
82
129
|
], PostedRootCause, "getForAlert", null);
|
|
83
130
|
__decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostedRootCause.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/PostedRootCause.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,mBAAmB,MAAM,uCAAuC,CAAC;AACxE,OAAO,gBAAgB,MAAM,oCAAoC,CAAC;AAClE,OAAqB,EACnB,qBAAqB,GACtB,MAAM,gDAAgD,CAAC;AACxD,OAAkB,EAChB,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AACrD,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,OAAO,SAAS,MAAM,0CAA0C,CAAC;AACjE,OAAO,WAAW,MAAM,6BAA6B,CAAC;AAEtD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,eAAe;
|
|
1
|
+
{"version":3,"file":"PostedRootCause.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/SRE/PostedRootCause.ts"],"names":[],"mappings":"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"}
|