@oneuptime/common 11.4.1 → 11.5.1
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 +50 -0
- package/Models/DatabaseModels/AlertSeverity.ts +6 -0
- package/Models/DatabaseModels/IncidentSeverity.ts +6 -0
- package/Models/DatabaseModels/Index.ts +16 -0
- package/Models/DatabaseModels/IoTDeviceCredential.ts +471 -0
- package/Models/DatabaseModels/LlmLog.ts +56 -0
- package/Models/DatabaseModels/LlmProvider.ts +33 -0
- package/Models/DatabaseModels/NetworkDevice.ts +1385 -0
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +717 -0
- package/Models/DatabaseModels/NetworkDeviceLabelRule.ts +514 -0
- package/Models/DatabaseModels/NetworkDeviceOwnerRule.ts +596 -0
- package/Models/DatabaseModels/NetworkDeviceOwnerTeam.ts +487 -0
- package/Models/DatabaseModels/NetworkDeviceOwnerUser.ts +486 -0
- package/Models/DatabaseModels/NetworkInterface.ts +563 -0
- package/Models/DatabaseModels/Project.ts +145 -0
- package/Models/DatabaseModels/TelemetryEntityRelationship.ts +54 -0
- package/Server/API/AIInvestigationAPI.ts +131 -63
- package/Server/API/AlertAPI.ts +5 -0
- package/Server/API/IncidentAPI.ts +10 -0
- package/Server/API/IncidentEpisodeAPI.ts +5 -0
- package/Server/API/LlmProviderAPI.ts +4 -0
- package/Server/API/ScheduledMaintenanceAPI.ts +5 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783650000000-AddAdditionalParamsToLlmProvider.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783695782697-AddCacheTokenColumnsToLlmLog.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783701585317-AddAlertInvestigationGating.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783702431535-AddAiDailyAutonomousTokenLimitToProject.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783720000000-AddNetworkDeviceTables.ts +105 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783721121260-AddAttemptCountToAIRun.ts +15 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783730000000-AddNetworkDeviceOwnersAndRules.ts +192 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783740000000-AddNetworkDeviceDiscoveryScan.ts +37 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783750000000-AddLldpNeighborsToNetworkDevice.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783760576655-AddInvestigationTuningToProject.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783762505482-AddTelemetryEntityRelationshipMetrics.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783780000000-AddIoTDeviceCredentialTable.ts +79 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1783790000000-AddSnmpV3AuthColumnsToNetworkDevice.ts +49 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +26 -0
- package/Server/Services/AIRunService.ts +58 -0
- package/Server/Services/AIService.ts +101 -0
- package/Server/Services/IncidentService.ts +14 -41
- package/Server/Services/Index.ts +14 -0
- package/Server/Services/IoTDeviceCredentialService.ts +351 -0
- package/Server/Services/IoTDeviceService.ts +64 -21
- package/Server/Services/LlmLogService.ts +26 -0
- package/Server/Services/LlmProviderService.ts +3 -0
- package/Server/Services/MonitorService.ts +4 -1
- package/Server/Services/NetworkDeviceDiscoveryScanService.ts +10 -0
- package/Server/Services/NetworkDeviceLabelRuleEngineService.ts +204 -0
- package/Server/Services/NetworkDeviceLabelRuleService.ts +14 -0
- package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +222 -0
- package/Server/Services/NetworkDeviceOwnerRuleService.ts +14 -0
- package/Server/Services/NetworkDeviceOwnerTeamService.ts +10 -0
- package/Server/Services/NetworkDeviceOwnerUserService.ts +10 -0
- package/Server/Services/NetworkDeviceService.ts +50 -0
- package/Server/Services/NetworkInterfaceService.ts +10 -0
- package/Server/Services/TelemetryEntityRelationshipService.ts +23 -0
- package/Server/Services/TelemetryEntityService.ts +72 -2
- package/Server/Utils/AI/Sentinel/AlertInvestigationRunner.ts +244 -12
- package/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.ts +92 -19
- package/Server/Utils/AI/Sentinel/InvestigationQueue.ts +493 -0
- package/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.ts +88 -68
- package/Server/Utils/AI/Toolbox/Index.ts +2 -1
- package/Server/Utils/AI/Toolbox/MetricTools.ts +391 -0
- package/Server/Utils/LLM/LLMService.ts +21 -0
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +170 -2
- package/Server/Utils/Monitor/IoTDeviceAbsenceSeries.ts +101 -0
- package/Server/Utils/Monitor/MonitorAlert.ts +15 -3
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +1 -1
- package/Server/Utils/Monitor/MonitorIncident.ts +19 -3
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +87 -0
- package/Server/Utils/Monitor/MonitorResource.ts +77 -21
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +1 -1
- package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +201 -0
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +215 -0
- package/Server/Utils/Monitor/SnmpInterfaceRateUtil.ts +169 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +173 -0
- package/Tests/Server/Services/IncidentInternalNoteAnnouncement.test.ts +97 -0
- package/Tests/Server/Services/IoTDeviceService.test.ts +54 -0
- package/Tests/Server/Utils/AI/BaselineAnomalyTool.test.ts +253 -0
- package/Tests/Server/Utils/AI/LLMServiceToolCalling.test.ts +44 -0
- package/Tests/Server/Utils/AI/SentinelAlertGating.test.ts +360 -0
- package/Tests/Server/Utils/AI/SentinelInvestigationQueue.test.ts +295 -0
- package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +59 -0
- package/Tests/Server/Utils/Monitor/IoTDeviceAbsenceSeries.test.ts +113 -0
- package/Tests/Server/Utils/Monitor/PerSeriesRecoveryResolution.test.ts +198 -0
- package/Tests/Types/Monitor/MonitorType.test.ts +1 -1
- package/Tests/Utils/Monitor/LatencyMatrixUtil.test.ts +111 -0
- package/Types/AI/AIRunStatus.ts +9 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +0 -1
- package/Types/Dashboard/DashboardComponents/DashboardLogChartComponent.ts +8 -3
- package/Types/LlmLogStatus.ts +1 -0
- package/Types/Monitor/CriteriaFilter.ts +5 -0
- package/Types/Monitor/IotAlertTemplates.ts +22 -3
- package/Types/Monitor/LatencyMatrix.ts +27 -0
- package/Types/Monitor/MonitorCriteriaInstance.ts +2 -2
- package/Types/Monitor/MonitorMetricType.ts +10 -0
- package/Types/Monitor/MonitorStep.ts +36 -11
- package/Types/Monitor/MonitorStepNetworkDeviceMonitor.ts +55 -0
- package/Types/Monitor/MonitorStepSnmpMonitor.ts +8 -0
- package/Types/Monitor/MonitorType.ts +14 -9
- package/Types/Monitor/SnmpMonitor/LldpNeighbor.ts +12 -0
- package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +116 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +29 -0
- package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +31 -0
- package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +24 -0
- package/Types/Monitor/SnmpMonitor/SnmpTrap.ts +20 -0
- package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +173 -0
- package/Types/Permission.ts +314 -0
- package/Types/Probe/ProbeMonitorResponse.ts +8 -0
- package/UI/Components/Icon/Icon.tsx +8 -6
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +2 -2
- package/UI/Components/MoreMenu/MoreMenu.tsx +61 -2
- package/UI/Components/Tabs/Tabs.tsx +10 -1
- package/UI/Utils/Navigation.ts +10 -1
- package/Utils/Dashboard/Components/DashboardLogChartComponent.ts +16 -21
- package/Utils/Monitor/LatencyMatrixUtil.ts +162 -0
- package/Utils/Monitor/MonitorMetricType.ts +71 -1
- package/Utils/Monitor/NetworkTopologyUtil.ts +159 -0
- package/Utils/Telemetry/EntityRelationship.ts +11 -0
- package/build/dist/Models/DatabaseModels/AIRun.js +52 -0
- package/build/dist/Models/DatabaseModels/AIRun.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +6 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +6 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +16 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IoTDeviceCredential.js +493 -0
- package/build/dist/Models/DatabaseModels/IoTDeviceCredential.js.map +1 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js +58 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmProvider.js +33 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +1426 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +738 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js +522 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js +603 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerTeam.js +503 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerUser.js +502 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkInterface.js +589 -0
- package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Project.js +147 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js +57 -0
- package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +1 -1
- package/build/dist/Server/API/AIInvestigationAPI.js +95 -55
- package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
- package/build/dist/Server/API/AlertAPI.js +5 -0
- package/build/dist/Server/API/AlertAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentAPI.js +10 -0
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js +5 -0
- package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
- package/build/dist/Server/API/LlmProviderAPI.js +5 -7
- package/build/dist/Server/API/LlmProviderAPI.js.map +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js +5 -0
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783650000000-AddAdditionalParamsToLlmProvider.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783650000000-AddAdditionalParamsToLlmProvider.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783695782697-AddCacheTokenColumnsToLlmLog.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783695782697-AddCacheTokenColumnsToLlmLog.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783701585317-AddAlertInvestigationGating.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783701585317-AddAlertInvestigationGating.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783702431535-AddAiDailyAutonomousTokenLimitToProject.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783702431535-AddAiDailyAutonomousTokenLimitToProject.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783720000000-AddNetworkDeviceTables.js +51 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783720000000-AddNetworkDeviceTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783721121260-AddAttemptCountToAIRun.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783721121260-AddAttemptCountToAIRun.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783730000000-AddNetworkDeviceOwnersAndRules.js +101 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783730000000-AddNetworkDeviceOwnersAndRules.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783740000000-AddNetworkDeviceDiscoveryScan.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783740000000-AddNetworkDeviceDiscoveryScan.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783750000000-AddLldpNeighborsToNetworkDevice.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783750000000-AddLldpNeighborsToNetworkDevice.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783760576655-AddInvestigationTuningToProject.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783760576655-AddInvestigationTuningToProject.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783762505482-AddTelemetryEntityRelationshipMetrics.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783762505482-AddTelemetryEntityRelationshipMetrics.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783780000000-AddIoTDeviceCredentialTable.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783780000000-AddIoTDeviceCredentialTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783790000000-AddSnmpV3AuthColumnsToNetworkDevice.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1783790000000-AddSnmpV3AuthColumnsToNetworkDevice.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AIRunService.js +33 -0
- package/build/dist/Server/Services/AIRunService.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +82 -9
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +14 -25
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +14 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/IoTDeviceCredentialService.js +321 -0
- package/build/dist/Server/Services/IoTDeviceCredentialService.js.map +1 -0
- package/build/dist/Server/Services/IoTDeviceService.js +49 -15
- package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
- package/build/dist/Server/Services/LlmLogService.js +29 -0
- package/build/dist/Server/Services/LlmLogService.js.map +1 -1
- package/build/dist/Server/Services/LlmProviderService.js +3 -0
- package/build/dist/Server/Services/LlmProviderService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +2 -1
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +9 -0
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js +166 -0
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceLabelRuleService.js +13 -0
- package/build/dist/Server/Services/NetworkDeviceLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +186 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +9 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceService.js +52 -0
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -0
- package/build/dist/Server/Services/NetworkInterfaceService.js +9 -0
- package/build/dist/Server/Services/NetworkInterfaceService.js.map +1 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +22 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryEntityService.js +64 -2
- package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
- package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js +189 -9
- package/build/dist/Server/Utils/AI/Sentinel/AlertInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js +84 -17
- package/build/dist/Server/Utils/AI/Sentinel/IncidentInvestigationRunner.js.map +1 -1
- package/build/dist/Server/Utils/AI/Sentinel/InvestigationQueue.js +428 -0
- package/build/dist/Server/Utils/AI/Sentinel/InvestigationQueue.js.map +1 -0
- package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js +63 -47
- package/build/dist/Server/Utils/AI/Sentinel/SentinelInvestigationEngine.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js +2 -1
- package/build/dist/Server/Utils/AI/Toolbox/Index.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js +300 -0
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js.map +1 -1
- package/build/dist/Server/Utils/LLM/LLMService.js +16 -0
- package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +130 -2
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/IoTDeviceAbsenceSeries.js +81 -0
- package/build/dist/Server/Utils/Monitor/IoTDeviceAbsenceSeries.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +18 -7
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +25 -10
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +69 -3
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +76 -30
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +147 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +167 -0
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js +93 -0
- package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js.map +1 -0
- package/build/dist/Types/AI/AIRunStatus.js +9 -0
- package/build/dist/Types/AI/AIRunStatus.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +0 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/LlmLogStatus.js +1 -0
- package/build/dist/Types/LlmLogStatus.js.map +1 -1
- package/build/dist/Types/Monitor/CriteriaFilter.js +5 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/IotAlertTemplates.js +7 -7
- package/build/dist/Types/Monitor/IotAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/LatencyMatrix.js +2 -0
- package/build/dist/Types/Monitor/LatencyMatrix.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +2 -2
- package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorMetricType.js +9 -0
- package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +22 -9
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js +36 -0
- package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js +3 -0
- package/build/dist/Types/Monitor/MonitorStepSnmpMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +14 -9
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/LldpNeighbor.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/LldpNeighbor.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +89 -0
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkTopology.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkTopology.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpInterface.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpInterface.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpTrap.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpTrap.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +137 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -0
- package/build/dist/Types/Permission.js +280 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +8 -6
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +2 -2
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js +44 -4
- package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
- package/build/dist/UI/Components/Tabs/Tabs.js +3 -1
- package/build/dist/UI/Components/Tabs/Tabs.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +11 -1
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardLogChartComponent.js +17 -20
- package/build/dist/Utils/Dashboard/Components/DashboardLogChartComponent.js.map +1 -1
- package/build/dist/Utils/Monitor/LatencyMatrixUtil.js +89 -0
- package/build/dist/Utils/Monitor/LatencyMatrixUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/MonitorMetricType.js +68 -1
- package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +112 -0
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -0
- package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -1
- package/package.json +1 -1
|
@@ -9,15 +9,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import ObjectID from "../../../../Types/ObjectID";
|
|
11
11
|
import OneUptimeDate from "../../../../Types/Date";
|
|
12
|
-
import AIRunType from "../../../../Types/AI/AIRunType";
|
|
13
12
|
import AIRunStatus from "../../../../Types/AI/AIRunStatus";
|
|
14
13
|
import AIRunEventType from "../../../../Types/AI/AIRunEventType";
|
|
15
|
-
import AIRun from "../../../../Models/DatabaseModels/AIRun";
|
|
16
14
|
import AIRunEvent from "../../../../Models/DatabaseModels/AIRunEvent";
|
|
17
15
|
import AIRunService from "../../../Services/AIRunService";
|
|
18
16
|
import AIRunEventService from "../../../Services/AIRunEventService";
|
|
19
17
|
import ProjectService from "../../../Services/ProjectService";
|
|
20
18
|
import LlmProviderService from "../../../Services/LlmProviderService";
|
|
19
|
+
import SentinelInvestigationQueue from "./InvestigationQueue";
|
|
21
20
|
import ObservabilityAssistant from "../Chat/ObservabilityAssistant";
|
|
22
21
|
import logger from "../../Logger";
|
|
23
22
|
import CaptureSpan from "../../Telemetry/CaptureSpan";
|
|
@@ -47,6 +46,12 @@ const MAX_OUTPUT_TOKENS = 2000;
|
|
|
47
46
|
* a non-answer should never loudly page the on-call.
|
|
48
47
|
*/
|
|
49
48
|
const INCONCLUSIVE_RE = /inconclusive[^.\n]*insufficient signal/i;
|
|
49
|
+
/*
|
|
50
|
+
* Failures a retry cannot fix within the run's usefulness window: missing/
|
|
51
|
+
* broken provider configuration and budget exhaustion (both messages minted
|
|
52
|
+
* by our own gating in AIService/LLMService, so they are stable to match).
|
|
53
|
+
*/
|
|
54
|
+
const PERMANENT_FAILURE_RE = /no llm provider configured|llm provider type is not configured|token budget exhausted/i;
|
|
50
55
|
// Maps a live agent step to the AIRunEvent type persisted for the glass-box trail.
|
|
51
56
|
const STEP_EVENT_TYPE = {
|
|
52
57
|
llm_started: AIRunEventType.LlmCallStarted,
|
|
@@ -59,7 +64,7 @@ const INVESTIGATION_PERSONA = `You are "Sentinel", OneUptime's autonomous AI Sit
|
|
|
59
64
|
|
|
60
65
|
Investigate like a senior on-call engineer:
|
|
61
66
|
- Start from the affected monitors/services named in the signal.
|
|
62
|
-
- Use your read tools to inspect the telemetry AROUND the signal's creation time: recent exceptions and their trends, error/latency metrics versus their normal range, failing traces, relevant logs, and recent changes / deploys.
|
|
67
|
+
- Use your read tools to inspect the telemetry AROUND the signal's creation time: recent exceptions and their trends, error/latency metrics versus their normal range (use baseline_anomaly to judge a metric against its learned hour-of-week baseline quantitatively instead of eyeballing), failing traces, relevant logs, and recent changes / deploys.
|
|
63
68
|
- Form the single most likely root-cause hypothesis. If the evidence is inconclusive, say so plainly and list what you checked — do NOT guess a cause the data does not support.
|
|
64
69
|
- If the context lists past resolved incidents, check whether this is a RECURRENCE. If the current signal matches one, say so explicitly, reference that incident number, and note how it was resolved before — but still verify against the current telemetry.
|
|
65
70
|
|
|
@@ -107,37 +112,27 @@ export default class SentinelInvestigationEngine {
|
|
|
107
112
|
return true;
|
|
108
113
|
}
|
|
109
114
|
/*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
115
|
+
* Execute an already-CLAIMED (Running) investigation run end-to-end.
|
|
116
|
+
* Called by SentinelInvestigationQueue after a successful CAS claim —
|
|
117
|
+
* cap/budget gating and run creation live in the queue now. Never throws;
|
|
118
|
+
* failures are handed to the queue's retry policy (failOrRequeue).
|
|
112
119
|
*/
|
|
113
|
-
static async
|
|
114
|
-
const { projectId } =
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
run.startedAt = OneUptimeDate.getCurrentDate();
|
|
121
|
-
run.lastHeartbeatAt = OneUptimeDate.getCurrentDate();
|
|
122
|
-
if (request.subjectIncidentId) {
|
|
123
|
-
run.triggeredByIncidentId = request.subjectIncidentId;
|
|
124
|
-
}
|
|
125
|
-
if (request.subjectAlertId) {
|
|
126
|
-
run.triggeredByAlertId = request.subjectAlertId;
|
|
127
|
-
}
|
|
128
|
-
let createdRun;
|
|
120
|
+
static async executeRun(data) {
|
|
121
|
+
const { aiRunId, projectId, request } = data;
|
|
122
|
+
/*
|
|
123
|
+
* Retried runs already have events from earlier attempts; continue the
|
|
124
|
+
* sequence so the glass-box trail stays ordered and shows every attempt.
|
|
125
|
+
*/
|
|
126
|
+
let sequence = 0;
|
|
129
127
|
try {
|
|
130
|
-
|
|
131
|
-
|
|
128
|
+
sequence = (await AIRunEventService.countBy({
|
|
129
|
+
query: { aiRunId },
|
|
132
130
|
props: { isRoot: true },
|
|
133
|
-
});
|
|
131
|
+
})).toNumber();
|
|
134
132
|
}
|
|
135
133
|
catch (error) {
|
|
136
|
-
logger.error(`Sentinel: failed to
|
|
137
|
-
return;
|
|
134
|
+
logger.error(`Sentinel: failed to read event count for run ${aiRunId.toString()}; starting sequence at 0: ${error}`);
|
|
138
135
|
}
|
|
139
|
-
const aiRunId = createdRun.id;
|
|
140
|
-
let sequence = 0;
|
|
141
136
|
await this.emitEvent({
|
|
142
137
|
projectId,
|
|
143
138
|
aiRunId,
|
|
@@ -168,10 +163,12 @@ export default class SentinelInvestigationEngine {
|
|
|
168
163
|
resultSummary,
|
|
169
164
|
citationId: step.citationId,
|
|
170
165
|
});
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
166
|
+
/*
|
|
167
|
+
* Keep the run visibly alive for the stale-run sweeper + live UI on
|
|
168
|
+
* EVERY step — a slow self-hosted LLM call can approach the sweeper's
|
|
169
|
+
* timeout, so the heartbeat must be as frequent as we can make it.
|
|
170
|
+
*/
|
|
171
|
+
await this.touchHeartbeat(aiRunId);
|
|
175
172
|
};
|
|
176
173
|
try {
|
|
177
174
|
const result = await ObservabilityAssistant.answerQuestion({
|
|
@@ -187,9 +184,18 @@ export default class SentinelInvestigationEngine {
|
|
|
187
184
|
maxOutputTokens: MAX_OUTPUT_TOKENS,
|
|
188
185
|
onStep,
|
|
189
186
|
});
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
187
|
+
/*
|
|
188
|
+
* Atomic Running -> Completed. If we did NOT win this transition,
|
|
189
|
+
* another actor moved the run while we executed — most likely the
|
|
190
|
+
* stale sweeper falsely requeued it (slow LLM call outlasting the
|
|
191
|
+
* heartbeat window) and a second attempt is or will be running. In
|
|
192
|
+
* that case DO NOT post the analysis: the winning attempt will, and
|
|
193
|
+
* posting here would duplicate the RCA in the feed and workspace.
|
|
194
|
+
*/
|
|
195
|
+
const completedCount = await AIRunService.attemptStatusTransition({
|
|
196
|
+
aiRunId,
|
|
197
|
+
fromStatus: AIRunStatus.Running,
|
|
198
|
+
set: {
|
|
193
199
|
status: AIRunStatus.Completed,
|
|
194
200
|
completedAt: OneUptimeDate.getCurrentDate(),
|
|
195
201
|
lastHeartbeatAt: OneUptimeDate.getCurrentDate(),
|
|
@@ -197,8 +203,11 @@ export default class SentinelInvestigationEngine {
|
|
|
197
203
|
toolCallCount: result.toolCallCount,
|
|
198
204
|
totalTokens: result.totalTokens,
|
|
199
205
|
},
|
|
200
|
-
props: { isRoot: true },
|
|
201
206
|
});
|
|
207
|
+
if (completedCount === 0) {
|
|
208
|
+
logger.warn(`Sentinel: run ${aiRunId.toString()} finished but was no longer Running (likely requeued as stale mid-flight); skipping postAnalysis to avoid a duplicate RCA.`);
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
202
211
|
await this.emitEvent({
|
|
203
212
|
projectId,
|
|
204
213
|
aiRunId,
|
|
@@ -220,22 +229,29 @@ export default class SentinelInvestigationEngine {
|
|
|
220
229
|
}
|
|
221
230
|
catch (error) {
|
|
222
231
|
const message = error instanceof Error ? error.message : String(error);
|
|
223
|
-
await AIRunService.updateOneBy({
|
|
224
|
-
query: { _id: aiRunId.toString(), status: AIRunStatus.Running },
|
|
225
|
-
data: {
|
|
226
|
-
status: AIRunStatus.Error,
|
|
227
|
-
completedAt: OneUptimeDate.getCurrentDate(),
|
|
228
|
-
errorMessage: message.substring(0, 480),
|
|
229
|
-
},
|
|
230
|
-
props: { isRoot: true },
|
|
231
|
-
});
|
|
232
232
|
await this.emitEvent({
|
|
233
233
|
projectId,
|
|
234
234
|
aiRunId,
|
|
235
235
|
sequence: sequence++,
|
|
236
236
|
eventType: AIRunEventType.RunFailed,
|
|
237
237
|
});
|
|
238
|
-
|
|
238
|
+
/*
|
|
239
|
+
* Hand the failure to the queue's retry policy: transient errors
|
|
240
|
+
* requeue while attempts remain; permanent ones finalize as Error
|
|
241
|
+
* since retrying cannot help. Classification is by message, NOT by
|
|
242
|
+
* exception type: LLMService wraps transient provider failures (429s,
|
|
243
|
+
* 5xx, timeouts) in BadDataException too, so type-based classification
|
|
244
|
+
* would wrongly make the exact failures retries exist for permanent.
|
|
245
|
+
* Only configuration/budget gating — which a retry cannot change
|
|
246
|
+
* within the run's usefulness window — counts as permanent.
|
|
247
|
+
*/
|
|
248
|
+
await SentinelInvestigationQueue.failOrRequeue({
|
|
249
|
+
aiRunId,
|
|
250
|
+
attemptCount: data.attemptCount,
|
|
251
|
+
errorMessage: message,
|
|
252
|
+
isPermanent: PERMANENT_FAILURE_RE.test(message),
|
|
253
|
+
});
|
|
254
|
+
logger.error(`Sentinel: investigation attempt ${data.attemptCount} failed (run ${aiRunId.toString()}): ${message}`);
|
|
239
255
|
}
|
|
240
256
|
}
|
|
241
257
|
// Wrap the agent's analysis with Sentinel branding + an evidence list.
|
|
@@ -307,5 +323,5 @@ __decorate([
|
|
|
307
323
|
__metadata("design:type", Function),
|
|
308
324
|
__metadata("design:paramtypes", [Object]),
|
|
309
325
|
__metadata("design:returntype", Promise)
|
|
310
|
-
], SentinelInvestigationEngine, "
|
|
326
|
+
], SentinelInvestigationEngine, "executeRun", null);
|
|
311
327
|
//# sourceMappingURL=SentinelInvestigationEngine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SentinelInvestigationEngine.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Sentinel/SentinelInvestigationEngine.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,QAAQ,MAAM,4BAA4B,CAAC;AAClD,OAAO,aAAa,MAAM,wBAAwB,CAAC;AAMnD,OAAO,
|
|
1
|
+
{"version":3,"file":"SentinelInvestigationEngine.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Sentinel/SentinelInvestigationEngine.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ import { QueryMonitorsTool } from "./MonitorTools";
|
|
|
7
7
|
import { TopExceptionsTool } from "./ExceptionTools";
|
|
8
8
|
import { LogHistogramTool, SearchLogsTool } from "./LogTools";
|
|
9
9
|
import { RecentChangesTool } from "./RecentChangesTools";
|
|
10
|
-
import { QueryMetricsTool } from "./MetricTools";
|
|
10
|
+
import { BaselineAnomalyTool, QueryMetricsTool } from "./MetricTools";
|
|
11
11
|
import { GetTraceTool, QueryTracesTool } from "./TraceTools";
|
|
12
12
|
import { LookupContextTool } from "./ContextTools";
|
|
13
13
|
import { AcknowledgeIncidentTool, CreateIncidentTool, ResolveIncidentTool, } from "./IncidentWriteTools";
|
|
@@ -138,6 +138,7 @@ AIToolbox.tools = [
|
|
|
138
138
|
SearchLogsTool,
|
|
139
139
|
LogHistogramTool,
|
|
140
140
|
QueryMetricsTool,
|
|
141
|
+
BaselineAnomalyTool,
|
|
141
142
|
QueryTracesTool,
|
|
142
143
|
GetTraceTool,
|
|
143
144
|
RecentChangesTool,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Toolbox/Index.ts"],"names":[],"mappings":"AACA,OAAmB,EACjB,gBAAgB,GAEjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,kCAAkC,EAAE,EACzC,cAAc,GACf,MAAM,mEAAmE,CAAC;AAE3E,OAAO,MAAM,MAAM,cAAc,CAAC;AAMlC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Toolbox/Index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import Metric from "../../../../Models/AnalyticsModels/Metric";
|
|
1
2
|
import AggregationType from "../../../../Types/BaseDatabase/AggregationType";
|
|
3
|
+
import DatabaseRequestType from "../../../Types/BaseDatabase/DatabaseRequestType";
|
|
4
|
+
import ModelPermission from "../../../Types/AnalyticsDatabase/ModelPermission";
|
|
2
5
|
import InBetween from "../../../../Types/BaseDatabase/InBetween";
|
|
3
6
|
import Permission from "../../../../Types/Permission";
|
|
4
7
|
import BadDataException from "../../../../Types/Exception/BadDataException";
|
|
5
8
|
import { AIChatCitationTargetType, } from "../../../../Types/AI/AIChatTypes";
|
|
6
9
|
import MetricService from "../../../Services/MetricService";
|
|
10
|
+
import MetricBaselineService, { MetricBaselineService as MetricBaselineServiceClass, } from "../../../Services/MetricBaselineService";
|
|
7
11
|
import ToolResultSerializer from "./Serializer";
|
|
8
12
|
import WidgetBuilder from "./WidgetBuilder";
|
|
9
13
|
import OneUptimeDate from "../../../../Types/Date";
|
|
@@ -117,4 +121,300 @@ export const QueryMetricsTool = {
|
|
|
117
121
|
};
|
|
118
122
|
},
|
|
119
123
|
};
|
|
124
|
+
// The recent window whose average is judged against the baseline band.
|
|
125
|
+
const BASELINE_CURRENT_WINDOW_MINUTES = 15;
|
|
126
|
+
// Lookback rendered on the expected-range band chart.
|
|
127
|
+
const BASELINE_CHART_HOURS = 6;
|
|
128
|
+
export const BaselineAnomalyTool = {
|
|
129
|
+
name: "baseline_anomaly",
|
|
130
|
+
description: "Judge whether a metric is currently anomalous versus its learned hour-of-week baseline (rolling-window mean ± sigma band, the same math the anomaly monitors use). Answers 'is this value NORMAL for this metric at this time of week?' quantitatively — use it instead of eyeballing query_metrics output. Requires the exact metric name — discover names via lookup_context.",
|
|
131
|
+
inputSchema: {
|
|
132
|
+
type: "object",
|
|
133
|
+
properties: {
|
|
134
|
+
metricName: {
|
|
135
|
+
type: "string",
|
|
136
|
+
description: "Exact metric name (required).",
|
|
137
|
+
},
|
|
138
|
+
entityId: {
|
|
139
|
+
type: "string",
|
|
140
|
+
description: "Only data points from this service/host/monitor (its OneUptime ID). When omitted, the baseline spans every entity that ingests the metric.",
|
|
141
|
+
},
|
|
142
|
+
atTime: {
|
|
143
|
+
type: "string",
|
|
144
|
+
description: "Evaluate at this ISO 8601 timestamp (e.g. the signal's creation time). Defaults to now.",
|
|
145
|
+
},
|
|
146
|
+
sensitivity: {
|
|
147
|
+
type: "string",
|
|
148
|
+
enum: ["Low", "Medium", "High"],
|
|
149
|
+
description: "Band width: Low = 4 sigma (fewest anomalies), Medium = 3 sigma (default), High = 2 sigma.",
|
|
150
|
+
},
|
|
151
|
+
windowDays: {
|
|
152
|
+
type: "number",
|
|
153
|
+
enum: [...MetricBaselineServiceClass.WINDOW_DAYS_OPTIONS],
|
|
154
|
+
description: "Rolling baseline window in days (default 14).",
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
required: ["metricName"],
|
|
158
|
+
},
|
|
159
|
+
requiredPermissions: METRIC_READ_PERMISSIONS,
|
|
160
|
+
execute: async (args, ctx) => {
|
|
161
|
+
const metricName = ToolArgs.getString(args, "metricName");
|
|
162
|
+
if (!metricName) {
|
|
163
|
+
throw new BadDataException("metricName is required. Use lookup_context with type 'metricNames' to discover metric names.");
|
|
164
|
+
}
|
|
165
|
+
const entityId = ToolArgs.getObjectID(args, "entityId");
|
|
166
|
+
let atTime = OneUptimeDate.getCurrentDate();
|
|
167
|
+
const atTimeString = ToolArgs.getString(args, "atTime");
|
|
168
|
+
if (atTimeString) {
|
|
169
|
+
const parsed = new Date(atTimeString);
|
|
170
|
+
if (isNaN(parsed.getTime())) {
|
|
171
|
+
throw new BadDataException(`atTime "${atTimeString}" is not a valid ISO 8601 timestamp (e.g. 2024-01-31T14:00:00Z).`);
|
|
172
|
+
}
|
|
173
|
+
atTime = parsed;
|
|
174
|
+
}
|
|
175
|
+
const sensitivityString = ToolArgs.getString(args, "sensitivity") || "Medium";
|
|
176
|
+
if (!["Low", "Medium", "High"].includes(sensitivityString)) {
|
|
177
|
+
throw new BadDataException(`Invalid sensitivity: ${sensitivityString}. Must be Low, Medium or High.`);
|
|
178
|
+
}
|
|
179
|
+
const sensitivity = sensitivityString;
|
|
180
|
+
const requestedWindowDays = ToolArgs.getNumber(args, "windowDays", {
|
|
181
|
+
defaultValue: MetricBaselineServiceClass.DEFAULT_WINDOW_DAYS,
|
|
182
|
+
min: MetricBaselineServiceClass.DEFAULT_WINDOW_DAYS,
|
|
183
|
+
max: MetricBaselineServiceClass.MAX_WINDOW_DAYS,
|
|
184
|
+
});
|
|
185
|
+
// Snap to the supported window options (they match the table's TTL).
|
|
186
|
+
const windowDays = [...MetricBaselineServiceClass.WINDOW_DAYS_OPTIONS]
|
|
187
|
+
.reverse()
|
|
188
|
+
.find((option) => {
|
|
189
|
+
return option <= requestedWindowDays;
|
|
190
|
+
}) || MetricBaselineServiceClass.DEFAULT_WINDOW_DAYS;
|
|
191
|
+
/*
|
|
192
|
+
* The baseline queries are raw ClickHouse SQL scoped only by projectId —
|
|
193
|
+
* they skip the model layer's owned-scope filter. A label/owned-restricted
|
|
194
|
+
* user must therefore be pinned to one of THEIR services: project-wide
|
|
195
|
+
* baselines (no entityId) and other services' baselines are refused, the
|
|
196
|
+
* same posture as the other raw-SQL tools (see LogTools/TraceTools).
|
|
197
|
+
*/
|
|
198
|
+
const accessibleServiceIds = await ModelPermission.getAccessibleServiceIdsForAnalyticsModel(Metric, ctx.props, DatabaseRequestType.Read);
|
|
199
|
+
if (accessibleServiceIds !== null) {
|
|
200
|
+
const isEntityAccessible = Boolean(entityId &&
|
|
201
|
+
accessibleServiceIds.some((id) => {
|
|
202
|
+
return id.toString() === entityId.toString();
|
|
203
|
+
}));
|
|
204
|
+
if (!isEntityAccessible) {
|
|
205
|
+
throw new BadDataException("Your telemetry access is scoped to specific services, so a project-wide baseline is not available. Pass entityId set to the OneUptime ID of a service you can read (discover them via lookup_context).");
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
const hourOfWeek = MetricBaselineServiceClass.computeHourOfWeek(atTime);
|
|
209
|
+
const baseline = await MetricBaselineService.getBaseline({
|
|
210
|
+
projectId: ctx.projectId,
|
|
211
|
+
metricName,
|
|
212
|
+
primaryEntityId: entityId,
|
|
213
|
+
hourOfWeek,
|
|
214
|
+
windowDays,
|
|
215
|
+
});
|
|
216
|
+
const citationLabel = `baseline_anomaly(${metricName}${entityId ? ` · ${entityId.toString()}` : ""}) @ ${atTime.toISOString()}`;
|
|
217
|
+
/*
|
|
218
|
+
* Cold start: no baseline (or too few samples) for this hour-of-week cell.
|
|
219
|
+
* Report it explicitly — a missing baseline must read as "cannot judge",
|
|
220
|
+
* never as "not anomalous".
|
|
221
|
+
*/
|
|
222
|
+
if (!baseline || !baseline.isReliable) {
|
|
223
|
+
const coverage = await MetricBaselineService.getCoverage({
|
|
224
|
+
projectId: ctx.projectId,
|
|
225
|
+
metricName,
|
|
226
|
+
primaryEntityId: entityId,
|
|
227
|
+
});
|
|
228
|
+
const verdictRow = {
|
|
229
|
+
verdict: "insufficient baseline data",
|
|
230
|
+
detail: `The metric has ${baseline
|
|
231
|
+
? `only ${baseline.sampleCount} sample(s)`
|
|
232
|
+
: "no baseline data"} for this hour of week (needs at least ${MetricBaselineServiceClass.DEFAULT_MIN_SAMPLES}). Baseline coverage overall: ${coverage.totalSamples} total sample(s)${coverage.oldestDay
|
|
233
|
+
? `, oldest day ${OneUptimeDate.getDateAsFormattedString(coverage.oldestDay)}`
|
|
234
|
+
: ""}. Do NOT treat this as "not anomalous" — the baseline simply cannot judge yet.`,
|
|
235
|
+
metricName,
|
|
236
|
+
entityId: entityId === null || entityId === void 0 ? void 0 : entityId.toString(),
|
|
237
|
+
evaluatedAt: atTime.toISOString(),
|
|
238
|
+
hourOfWeek,
|
|
239
|
+
windowDays,
|
|
240
|
+
};
|
|
241
|
+
const serializedColdStart = ToolResultSerializer.serializeRows([verdictRow]);
|
|
242
|
+
return {
|
|
243
|
+
dataForLlm: serializedColdStart.text,
|
|
244
|
+
rowCount: serializedColdStart.rowCount,
|
|
245
|
+
citationLabel,
|
|
246
|
+
citationTarget: { type: AIChatCitationTargetType.Metrics },
|
|
247
|
+
redactionCount: serializedColdStart.redactionCount,
|
|
248
|
+
isTruncated: serializedColdStart.isTruncated,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
// Current value: average over the recent window ending at atTime.
|
|
252
|
+
const currentWindowStart = OneUptimeDate.addRemoveMinutes(atTime, -1 * BASELINE_CURRENT_WINDOW_MINUTES);
|
|
253
|
+
const currentQuery = {
|
|
254
|
+
name: metricName,
|
|
255
|
+
time: new InBetween(currentWindowStart, atTime),
|
|
256
|
+
};
|
|
257
|
+
if (entityId) {
|
|
258
|
+
currentQuery["primaryEntityId"] = entityId;
|
|
259
|
+
}
|
|
260
|
+
const currentResult = await MetricService.aggregateBy({
|
|
261
|
+
aggregateColumnName: "value",
|
|
262
|
+
aggregationType: AggregationType.Avg,
|
|
263
|
+
aggregationTimestampColumnName: "time",
|
|
264
|
+
startTimestamp: currentWindowStart,
|
|
265
|
+
endTimestamp: atTime,
|
|
266
|
+
query: currentQuery,
|
|
267
|
+
limit: 200,
|
|
268
|
+
skip: 0,
|
|
269
|
+
props: ctx.props,
|
|
270
|
+
});
|
|
271
|
+
const currentValues = currentResult.data
|
|
272
|
+
.map((item) => {
|
|
273
|
+
return item.value;
|
|
274
|
+
})
|
|
275
|
+
.filter((value) => {
|
|
276
|
+
return typeof value === "number" && Number.isFinite(value);
|
|
277
|
+
});
|
|
278
|
+
const sigma = MetricBaselineServiceClass.sigmaForSensitivity(sensitivity);
|
|
279
|
+
const expectedLow = baseline.mean - sigma * baseline.stddev;
|
|
280
|
+
const expectedHigh = baseline.mean + sigma * baseline.stddev;
|
|
281
|
+
let verdict;
|
|
282
|
+
let currentValue = null;
|
|
283
|
+
let zScore = null;
|
|
284
|
+
if (currentValues.length === 0) {
|
|
285
|
+
verdict = `no data points in the last ${BASELINE_CURRENT_WINDOW_MINUTES} minutes — the metric may have STOPPED reporting, which can itself be the anomaly`;
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
currentValue =
|
|
289
|
+
currentValues.reduce((sum, value) => {
|
|
290
|
+
return sum + value;
|
|
291
|
+
}, 0) / currentValues.length;
|
|
292
|
+
if (baseline.stddev <= 0) {
|
|
293
|
+
/*
|
|
294
|
+
* Zero-variance baseline: the band collapses to a point and
|
|
295
|
+
* floating-point noise alone would flag every sample. The anomaly
|
|
296
|
+
* monitors refuse to classify here (MetricMonitorCriteria) — match
|
|
297
|
+
* them rather than emitting guaranteed-false ANOMALOUS verdicts.
|
|
298
|
+
*/
|
|
299
|
+
verdict = `cannot judge — the baseline has zero variance (the metric has been constant at ${baseline.mean}), so any band would flag every sample; compare the current value to the baseline mean directly instead`;
|
|
300
|
+
}
|
|
301
|
+
else {
|
|
302
|
+
zScore = (currentValue - baseline.mean) / baseline.stddev;
|
|
303
|
+
if (currentValue > expectedHigh) {
|
|
304
|
+
verdict = `ANOMALOUS — above the expected range for this hour of week`;
|
|
305
|
+
}
|
|
306
|
+
else if (currentValue < expectedLow) {
|
|
307
|
+
verdict = `ANOMALOUS — below the expected range for this hour of week`;
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
verdict = `normal — within the expected range for this hour of week`;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
const row = {
|
|
315
|
+
verdict,
|
|
316
|
+
metricName,
|
|
317
|
+
entityId: entityId === null || entityId === void 0 ? void 0 : entityId.toString(),
|
|
318
|
+
evaluatedAt: atTime.toISOString(),
|
|
319
|
+
currentValue: currentValue !== null
|
|
320
|
+
? `${currentValue} (avg over the last ${BASELINE_CURRENT_WINDOW_MINUTES} min)`
|
|
321
|
+
: null,
|
|
322
|
+
expectedRange: `${expectedLow} to ${expectedHigh} (mean ${baseline.mean} ± ${sigma}σ, σ=${baseline.stddev})`,
|
|
323
|
+
zScore,
|
|
324
|
+
baselineMedian: baseline.median,
|
|
325
|
+
baselineP95: baseline.p95,
|
|
326
|
+
baselineSampleCount: baseline.sampleCount,
|
|
327
|
+
baselineWindowDays: baseline.windowDays,
|
|
328
|
+
hourOfWeek,
|
|
329
|
+
sensitivity,
|
|
330
|
+
};
|
|
331
|
+
const serialized = ToolResultSerializer.serializeRows([
|
|
332
|
+
row,
|
|
333
|
+
]);
|
|
334
|
+
// Expected-range band + actual values over the recent past, for the panel.
|
|
335
|
+
const chartStart = OneUptimeDate.addRemoveHours(atTime, -1 * BASELINE_CHART_HOURS);
|
|
336
|
+
let bandSeries = [];
|
|
337
|
+
let actualPoints = [];
|
|
338
|
+
try {
|
|
339
|
+
bandSeries = await MetricBaselineService.getBandSeries({
|
|
340
|
+
projectId: ctx.projectId,
|
|
341
|
+
metricName,
|
|
342
|
+
primaryEntityId: entityId,
|
|
343
|
+
startTime: chartStart,
|
|
344
|
+
endTime: atTime,
|
|
345
|
+
intervalMinutes: 15,
|
|
346
|
+
sigmaCount: sigma,
|
|
347
|
+
windowDays,
|
|
348
|
+
});
|
|
349
|
+
const chartQuery = {
|
|
350
|
+
name: metricName,
|
|
351
|
+
time: new InBetween(chartStart, atTime),
|
|
352
|
+
};
|
|
353
|
+
if (entityId) {
|
|
354
|
+
chartQuery["primaryEntityId"] = entityId;
|
|
355
|
+
}
|
|
356
|
+
const chartActualResult = await MetricService.aggregateBy({
|
|
357
|
+
aggregateColumnName: "value",
|
|
358
|
+
aggregationType: AggregationType.Avg,
|
|
359
|
+
aggregationTimestampColumnName: "time",
|
|
360
|
+
startTimestamp: chartStart,
|
|
361
|
+
endTimestamp: atTime,
|
|
362
|
+
query: chartQuery,
|
|
363
|
+
limit: 200,
|
|
364
|
+
skip: 0,
|
|
365
|
+
props: ctx.props,
|
|
366
|
+
});
|
|
367
|
+
actualPoints = chartActualResult.data.map((item) => {
|
|
368
|
+
return {
|
|
369
|
+
x: OneUptimeDate.toString(OneUptimeDate.fromString(item.timestamp)),
|
|
370
|
+
y: typeof item.value === "number" ? item.value : null,
|
|
371
|
+
};
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
catch (_a) {
|
|
375
|
+
// The band chart is decorative — never fail the verdict for it.
|
|
376
|
+
}
|
|
377
|
+
const toPoints = (pick) => {
|
|
378
|
+
return bandSeries.map((point) => {
|
|
379
|
+
return {
|
|
380
|
+
x: OneUptimeDate.toString(point.time),
|
|
381
|
+
y: pick(point),
|
|
382
|
+
};
|
|
383
|
+
});
|
|
384
|
+
};
|
|
385
|
+
return {
|
|
386
|
+
dataForLlm: serialized.text,
|
|
387
|
+
rowCount: serialized.rowCount,
|
|
388
|
+
citationLabel,
|
|
389
|
+
citationTarget: { type: AIChatCitationTargetType.Metrics },
|
|
390
|
+
redactionCount: serialized.redactionCount,
|
|
391
|
+
isTruncated: serialized.isTruncated,
|
|
392
|
+
widget: bandSeries.length > 0
|
|
393
|
+
? WidgetBuilder.timeSeries({
|
|
394
|
+
title: `${metricName} vs expected range`,
|
|
395
|
+
description: `Hour-of-week baseline (±${sigma}σ, ${windowDays}-day window), ${chartStart.toISOString()} – ${atTime.toISOString()}`,
|
|
396
|
+
series: [
|
|
397
|
+
{
|
|
398
|
+
name: "expected high",
|
|
399
|
+
points: toPoints((point) => {
|
|
400
|
+
return point.expectedHigh;
|
|
401
|
+
}),
|
|
402
|
+
},
|
|
403
|
+
{
|
|
404
|
+
name: "expected low",
|
|
405
|
+
points: toPoints((point) => {
|
|
406
|
+
return point.expectedLow;
|
|
407
|
+
}),
|
|
408
|
+
},
|
|
409
|
+
...(actualPoints.length > 0
|
|
410
|
+
? [{ name: "actual", points: actualPoints }]
|
|
411
|
+
: []),
|
|
412
|
+
],
|
|
413
|
+
valueLabel: metricName,
|
|
414
|
+
link: { type: AIChatCitationTargetType.Metrics },
|
|
415
|
+
})
|
|
416
|
+
: undefined,
|
|
417
|
+
};
|
|
418
|
+
},
|
|
419
|
+
};
|
|
120
420
|
//# sourceMappingURL=MetricTools.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricTools.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Toolbox/MetricTools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MetricTools.js","sourceRoot":"","sources":["../../../../../../Server/Utils/AI/Toolbox/MetricTools.ts"],"names":[],"mappings":"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"}
|