@oneuptime/common 12.0.25 → 12.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/Index.ts +2 -0
- package/Models/AnalyticsModels/ThreatIntelIndicator.ts +413 -0
- package/Models/DatabaseModels/AlertSeverity.ts +4 -1
- package/Models/DatabaseModels/CephClusterFeed.ts +625 -0
- package/Models/DatabaseModels/CloudResourceFeed.ts +625 -0
- package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +13 -0
- package/Models/DatabaseModels/DetectionRule.ts +9 -3
- package/Models/DatabaseModels/DockerHostFeed.ts +625 -0
- package/Models/DatabaseModels/DockerSwarmClusterFeed.ts +628 -0
- package/Models/DatabaseModels/GoogleSecOpsConnection.ts +9 -3
- package/Models/DatabaseModels/HostFeed.ts +625 -0
- package/Models/DatabaseModels/IncidentSeverity.ts +4 -1
- package/Models/DatabaseModels/Index.ts +22 -0
- package/Models/DatabaseModels/KubernetesClusterFeed.ts +628 -0
- package/Models/DatabaseModels/Monitor.ts +87 -0
- package/Models/DatabaseModels/NetworkDevice.ts +96 -5
- package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +92 -6
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +301 -31
- package/Models/DatabaseModels/NetworkSite.ts +120 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +1 -0
- package/Models/DatabaseModels/PodmanHostFeed.ts +625 -0
- package/Models/DatabaseModels/ProxmoxClusterFeed.ts +626 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +67 -0
- package/Models/DatabaseModels/ServiceFeed.ts +625 -0
- package/Models/DatabaseModels/TelemetrySourceMap.ts +474 -0
- package/Models/DatabaseModels/ThreatIntelFeed.ts +758 -0
- package/Models/DatabaseModels/UserOnCallLog.ts +1 -0
- package/Models/DatabaseModels/UserTotpAuth.ts +1 -0
- package/Models/DatabaseModels/UserWebAuthn.ts +1 -0
- package/Server/API/AlertAPI.ts +23 -1
- package/Server/API/BaseAPI.ts +14 -3
- package/Server/API/IncidentAPI.ts +41 -1
- package/Server/API/IncidentEpisodeAPI.ts +23 -1
- package/Server/API/MicrosoftTeamsAPI.ts +31 -2
- package/Server/API/ScheduledMaintenanceAPI.ts +23 -1
- package/Server/API/SlackAPI.ts +48 -0
- package/Server/API/TelemetryAPI.ts +167 -42
- package/Server/API/UserOnCallLogTimelineAPI.ts +75 -61
- package/Server/API/UserTotpAuthAPI.ts +67 -1
- package/Server/API/UserWebAuthnAPI.ts +44 -1
- package/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.ts +57 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.ts +49 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.ts +129 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.ts +54 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.ts +64 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.ts +64 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.ts +72 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.ts +489 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +18 -0
- package/Server/Middleware/IdentityRateLimit.ts +53 -3
- package/Server/Services/AIService.ts +181 -41
- package/Server/Services/CephClusterFeedService.ts +99 -0
- package/Server/Services/CephClusterLabelRuleEngineService.ts +29 -0
- package/Server/Services/CephClusterOwnerRuleEngineService.ts +23 -0
- package/Server/Services/CephClusterOwnerTeamService.ts +129 -0
- package/Server/Services/CephClusterOwnerUserService.ts +123 -0
- package/Server/Services/CephClusterService.ts +223 -2
- package/Server/Services/CloudResourceFeedService.ts +99 -0
- package/Server/Services/CloudResourceLabelRuleEngineService.ts +30 -0
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +33 -0
- package/Server/Services/CloudResourceOwnerTeamService.ts +129 -0
- package/Server/Services/CloudResourceOwnerUserService.ts +123 -0
- package/Server/Services/CloudResourceService.ts +227 -2
- package/Server/Services/DatabaseService.ts +265 -0
- package/Server/Services/DockerHostFeedService.ts +99 -0
- package/Server/Services/DockerHostLabelRuleEngineService.ts +29 -0
- package/Server/Services/DockerHostOwnerRuleEngineService.ts +23 -0
- package/Server/Services/DockerHostOwnerTeamService.ts +129 -0
- package/Server/Services/DockerHostOwnerUserService.ts +123 -0
- package/Server/Services/DockerHostService.ts +227 -2
- package/Server/Services/DockerSwarmClusterFeedService.ts +102 -0
- package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +30 -0
- package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +24 -0
- package/Server/Services/DockerSwarmClusterOwnerTeamService.ts +133 -0
- package/Server/Services/DockerSwarmClusterOwnerUserService.ts +127 -0
- package/Server/Services/DockerSwarmClusterService.ts +229 -2
- package/Server/Services/EnterpriseLicenseService.ts +15 -7
- package/Server/Services/ExceptionAggregationService.ts +12 -2
- package/Server/Services/HostFeedService.ts +99 -0
- package/Server/Services/HostLabelRuleEngineService.ts +29 -0
- package/Server/Services/HostOwnerRuleEngineService.ts +23 -0
- package/Server/Services/HostOwnerTeamService.ts +129 -0
- package/Server/Services/HostOwnerUserService.ts +123 -0
- package/Server/Services/HostService.ts +215 -2
- package/Server/Services/IncidentService.ts +11 -0
- package/Server/Services/Index.ts +24 -0
- package/Server/Services/KubernetesClusterFeedService.ts +99 -0
- package/Server/Services/KubernetesClusterLabelRuleEngineService.ts +30 -0
- package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +24 -0
- package/Server/Services/KubernetesClusterOwnerTeamService.ts +133 -0
- package/Server/Services/KubernetesClusterOwnerUserService.ts +127 -0
- package/Server/Services/KubernetesClusterService.ts +231 -2
- package/Server/Services/LogAggregationService.ts +23 -280
- package/Server/Services/MetricAggregationService.ts +98 -1
- package/Server/Services/MonitorService.ts +177 -13
- package/Server/Services/MonitorTemplateService.ts +111 -0
- package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +777 -86
- package/Server/Services/NetworkDeviceAutoImportRuleService.ts +199 -16
- package/Server/Services/NetworkDeviceDiscoveryScanService.ts +1055 -14
- package/Server/Services/NetworkDeviceService.ts +750 -4
- package/Server/Services/NetworkInterfaceService.ts +415 -0
- package/Server/Services/NetworkSiteService.ts +485 -52
- package/Server/Services/PodmanHostFeedService.ts +99 -0
- package/Server/Services/PodmanHostLabelRuleEngineService.ts +29 -0
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +23 -0
- package/Server/Services/PodmanHostOwnerTeamService.ts +129 -0
- package/Server/Services/PodmanHostOwnerUserService.ts +123 -0
- package/Server/Services/PodmanHostService.ts +227 -2
- package/Server/Services/ProjectService.ts +16 -10
- package/Server/Services/ProxmoxClusterFeedService.ts +99 -0
- package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +30 -0
- package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +24 -0
- package/Server/Services/ProxmoxClusterOwnerTeamService.ts +131 -0
- package/Server/Services/ProxmoxClusterOwnerUserService.ts +124 -0
- package/Server/Services/ProxmoxClusterService.ts +225 -2
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +61 -0
- package/Server/Services/ServiceFeedService.ts +99 -0
- package/Server/Services/ServiceLabelRuleEngineService.ts +29 -0
- package/Server/Services/ServiceOwnerRuleEngineService.ts +26 -0
- package/Server/Services/ServiceOwnerTeamService.ts +129 -0
- package/Server/Services/ServiceOwnerUserService.ts +123 -0
- package/Server/Services/ServiceService.ts +227 -3
- package/Server/Services/StatusPageSubscriberService.ts +7 -0
- package/Server/Services/TelemetryAttributeService.ts +13 -3
- package/Server/Services/TelemetrySourceMapService.ts +307 -0
- package/Server/Services/ThreatIntelFeedService.ts +222 -0
- package/Server/Services/ThreatIntelIndicatorService.ts +428 -0
- package/Server/Services/TraceAggregationService.ts +101 -11
- package/Server/Services/UserService.ts +13 -6
- package/Server/Services/UserTwoFactorBackupCodeService.ts +127 -0
- package/Server/Services/UserWebhookService.ts +11 -2
- package/Server/Static/Brand/README.md +38 -0
- package/Server/Static/Brand/favicons/apple-touch-icon.png +0 -0
- package/Server/Static/Brand/favicons/favicon-16x16.png +0 -0
- package/Server/Static/Brand/favicons/favicon-32x32.png +0 -0
- package/Server/Static/Brand/favicons/favicon.ico +0 -0
- package/Server/Static/Brand/favicons/safari-pinned-tab.svg +31 -0
- package/Server/Static/Brand/hou-wb.svg +1 -0
- package/Server/Static/Brand/oneuptime-logo.svg +1 -0
- package/Server/Static/Brand/ou-wb.svg +1 -0
- package/Server/Static/Vendor/README.md +4 -0
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +13 -3
- package/Server/Types/Database/AggregateBy.ts +83 -0
- package/Server/Types/Database/AggregateResultUtil.ts +126 -0
- package/Server/Types/Database/JSONColumnQuery.ts +18 -0
- package/Server/Types/Database/QueryHelper.ts +40 -0
- package/Server/Types/Database/QueryUtil.ts +26 -0
- package/Server/Types/Workflow/Components/API/Utils.ts +10 -1
- package/Server/Types/Workflow/Components/JavaScript.ts +8 -0
- package/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.ts +9 -0
- package/Server/Utils/AI/SRE/InvestigationGrader.ts +18 -0
- package/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.ts +422 -0
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +176 -0
- package/Server/Utils/DataSource/HttpFetch.ts +18 -0
- package/Server/Utils/Database/RelationIdUtil.ts +42 -0
- package/Server/Utils/Marketing/MarketingEventUtil.ts +38 -9
- package/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.ts +34 -3
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +9 -1
- package/Server/Utils/Monitor/Criteria/SyntheticMonitor.ts +28 -10
- package/Server/Utils/Monitor/MonitorAlert.ts +541 -332
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +330 -64
- package/Server/Utils/Monitor/MonitorIncident.ts +640 -434
- package/Server/Utils/Monitor/MonitorResource.ts +226 -49
- package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +46 -3
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +23 -102
- package/Server/Utils/Monitor/PerEntityCriteriaFanOut.ts +329 -0
- package/Server/Utils/NetworkDevice/DeviceHealthAggregation.ts +427 -0
- package/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.ts +310 -0
- package/Server/Utils/OnCallNotificationContext.ts +686 -0
- package/Server/Utils/PrivateNetworkWebhookConfig.ts +549 -0
- package/Server/Utils/ResourceFeed/ResourceFeedUtil.ts +139 -0
- package/Server/Utils/Response.ts +11 -1
- package/Server/Utils/SSRFProtection.ts +230 -60
- package/Server/Utils/SecurityEvent/ConnectorErrorMessage.ts +106 -0
- package/Server/Utils/SecurityEvent/DetectionRuleEvaluator.ts +84 -284
- package/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.ts +47 -20
- package/Server/Utils/SecurityEvent/SecurityEventAlerting.ts +318 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.ts +199 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.ts +252 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.ts +739 -0
- package/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.ts +533 -0
- package/Server/Utils/StartServer.ts +83 -56
- package/Server/Utils/StatusPageSubscriberWebhook.ts +3 -0
- package/Server/Utils/Telemetry/SourceMapResolver.ts +480 -0
- package/Server/Utils/TwoFactorBackupCodeNotification.ts +106 -0
- package/Server/Utils/VM/VMAPI.ts +3 -0
- package/Server/Utils/VM/VMRunner.ts +27 -1
- package/Server/Utils/VendorAssets.ts +42 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +136 -6
- package/Server/Views/AcknowledgeUserOnCallNotification.ejs +11 -9
- package/Server/Views/Partials/Head.ejs +9 -9
- package/Server/Views/Partials/OnCallNotificationDetails.ejs +48 -0
- package/Server/Views/ViewMessage.ejs +11 -9
- package/Tests/App/Accounts/LoginTwoFactorRecovery.test.tsx +972 -0
- package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +401 -0
- package/Tests/App/Dashboard/DiscoveryScanEditForm.test.tsx +707 -0
- package/Tests/App/Dashboard/DiscoveryScanWizardValidation.test.tsx +1908 -18
- package/Tests/App/Dashboard/ResourceFeed.test.tsx +230 -0
- package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +216 -0
- package/Tests/App/Dashboard/TopologyAddToMonitoring.test.tsx +192 -0
- package/Tests/App/Dashboard/WorkspaceNotificationRuleConditions.test.tsx +439 -0
- package/Tests/Models/DatabaseModels/DateColumnDeserialization.test.ts +182 -0
- package/Tests/Models/DatabaseModels/RelationColumnModelTypeCoverage.test.ts +82 -0
- package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +398 -0
- package/Tests/Models/DiscoveryScanNameColumn.test.ts +151 -16
- package/Tests/Models/DiscoveryScanSnmpEnabledColumn.test.ts +593 -0
- package/Tests/Models/NetworkDeviceCreateContract.test.ts +102 -0
- package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +607 -0
- package/Tests/Server/API/AIGenerationRequestBudget.test.ts +355 -0
- package/Tests/Server/API/AIKillSwitchBackstop.test.ts +602 -0
- package/Tests/Server/API/BaseAPIUpdateDateColumns.test.ts +154 -0
- package/Tests/Server/API/MicrosoftTeamsBotTestEndpoint.test.ts +335 -0
- package/Tests/Server/API/UserOnCallLogTimelineAcknowledgePage.test.ts +611 -0
- package/Tests/Server/API/UserTotpAuthAPI.test.ts +498 -4
- package/Tests/Server/API/UserWebAuthnBackupCodeMinting.test.ts +682 -0
- package/Tests/Server/Infrastructure/ExampleDockerfiles.test.ts +595 -0
- package/Tests/Server/Services/AIServiceDailyBudget.test.ts +9 -0
- package/Tests/Server/Services/AIServiceProjectAccess.test.ts +6 -0
- package/Tests/Server/Services/AutoImportScanCredentialSelect.test.ts +18 -0
- package/Tests/Server/Services/DatabaseServiceAggregateBy.test.ts +590 -0
- package/Tests/Server/Services/DatabaseServiceUpdateWriteRouting.test.ts +12 -0
- package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +162 -26
- package/Tests/Server/Services/EnterpriseLicenseServiceCreate.test.ts +292 -0
- package/Tests/Server/Services/FeedRetentionConsistency.test.ts +119 -12
- package/Tests/Server/Services/LogAggregationAttributeOperators.test.ts +109 -0
- package/Tests/Server/Services/MetricAggregationAttributeOperators.test.ts +170 -0
- package/Tests/Server/Services/MonitorTemplateServiceNetworkDeviceSync.test.ts +383 -0
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleEngineService.test.ts +997 -3
- package/Tests/Server/Services/NetworkDeviceAutoImportRuleService.test.ts +830 -0
- package/Tests/Server/Services/NetworkDeviceAutoMonitorLifecycle.test.ts +528 -0
- package/Tests/Server/Services/NetworkDeviceDiscoveryScanService.test.ts +3141 -1
- package/Tests/Server/Services/NetworkDeviceRegisteredHostnames.test.ts +1023 -0
- package/Tests/Server/Services/NetworkDeviceSiteAssignmentRuleSkip.test.ts +728 -0
- package/Tests/Server/Services/NetworkInterfaceServiceUpsert.test.ts +795 -0
- package/Tests/Server/Services/NetworkSiteRollupPolicyAndMaintenance.test.ts +903 -0
- package/Tests/Server/Services/NetworkSiteService.test.ts +165 -24
- package/Tests/Server/Services/ProjectServiceChangePlan.test.ts +5 -3
- package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +5 -2
- package/Tests/Server/Services/ResourceCreationFeedWrites.test.ts +304 -0
- package/Tests/Server/Services/ResourceFeedServices.test.ts +269 -0
- package/Tests/Server/Services/ResourceOwnerFeedWrites.test.ts +245 -0
- package/Tests/Server/Services/SecurityEventLastErrorColumnWidth.test.ts +792 -0
- package/Tests/Server/Services/TelemetrySourceMapService.test.ts +483 -0
- package/Tests/Server/Services/ThreatIntelFeedService.test.ts +351 -0
- package/Tests/Server/Services/ThreatIntelIndicatorService.test.ts +366 -0
- package/Tests/Server/Services/TraceAggregationAttributeOperators.test.ts +507 -0
- package/Tests/Server/Services/UserTwoFactorBackupCodeGenerateIfNone.test.ts +705 -0
- package/Tests/Server/Services/WorkspaceNotificationRuleOnCallDutyPolicy.test.ts +306 -0
- package/Tests/Server/Types/Database/AggregateResultUtil.test.ts +386 -0
- package/Tests/Server/Types/Database/Permissions/SelectRejectionMessageContract.test.ts +424 -0
- package/Tests/Server/Types/Database/QueryHelperWildcard.test.ts +142 -0
- package/Tests/Server/Types/Workflow/Components/ApiComponentPrivateNetwork.test.ts +163 -0
- package/Tests/Server/Types/Workflow/Components/JavaScriptPrivateNetwork.test.ts +124 -0
- package/Tests/Server/Utils/AI/CodeFixAgentCompletion.test.ts +5 -0
- package/Tests/Server/Utils/AI/InvestigationGrader.test.ts +39 -1
- package/Tests/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.test.ts +338 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGeneratorWildcard.test.ts +383 -0
- package/Tests/Server/Utils/Marketing/EmittedMarketingEvent.ts +23 -0
- package/Tests/Server/Utils/Marketing/MarketingEventUtil.test.ts +51 -0
- package/Tests/Server/Utils/Monitor/Criteria/SyntheticMonitorCriteria.test.ts +259 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPerSeriesFanout.test.ts +557 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +12 -2
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkLogWritePath.test.ts +404 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +8 -2
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +125 -98
- package/Tests/Server/Utils/Monitor/PerEntityCriteriaFanOut.test.ts +444 -0
- package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1112 -0
- package/Tests/Server/Utils/NetworkDevice/DeviceHealthAggregation.test.ts +717 -0
- package/Tests/Server/Utils/NetworkDevice/RulePatternValidator.test.ts +78 -0
- package/Tests/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.test.ts +363 -0
- package/Tests/Server/Utils/OfflineAssetHygiene.test.ts +35 -0
- package/Tests/Server/Utils/OnCallNotificationContext.test.ts +908 -0
- package/Tests/Server/Utils/PrivateNetworkWebhookConfig.test.ts +423 -0
- package/Tests/Server/Utils/ResourceFeed/ResourceFeedUtil.test.ts +191 -0
- package/Tests/Server/Utils/SSRFProtectionPrivateNetwork.test.ts +597 -0
- package/Tests/Server/Utils/SecurityEvent/ConnectorErrorMessage.test.ts +819 -0
- package/Tests/Server/Utils/SecurityEvent/DetectionRuleEvaluator.test.ts +381 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPoller.test.ts +417 -0
- package/Tests/Server/Utils/SecurityEvent/GoogleSecOpsPollerFailureTaxonomy.test.ts +819 -0
- package/Tests/Server/Utils/SecurityEvent/SecurityEventAlerting.test.ts +246 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.test.ts +282 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.test.ts +312 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.test.ts +854 -0
- package/Tests/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.test.ts +437 -0
- package/Tests/Server/Utils/StartServerErrorStatus.test.ts +225 -0
- package/Tests/Server/Utils/StatusPage/MonitorRulePatternValidator.test.ts +62 -0
- package/Tests/Server/Utils/StatusPageSubscriberWebhookPrivateNetwork.test.ts +119 -0
- package/Tests/Server/Utils/Telemetry/SourceMapResolver.test.ts +542 -0
- package/Tests/Server/Utils/TwoFactorBackupCodeNotification.test.ts +272 -0
- package/Tests/Server/Utils/VM/VMRunnerPrivateNetworkWiring.test.ts +111 -0
- package/Tests/Server/Utils/VendorAssets.test.ts +117 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +101 -4
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsInstallStateDiagnostics.test.ts +922 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsRosterDiagnosticMessages.test.ts +642 -0
- package/Tests/Server/Views/OnCallAcknowledgePage.test.ts +430 -0
- package/Tests/Types/API/HostnameAuthorityParsing.test.ts +1 -0
- package/Tests/Types/API/URLMailtoQueryString.test.ts +439 -0
- package/Tests/Types/API/URLQueryString.test.ts +481 -0
- package/Tests/Types/API/URLRouteQuerySeparation.test.ts +491 -0
- package/Tests/Types/BaseDatabase/Wildcard.test.ts +163 -0
- package/Tests/Types/BaseDatabase/WildcardPattern.test.ts +149 -0
- package/Tests/Types/Database/DateColumnValue.test.ts +265 -0
- package/Tests/Types/DateToIsoStringOrNull.test.ts +67 -0
- package/Tests/Types/Log/LogQueryToFilter.test.ts +218 -43
- package/Tests/Types/Monitor/KubernetesTemplateGroupByKeys.test.ts +225 -0
- package/Tests/Types/Monitor/TemplateGroupByKeys.test.ts +296 -0
- package/Tests/Types/NetworkAutomation/RuleRunResult.test.ts +102 -0
- package/Tests/Types/NetworkAutomation/RuleRunResultDescribe.test.ts +145 -0
- package/Tests/Types/NetworkSite/SiteHealthRollupPolicy.test.ts +58 -0
- package/Tests/Types/SerializableObjectDictionaryImportCycle.test.ts +15 -0
- package/Tests/Types/Telemetry/TelemetrySearchQuery.test.ts +620 -0
- package/Tests/Types/WhatsApp/WhatsAppTemplates.test.ts +110 -0
- package/Tests/Types/Workspace/NotificationRuleConditionUtil.test.ts +76 -6
- package/Tests/Types/Workspace/NotificationRules/NotificationRuleCondition.test.ts +16 -4
- package/Tests/Types/Workspace/NotificationRules/OnCallDutyPolicyConditions.test.ts +669 -0
- package/Tests/UI/Components/DictionaryFilterOperatorWildcard.test.ts +175 -0
- package/Tests/UI/Components/IconOpticalSize.test.tsx +377 -0
- package/Tests/UI/Components/LogsHistogramDragTooltip.test.tsx +393 -0
- package/Tests/UI/Components/LogsViewerHistogramZoom.test.tsx +248 -0
- package/Tests/UI/Components/TelemetryHistogramDragTooltip.test.tsx +205 -0
- package/Tests/UI/Components/UseHistogramZoom.test.tsx +262 -0
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardInstallGuidance.test.tsx +332 -0
- package/Tests/UI/MicrosoftTeams/MicrosoftTeamsInstallGuidanceContent.test.tsx +643 -0
- package/Tests/Utils/Monitor/InterfaceInventoryUtil.test.ts +824 -0
- package/Tests/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.test.ts +626 -0
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +718 -0
- package/Tests/Utils/NetworkDevice/DeviceHealthStateUtil.test.ts +59 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +287 -2
- package/Tests/Utils/NetworkDiscovery/DiscoveryImportEligibility.test.ts +73 -0
- package/Tests/Utils/NetworkDiscovery/PingMonitorBuilder.test.ts +317 -0
- package/Tests/Utils/NetworkDiscovery/RescanIntervalUtil.test.ts +262 -0
- package/Tests/Utils/NetworkDiscovery/ScanModeUtil.test.ts +474 -0
- package/Tests/Utils/NetworkDiscovery/SnmpScanConfigUtil.test.ts +2442 -0
- package/Tests/Utils/NetworkSite/SiteMaintenanceUtil.test.ts +188 -0
- package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +522 -0
- package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +694 -0
- package/Tests/Utils/SecurityEvent/ThreatIntel/StixPatternParser.test.ts +281 -0
- package/Tests/Utils/Telemetry/CrossSignalScope.test.ts +87 -67
- package/Types/API/URL.ts +100 -28
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +8 -0
- package/Types/BaseDatabase/NotWildcard.ts +86 -0
- package/Types/BaseDatabase/Wildcard.ts +89 -0
- package/Types/BaseDatabase/WildcardPattern.ts +176 -0
- package/Types/Database/DateColumnValue.ts +184 -0
- package/Types/Database/TableColumn.ts +40 -5
- package/Types/Date.ts +37 -0
- package/Types/Email/EmailTemplateType.ts +1 -0
- package/Types/JSON.ts +8 -0
- package/Types/Log/LogQueryToFilter.ts +167 -129
- package/Types/Monitor/DockerAlertTemplates.ts +43 -12
- package/Types/Monitor/HostAlertTemplates.ts +31 -3
- package/Types/Monitor/KubernetesAlertTemplates.ts +98 -0
- package/Types/Monitor/MonitorStep.ts +49 -0
- package/Types/Monitor/PodmanAlertTemplates.ts +39 -12
- package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +14 -0
- package/Types/Monitor/SnmpMonitor/LldpNeighbor.ts +11 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +11 -4
- package/Types/NetworkAutomation/RuleRunResult.ts +191 -2
- package/Types/NetworkSite/SiteHealthRollupPolicy.ts +96 -0
- package/Types/Permission.ts +411 -0
- package/Types/Probe/ProbeApiIngestResponse.ts +42 -0
- package/Types/SecurityEvent/ThreatIntelConstants.ts +118 -0
- package/Types/SerializableObjectDictionary.ts +8 -0
- package/Types/Telemetry/SourceMap.ts +56 -0
- package/Types/Telemetry/TelemetrySearchQuery.ts +949 -0
- package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +12 -1
- package/UI/Components/Charts/Utils/useHistogramZoom.ts +101 -0
- package/UI/Components/Dictionary/DictionaryFilterOperator.ts +83 -0
- package/UI/Components/Icon/Icon.tsx +28 -1
- package/UI/Components/LogsViewer/LogsViewer.tsx +19 -3
- package/UI/Components/LogsViewer/components/LogSearchBar.tsx +26 -4
- package/UI/Components/LogsViewer/components/LogSearchHelp.tsx +34 -16
- package/UI/Components/LogsViewer/components/LogsHistogram.tsx +52 -1
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +18 -2
- package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +52 -1
- package/UI/Components/TelemetryViewer/components/TelemetrySearchBar.tsx +15 -2
- package/Utils/Metrics/MetricExplorerUrl.ts +77 -15
- package/Utils/Monitor/InterfaceInventoryUtil.ts +251 -0
- package/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.ts +333 -0
- package/Utils/Monitor/NetworkTopologyUtil.ts +249 -28
- package/Utils/NetworkDevice/DeviceHealthStateUtil.ts +14 -6
- package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +2 -0
- package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +49 -18
- package/Utils/NetworkDiscovery/PingMonitorBuilder.ts +215 -0
- package/Utils/NetworkDiscovery/RescanIntervalUtil.ts +148 -0
- package/Utils/NetworkDiscovery/ScanModeUtil.ts +105 -0
- package/Utils/NetworkDiscovery/SnmpScanConfigUtil.ts +827 -0
- package/Utils/NetworkSite/SiteMaintenanceUtil.ts +110 -0
- package/Utils/NetworkSite/SiteStatusRollupUtil.ts +350 -19
- package/Utils/NetworkSite/SiteUptimeUtil.ts +422 -21
- package/Utils/SecurityEvent/ThreatIntel/StixPatternParser.ts +383 -0
- package/Utils/Telemetry/CrossSignalScope.ts +37 -39
- package/build/dist/Models/AnalyticsModels/Index.js +2 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js +325 -0
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js.map +1 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +4 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CephClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/CephClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/CloudResourceFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/CloudResourceFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +11 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DetectionRule.js +9 -3
- package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHostFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/DockerHostFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/DockerSwarmClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +9 -3
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
- package/build/dist/Models/DatabaseModels/HostFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/HostFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +4 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +22 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/KubernetesClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Monitor.js +81 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +103 -7
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +91 -6
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +276 -31
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSite.js +124 -1
- package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PodmanHostFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/PodmanHostFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/ProxmoxClusterFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +66 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/ServiceFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js +496 -0
- package/build/dist/Models/DatabaseModels/TelemetrySourceMap.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js +800 -0
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js +1 -0
- package/build/dist/Models/DatabaseModels/UserOnCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js +1 -0
- package/build/dist/Models/DatabaseModels/UserTotpAuth.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js +1 -0
- package/build/dist/Models/DatabaseModels/UserWebAuthn.js.map +1 -1
- package/build/dist/Server/API/AlertAPI.js +18 -1
- package/build/dist/Server/API/AlertAPI.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +8 -1
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentAPI.js +35 -1
- package/build/dist/Server/API/IncidentAPI.js.map +1 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js +18 -1
- package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +30 -2
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js +18 -1
- package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +45 -0
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +100 -35
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js +64 -59
- package/build/dist/Server/API/UserOnCallLogTimelineAPI.js.map +1 -1
- package/build/dist/Server/API/UserTotpAuthAPI.js +65 -1
- package/build/dist/Server/API/UserTotpAuthAPI.js.map +1 -1
- package/build/dist/Server/API/UserWebAuthnAPI.js +42 -1
- package/build/dist/Server/API/UserWebAuthnAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787923136162-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789600000000-AddAutoProvisionedNetworkDeviceMonitors.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js +88 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789700000000-AddNetworkScaleIndexes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js +39 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789800000000-WidenSecurityEventLastErrorColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js +34 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1789900000000-AddNetworkSiteRollupPolicyAndMaintenance.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js +32 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000000-AddTelemetrySourceMap.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js +61 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790000000001-AddSnmpConfigsToNetworkDeviceDiscoveryScan.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790003445000-AddSnmpEnabledToNetworkDeviceDiscoveryScan.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js +179 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790100000000-AddResourceActivityFeeds.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/IdentityRateLimit.js +40 -3
- package/build/dist/Server/Middleware/IdentityRateLimit.js.map +1 -1
- package/build/dist/Server/Services/AIService.js +177 -30
- package/build/dist/Server/Services/AIService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterFeedService.js +89 -0
- package/build/dist/Server/Services/CephClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/CephClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/CephClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterService.js +175 -1
- package/build/dist/Server/Services/CephClusterService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceFeedService.js +89 -0
- package/build/dist/Server/Services/CloudResourceFeedService.js.map +1 -0
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +28 -3
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/CloudResourceOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerUserService.js +113 -0
- package/build/dist/Server/Services/CloudResourceOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceService.js +177 -1
- package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +201 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostFeedService.js +89 -0
- package/build/dist/Server/Services/DockerHostFeedService.js.map +1 -0
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/DockerHostOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerUserService.js +113 -0
- package/build/dist/Server/Services/DockerHostOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +177 -1
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterFeedService.js +90 -0
- package/build/dist/Server/Services/DockerSwarmClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/DockerSwarmClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js +175 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
- package/build/dist/Server/Services/EnterpriseLicenseService.js +40 -30
- package/build/dist/Server/Services/EnterpriseLicenseService.js.map +1 -1
- package/build/dist/Server/Services/ExceptionAggregationService.js +8 -2
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/HostFeedService.js +89 -0
- package/build/dist/Server/Services/HostFeedService.js.map +1 -0
- package/build/dist/Server/Services/HostLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/HostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/HostOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerUserService.js +113 -0
- package/build/dist/Server/Services/HostOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +175 -1
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +10 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +24 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterFeedService.js +89 -0
- package/build/dist/Server/Services/KubernetesClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/KubernetesClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +177 -1
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +19 -196
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +59 -0
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +115 -13
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +86 -0
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +561 -67
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +130 -16
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +850 -8
- package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +594 -5
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkInterfaceService.js +306 -0
- package/build/dist/Server/Services/NetworkInterfaceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkSiteService.js +408 -47
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostFeedService.js +89 -0
- package/build/dist/Server/Services/PodmanHostFeedService.js.map +1 -0
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/PodmanHostOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerUserService.js +113 -0
- package/build/dist/Server/Services/PodmanHostOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostService.js +177 -1
- package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +40 -30
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterFeedService.js +89 -0
- package/build/dist/Server/Services/ProxmoxClusterFeedService.js.map +1 -0
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +21 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js +113 -0
- package/build/dist/Server/Services/ProxmoxClusterOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js +175 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +56 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceFeedService.js +89 -0
- package/build/dist/Server/Services/ServiceFeedService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js +27 -3
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +24 -0
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerTeamService.js +120 -0
- package/build/dist/Server/Services/ServiceOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerUserService.js +113 -0
- package/build/dist/Server/Services/ServiceOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +173 -2
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageSubscriberService.js +7 -0
- package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryAttributeService.js +9 -3
- package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
- package/build/dist/Server/Services/TelemetrySourceMapService.js +265 -0
- package/build/dist/Server/Services/TelemetrySourceMapService.js.map +1 -0
- package/build/dist/Server/Services/ThreatIntelFeedService.js +157 -0
- package/build/dist/Server/Services/ThreatIntelFeedService.js.map +1 -0
- package/build/dist/Server/Services/ThreatIntelIndicatorService.js +276 -0
- package/build/dist/Server/Services/ThreatIntelIndicatorService.js.map +1 -0
- package/build/dist/Server/Services/TraceAggregationService.js +62 -6
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +22 -13
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js +120 -0
- package/build/dist/Server/Services/UserTwoFactorBackupCodeService.js.map +1 -1
- package/build/dist/Server/Services/UserWebhookService.js +11 -2
- package/build/dist/Server/Services/UserWebhookService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +12 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/AggregateBy.js +2 -0
- package/build/dist/Server/Types/Database/AggregateBy.js.map +1 -0
- package/build/dist/Server/Types/Database/AggregateResultUtil.js +90 -0
- package/build/dist/Server/Types/Database/AggregateResultUtil.js.map +1 -0
- package/build/dist/Server/Types/Database/JSONColumnQuery.js +14 -0
- package/build/dist/Server/Types/Database/JSONColumnQuery.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +42 -0
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryUtil.js +18 -0
- package/build/dist/Server/Types/Database/QueryUtil.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js +10 -1
- package/build/dist/Server/Types/Workflow/Components/API/Utils.js.map +1 -1
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js +8 -0
- package/build/dist/Server/Types/Workflow/Components/JavaScript.js.map +1 -1
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js +8 -0
- package/build/dist/Server/Utils/AI/CodeFix/CodeFixAgentCompletion.js.map +1 -1
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +15 -0
- package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js +266 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/AttributeFilterStatement.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +134 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/DataSource/HttpFetch.js +8 -0
- package/build/dist/Server/Utils/DataSource/HttpFetch.js.map +1 -1
- package/build/dist/Server/Utils/Database/RelationIdUtil.js +31 -0
- package/build/dist/Server/Utils/Database/RelationIdUtil.js.map +1 -1
- package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js +26 -8
- package/build/dist/Server/Utils/Marketing/MarketingEventUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js +42 -17
- package/build/dist/Server/Utils/Monitor/Criteria/ServerMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +9 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js +15 -2
- package/build/dist/Server/Utils/Monitor/Criteria/SyntheticMonitor.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +386 -271
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +278 -64
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +469 -350
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +183 -44
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +46 -3
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +18 -91
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js +194 -0
- package/build/dist/Server/Utils/Monitor/PerEntityCriteriaFanOut.js.map +1 -0
- package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js +332 -0
- package/build/dist/Server/Utils/NetworkDevice/DeviceHealthAggregation.js.map +1 -0
- package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js +279 -0
- package/build/dist/Server/Utils/NetworkSite/NetworkSiteMaintenanceSuppression.js.map +1 -0
- package/build/dist/Server/Utils/OnCallNotificationContext.js +415 -0
- package/build/dist/Server/Utils/OnCallNotificationContext.js.map +1 -0
- package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js +424 -0
- package/build/dist/Server/Utils/PrivateNetworkWebhookConfig.js.map +1 -0
- package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js +108 -0
- package/build/dist/Server/Utils/ResourceFeed/ResourceFeedUtil.js.map +1 -0
- package/build/dist/Server/Utils/Response.js +12 -1
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/SSRFProtection.js +160 -58
- package/build/dist/Server/Utils/SSRFProtection.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js +89 -0
- package/build/dist/Server/Utils/SecurityEvent/ConnectorErrorMessage.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js +75 -234
- package/build/dist/Server/Utils/SecurityEvent/DetectionRuleEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js +41 -16
- package/build/dist/Server/Utils/SecurityEvent/GoogleSecOps/GoogleSecOpsPoller.js.map +1 -1
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js +217 -0
- package/build/dist/Server/Utils/SecurityEvent/SecurityEventAlerting.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js +103 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/TaxiiClient.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js +168 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelEnricher.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js +527 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelFeedPoller.js.map +1 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js +376 -0
- package/build/dist/Server/Utils/SecurityEvent/ThreatIntel/ThreatIntelMatcher.js.map +1 -0
- package/build/dist/Server/Utils/StartServer.js +70 -44
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js +3 -0
- package/build/dist/Server/Utils/StatusPageSubscriberWebhook.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js +327 -0
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js.map +1 -0
- package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js +84 -0
- package/build/dist/Server/Utils/TwoFactorBackupCodeNotification.js.map +1 -0
- package/build/dist/Server/Utils/VM/VMAPI.js.map +1 -1
- package/build/dist/Server/Utils/VM/VMRunner.js +10 -1
- package/build/dist/Server/Utils/VM/VMRunner.js.map +1 -1
- package/build/dist/Server/Utils/VendorAssets.js +29 -0
- package/build/dist/Server/Utils/VendorAssets.js.map +1 -1
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +121 -6
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/API/URL.js +88 -27
- package/build/dist/Types/API/URL.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +8 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotWildcard.js +72 -0
- package/build/dist/Types/BaseDatabase/NotWildcard.js.map +1 -0
- package/build/dist/Types/BaseDatabase/Wildcard.js +75 -0
- package/build/dist/Types/BaseDatabase/Wildcard.js.map +1 -0
- package/build/dist/Types/BaseDatabase/WildcardPattern.js +137 -0
- package/build/dist/Types/BaseDatabase/WildcardPattern.js.map +1 -0
- package/build/dist/Types/Database/DateColumnValue.js +125 -0
- package/build/dist/Types/Database/DateColumnValue.js.map +1 -0
- package/build/dist/Types/Database/TableColumn.js +18 -2
- package/build/dist/Types/Database/TableColumn.js.map +1 -1
- package/build/dist/Types/Date.js +31 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/JSON.js +2 -0
- package/build/dist/Types/JSON.js.map +1 -1
- package/build/dist/Types/Log/LogQueryToFilter.js +111 -108
- package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
- package/build/dist/Types/Monitor/DockerAlertTemplates.js +40 -16
- package/build/dist/Types/Monitor/DockerAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/HostAlertTemplates.js +29 -7
- package/build/dist/Types/Monitor/HostAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +98 -4
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +40 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/PodmanAlertTemplates.js +36 -16
- package/build/dist/Types/Monitor/PodmanAlertTemplates.js.map +1 -1
- package/build/dist/Types/NetworkAutomation/RuleRunResult.js +90 -0
- package/build/dist/Types/NetworkAutomation/RuleRunResult.js.map +1 -1
- package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js +84 -0
- package/build/dist/Types/NetworkSite/SiteHealthRollupPolicy.js.map +1 -0
- package/build/dist/Types/Permission.js +354 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js +100 -0
- package/build/dist/Types/SecurityEvent/ThreatIntelConstants.js.map +1 -0
- package/build/dist/Types/SerializableObjectDictionary.js +8 -0
- package/build/dist/Types/SerializableObjectDictionary.js.map +1 -1
- package/build/dist/Types/Telemetry/SourceMap.js +9 -0
- package/build/dist/Types/Telemetry/SourceMap.js.map +1 -0
- package/build/dist/Types/Telemetry/TelemetrySearchQuery.js +661 -0
- package/build/dist/Types/Telemetry/TelemetrySearchQuery.js.map +1 -0
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +12 -1
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/useHistogramZoom.js +47 -0
- package/build/dist/UI/Components/Charts/Utils/useHistogramZoom.js.map +1 -0
- package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js +67 -0
- package/build/dist/UI/Components/Dictionary/DictionaryFilterOperator.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +28 -1
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +15 -3
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +25 -4
- package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js +36 -16
- package/build/dist/UI/Components/LogsViewer/components/LogSearchHelp.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +33 -5
- package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +14 -2
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +33 -5
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js +14 -2
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetrySearchBar.js.map +1 -1
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js +54 -9
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -1
- package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js +128 -0
- package/build/dist/Utils/Monitor/InterfaceInventoryUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js +190 -0
- package/build/dist/Utils/Monitor/NetworkDeviceMonitorTemplateUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +206 -28
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js +14 -7
- package/build/dist/Utils/NetworkDevice/DeviceHealthStateUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +34 -18
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js +163 -0
- package/build/dist/Utils/NetworkDiscovery/PingMonitorBuilder.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js +99 -0
- package/build/dist/Utils/NetworkDiscovery/RescanIntervalUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js +85 -0
- package/build/dist/Utils/NetworkDiscovery/ScanModeUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js +560 -0
- package/build/dist/Utils/NetworkDiscovery/SnmpScanConfigUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js +56 -0
- package/build/dist/Utils/NetworkSite/SiteMaintenanceUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +185 -10
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +248 -21
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -1
- package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js +255 -0
- package/build/dist/Utils/SecurityEvent/ThreatIntel/StixPatternParser.js.map +1 -0
- package/build/dist/Utils/Telemetry/CrossSignalScope.js +27 -30
- package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
- package/package.json +2 -1
- package/Tests/Types/Log/LogQueryParser.test.ts +0 -186
- package/Types/Log/LogQueryParser.ts +0 -252
- package/build/dist/Types/Log/LogQueryParser.js +0 -200
- package/build/dist/Types/Log/LogQueryParser.js.map +0 -1
|
@@ -30,6 +30,22 @@ export interface DockerAlertTemplate {
|
|
|
30
30
|
getMonitorStep: (args: DockerAlertTemplateArgs) => MonitorStep;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
/*
|
|
34
|
+
* Filter contract: the Docker agent stamps container identity as OTLP
|
|
35
|
+
* RESOURCE attributes, so ClickHouse stores them `resource.`-prefixed:
|
|
36
|
+
* `resource.container.name`, `resource.container.image.name`,
|
|
37
|
+
* `resource.container.runtime` ("docker") and `resource.host.name`. The
|
|
38
|
+
* worker adds the host scope (`resource.host.name` from hostIdentifier)
|
|
39
|
+
* and the runtime filter itself. Every template groups by
|
|
40
|
+
* `resource.container.name` so each container on the host is evaluated
|
|
41
|
+
* independently — one incident per container instead of one incident for
|
|
42
|
+
* the whole host, where the busiest container silences every other one.
|
|
43
|
+
*
|
|
44
|
+
* NOTE: this is `resource.`-prefixed, unlike Docker Swarm, whose
|
|
45
|
+
* docker_stats receiver keeps container identity in DATAPOINT labels
|
|
46
|
+
* (plain `container.name`).
|
|
47
|
+
*/
|
|
48
|
+
|
|
33
49
|
export function buildDockerMonitorStep(args: {
|
|
34
50
|
dockerMonitor: MonitorStepDockerMonitor;
|
|
35
51
|
offlineCriteriaInstance: MonitorCriteriaInstance;
|
|
@@ -184,6 +200,7 @@ export function buildDockerMonitorConfig(args: {
|
|
|
184
200
|
rollingTime: RollingTime;
|
|
185
201
|
aggregationType: MetricsAggregationType;
|
|
186
202
|
attributes?: Record<string, string>;
|
|
203
|
+
groupByAttributeKey?: string | undefined;
|
|
187
204
|
}): MonitorStepDockerMonitor {
|
|
188
205
|
return {
|
|
189
206
|
hostIdentifier: args.hostIdentifier,
|
|
@@ -205,6 +222,9 @@ export function buildDockerMonitorConfig(args: {
|
|
|
205
222
|
aggegationType: args.aggregationType,
|
|
206
223
|
aggregateBy: {},
|
|
207
224
|
},
|
|
225
|
+
...(args.groupByAttributeKey
|
|
226
|
+
? { groupByAttributeKeys: [args.groupByAttributeKey] }
|
|
227
|
+
: {}),
|
|
208
228
|
},
|
|
209
229
|
},
|
|
210
230
|
],
|
|
@@ -219,7 +239,8 @@ export function buildDockerMonitorConfig(args: {
|
|
|
219
239
|
const highCpuTemplate: DockerAlertTemplate = {
|
|
220
240
|
id: "docker-high-cpu",
|
|
221
241
|
name: "High Container CPU Usage",
|
|
222
|
-
description:
|
|
242
|
+
description:
|
|
243
|
+
"Alert when container CPU usage exceeds 80% sustained. One alert per container.",
|
|
223
244
|
category: "Resource",
|
|
224
245
|
severity: "Warning",
|
|
225
246
|
getMonitorStep: (args: DockerAlertTemplateArgs): MonitorStep => {
|
|
@@ -232,10 +253,12 @@ const highCpuTemplate: DockerAlertTemplate = {
|
|
|
232
253
|
metricAlias,
|
|
233
254
|
rollingTime: RollingTime.Past5Minutes,
|
|
234
255
|
/*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
256
|
+
* Max WITHIN each container's series: any scrape in the window over
|
|
257
|
+
* the threshold trips that container. Grouping by container name
|
|
258
|
+
* already keeps a hot container from being diluted by idle ones.
|
|
237
259
|
*/
|
|
238
260
|
aggregationType: MetricsAggregationType.Max,
|
|
261
|
+
groupByAttributeKey: "resource.container.name",
|
|
239
262
|
}),
|
|
240
263
|
offlineCriteriaInstance: buildDockerOfflineCriteriaInstance({
|
|
241
264
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -264,7 +287,8 @@ const highCpuTemplate: DockerAlertTemplate = {
|
|
|
264
287
|
const highMemoryTemplate: DockerAlertTemplate = {
|
|
265
288
|
id: "docker-high-memory",
|
|
266
289
|
name: "High Container Memory Usage",
|
|
267
|
-
description:
|
|
290
|
+
description:
|
|
291
|
+
"Alert when container memory usage exceeds 85% of its limit. One alert per container.",
|
|
268
292
|
category: "Resource",
|
|
269
293
|
severity: "Warning",
|
|
270
294
|
getMonitorStep: (args: DockerAlertTemplateArgs): MonitorStep => {
|
|
@@ -277,10 +301,12 @@ const highMemoryTemplate: DockerAlertTemplate = {
|
|
|
277
301
|
metricAlias,
|
|
278
302
|
rollingTime: RollingTime.Past5Minutes,
|
|
279
303
|
/*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
304
|
+
* Max WITHIN each container's series: any scrape in the window over
|
|
305
|
+
* the limit trips that container. Grouping by container name already
|
|
306
|
+
* keeps a container at its limit from being diluted by idle ones.
|
|
282
307
|
*/
|
|
283
308
|
aggregationType: MetricsAggregationType.Max,
|
|
309
|
+
groupByAttributeKey: "resource.container.name",
|
|
284
310
|
}),
|
|
285
311
|
offlineCriteriaInstance: buildDockerOfflineCriteriaInstance({
|
|
286
312
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -310,7 +336,7 @@ const containerRestartLoopTemplate: DockerAlertTemplate = {
|
|
|
310
336
|
id: "docker-restart-loop",
|
|
311
337
|
name: "Container Restart Loop",
|
|
312
338
|
description:
|
|
313
|
-
"Alert when a container has restarted more than 5 times, indicating a crash loop.",
|
|
339
|
+
"Alert when a container has restarted more than 5 times, indicating a crash loop. One alert per container.",
|
|
314
340
|
category: "Container",
|
|
315
341
|
severity: "Critical",
|
|
316
342
|
getMonitorStep: (args: DockerAlertTemplateArgs): MonitorStep => {
|
|
@@ -323,6 +349,7 @@ const containerRestartLoopTemplate: DockerAlertTemplate = {
|
|
|
323
349
|
metricAlias,
|
|
324
350
|
rollingTime: RollingTime.Past5Minutes,
|
|
325
351
|
aggregationType: MetricsAggregationType.Max,
|
|
352
|
+
groupByAttributeKey: "resource.container.name",
|
|
326
353
|
}),
|
|
327
354
|
offlineCriteriaInstance: buildDockerOfflineCriteriaInstance({
|
|
328
355
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -352,7 +379,7 @@ const highCpuThrottlingTemplate: DockerAlertTemplate = {
|
|
|
352
379
|
id: "docker-cpu-throttling",
|
|
353
380
|
name: "Container CPU Throttling",
|
|
354
381
|
description:
|
|
355
|
-
"Alert when a container is being CPU-throttled, indicating it needs more CPU resources.",
|
|
382
|
+
"Alert when a container is being CPU-throttled, indicating it needs more CPU resources. One alert per container.",
|
|
356
383
|
category: "Resource",
|
|
357
384
|
severity: "Warning",
|
|
358
385
|
getMonitorStep: (args: DockerAlertTemplateArgs): MonitorStep => {
|
|
@@ -365,10 +392,12 @@ const highCpuThrottlingTemplate: DockerAlertTemplate = {
|
|
|
365
392
|
metricAlias,
|
|
366
393
|
rollingTime: RollingTime.Past5Minutes,
|
|
367
394
|
/*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
395
|
+
* Max WITHIN each container's series, so throttled time is never
|
|
396
|
+
* summed across containers — grouping by container name attributes
|
|
397
|
+
* the throttling to the container that actually suffered it.
|
|
370
398
|
*/
|
|
371
399
|
aggregationType: MetricsAggregationType.Max,
|
|
400
|
+
groupByAttributeKey: "resource.container.name",
|
|
372
401
|
}),
|
|
373
402
|
offlineCriteriaInstance: buildDockerOfflineCriteriaInstance({
|
|
374
403
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -398,7 +427,7 @@ const highProcessCountTemplate: DockerAlertTemplate = {
|
|
|
398
427
|
id: "docker-high-pids",
|
|
399
428
|
name: "High Container Process Count",
|
|
400
429
|
description:
|
|
401
|
-
"Alert when a container has an unusually high number of processes, which may indicate a fork bomb or resource leak.",
|
|
430
|
+
"Alert when a container has an unusually high number of processes, which may indicate a fork bomb or resource leak. One alert per container.",
|
|
402
431
|
category: "Container",
|
|
403
432
|
severity: "Warning",
|
|
404
433
|
getMonitorStep: (args: DockerAlertTemplateArgs): MonitorStep => {
|
|
@@ -411,6 +440,7 @@ const highProcessCountTemplate: DockerAlertTemplate = {
|
|
|
411
440
|
metricAlias,
|
|
412
441
|
rollingTime: RollingTime.Past5Minutes,
|
|
413
442
|
aggregationType: MetricsAggregationType.Max,
|
|
443
|
+
groupByAttributeKey: "resource.container.name",
|
|
414
444
|
}),
|
|
415
445
|
offlineCriteriaInstance: buildDockerOfflineCriteriaInstance({
|
|
416
446
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -440,7 +470,7 @@ const containerUptimeTemplate: DockerAlertTemplate = {
|
|
|
440
470
|
id: "docker-container-down",
|
|
441
471
|
name: "Container Down (Low Uptime)",
|
|
442
472
|
description:
|
|
443
|
-
"Alert when a container's uptime drops to zero, indicating it has stopped or crashed.",
|
|
473
|
+
"Alert when a container's uptime drops to zero, indicating it has stopped or crashed. One alert per container.",
|
|
444
474
|
category: "Container",
|
|
445
475
|
severity: "Critical",
|
|
446
476
|
getMonitorStep: (args: DockerAlertTemplateArgs): MonitorStep => {
|
|
@@ -453,6 +483,7 @@ const containerUptimeTemplate: DockerAlertTemplate = {
|
|
|
453
483
|
metricAlias,
|
|
454
484
|
rollingTime: RollingTime.Past1Minute,
|
|
455
485
|
aggregationType: MetricsAggregationType.Min,
|
|
486
|
+
groupByAttributeKey: "resource.container.name",
|
|
456
487
|
}),
|
|
457
488
|
offlineCriteriaInstance: buildDockerOfflineCriteriaInstance({
|
|
458
489
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -30,6 +30,25 @@ export interface HostAlertTemplate {
|
|
|
30
30
|
getMonitorStep: (args: HostAlertTemplateArgs) => MonitorStep;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
/*
|
|
34
|
+
* Filter contract: a host monitor is already scoped to ONE host — the
|
|
35
|
+
* worker adds `resource.host.name` from the step's hostIdentifier — so
|
|
36
|
+
* host-scalar metrics (CPU utilization, memory utilization, load average,
|
|
37
|
+
* process count) stay UNGROUPED: there is exactly one series per host and
|
|
38
|
+
* grouping would buy nothing.
|
|
39
|
+
*
|
|
40
|
+
* Metrics that are per-entity WITHIN the host are grouped, because the
|
|
41
|
+
* hostmetrics receiver partitions them by unprefixed DATAPOINT labels
|
|
42
|
+
* (never `resource.`-prefixed):
|
|
43
|
+
*
|
|
44
|
+
* - `system.filesystem.*` -> `mountpoint` (also `device`, `state`)
|
|
45
|
+
* - `system.disk.*` / `system.network.*` -> `device` (also `direction`)
|
|
46
|
+
*
|
|
47
|
+
* Without a group-by, one full mount raises a single incident for the
|
|
48
|
+
* whole host and every other mount that fills up afterwards is silenced
|
|
49
|
+
* for as long as that incident stays open.
|
|
50
|
+
*/
|
|
51
|
+
|
|
33
52
|
export function buildHostMonitorStep(args: {
|
|
34
53
|
hostMonitor: MonitorStepHostMonitor;
|
|
35
54
|
offlineCriteriaInstance: MonitorCriteriaInstance;
|
|
@@ -184,6 +203,7 @@ export function buildHostMonitorConfig(args: {
|
|
|
184
203
|
rollingTime: RollingTime;
|
|
185
204
|
aggregationType: MetricsAggregationType;
|
|
186
205
|
attributes?: Record<string, string>;
|
|
206
|
+
groupByAttributeKey?: string | undefined;
|
|
187
207
|
}): MonitorStepHostMonitor {
|
|
188
208
|
return {
|
|
189
209
|
hostIdentifier: args.hostIdentifier,
|
|
@@ -204,6 +224,9 @@ export function buildHostMonitorConfig(args: {
|
|
|
204
224
|
aggegationType: args.aggregationType,
|
|
205
225
|
aggregateBy: {},
|
|
206
226
|
},
|
|
227
|
+
...(args.groupByAttributeKey
|
|
228
|
+
? { groupByAttributeKeys: [args.groupByAttributeKey] }
|
|
229
|
+
: {}),
|
|
207
230
|
},
|
|
208
231
|
},
|
|
209
232
|
],
|
|
@@ -302,7 +325,8 @@ const highMemoryTemplate: HostAlertTemplate = {
|
|
|
302
325
|
const highFilesystemUsageTemplate: HostAlertTemplate = {
|
|
303
326
|
id: "host-high-filesystem",
|
|
304
327
|
name: "High Filesystem Usage",
|
|
305
|
-
description:
|
|
328
|
+
description:
|
|
329
|
+
"Alert when host filesystem utilization exceeds 90%. One alert per mountpoint.",
|
|
306
330
|
category: "Resource",
|
|
307
331
|
severity: "Critical",
|
|
308
332
|
getMonitorStep: (args: HostAlertTemplateArgs): MonitorStep => {
|
|
@@ -315,10 +339,14 @@ const highFilesystemUsageTemplate: HostAlertTemplate = {
|
|
|
315
339
|
metricAlias,
|
|
316
340
|
rollingTime: RollingTime.Past5Minutes,
|
|
317
341
|
/*
|
|
318
|
-
*
|
|
319
|
-
*
|
|
342
|
+
* Max WITHIN each mountpoint's series: the peak utilization that
|
|
343
|
+
* mount reached during the window. Grouping by `mountpoint` already
|
|
344
|
+
* keeps mounts from being averaged together, and gives one incident
|
|
345
|
+
* per mount so a second mount filling up is not silenced by the
|
|
346
|
+
* first one's open incident.
|
|
320
347
|
*/
|
|
321
348
|
aggregationType: MetricsAggregationType.Max,
|
|
349
|
+
groupByAttributeKey: "mountpoint",
|
|
322
350
|
}),
|
|
323
351
|
offlineCriteriaInstance: buildHostOfflineCriteriaInstance({
|
|
324
352
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -182,6 +182,29 @@ export function buildOnlineCriteriaInstance(args: {
|
|
|
182
182
|
return instance;
|
|
183
183
|
}
|
|
184
184
|
|
|
185
|
+
/**
|
|
186
|
+
* Build a single-query monitor config.
|
|
187
|
+
*
|
|
188
|
+
* `groupByAttributeKey` makes the monitor PER-SERIES: the worker splits
|
|
189
|
+
* the metric by that attribute and every group is evaluated — and paged —
|
|
190
|
+
* on its own, so a cluster of 200 pods raises one incident per unhealthy
|
|
191
|
+
* pod rather than one incident for the whole cluster that then dedupes
|
|
192
|
+
* every later pod away. Omitting it keeps the monitor whole-cluster.
|
|
193
|
+
*
|
|
194
|
+
* Group by an object's own name whenever the metric is genuinely
|
|
195
|
+
* PER-OBJECT (per node, per pod, per deployment, ...). Leave it off for
|
|
196
|
+
* cluster-scalar signals — etcd leadership, API server throttling,
|
|
197
|
+
* scheduler backlog — where there is exactly one value for the cluster
|
|
198
|
+
* and splitting it would invent series that do not exist.
|
|
199
|
+
*
|
|
200
|
+
* The key is the ClickHouse-stored attribute name, which carries the
|
|
201
|
+
* `resource.` prefix for OTel resource attributes (see
|
|
202
|
+
* OtelMetricsIngestService — resource attributes are stamped with
|
|
203
|
+
* `prefixKeysWithString: "resource"`). So node grouping is
|
|
204
|
+
* `resource.k8s.node.name`, not the bare `k8s.node.name`; the bare key
|
|
205
|
+
* matches nothing and collapses the whole fleet into one mislabeled
|
|
206
|
+
* series that still renders and still alerts.
|
|
207
|
+
*/
|
|
185
208
|
export function buildKubernetesMonitorConfig(args: {
|
|
186
209
|
clusterIdentifier: string;
|
|
187
210
|
metricName: string;
|
|
@@ -190,6 +213,7 @@ export function buildKubernetesMonitorConfig(args: {
|
|
|
190
213
|
rollingTime: RollingTime;
|
|
191
214
|
aggregationType: MetricsAggregationType;
|
|
192
215
|
attributes?: Record<string, string>;
|
|
216
|
+
groupByAttributeKey?: string | undefined;
|
|
193
217
|
}): MonitorStepKubernetesMonitor {
|
|
194
218
|
return {
|
|
195
219
|
clusterIdentifier: args.clusterIdentifier,
|
|
@@ -212,6 +236,9 @@ export function buildKubernetesMonitorConfig(args: {
|
|
|
212
236
|
aggegationType: args.aggregationType,
|
|
213
237
|
aggregateBy: {},
|
|
214
238
|
},
|
|
239
|
+
...(args.groupByAttributeKey
|
|
240
|
+
? { groupByAttributeKeys: [args.groupByAttributeKey] }
|
|
241
|
+
: {}),
|
|
215
242
|
},
|
|
216
243
|
},
|
|
217
244
|
],
|
|
@@ -346,6 +373,13 @@ const crashLoopBackOffTemplate: KubernetesAlertTemplate = {
|
|
|
346
373
|
resourceScope: KubernetesResourceScope.Cluster,
|
|
347
374
|
rollingTime: RollingTime.Past5Minutes,
|
|
348
375
|
aggregationType: MetricsAggregationType.Max,
|
|
376
|
+
/*
|
|
377
|
+
* Per pod: restarts are a property of one pod's containers, so a
|
|
378
|
+
* crash-looping pod must page on its own rather than dedupe behind
|
|
379
|
+
* whichever pod in the cluster crashed first. Max over the window
|
|
380
|
+
* therefore becomes "the worst container in THIS pod".
|
|
381
|
+
*/
|
|
382
|
+
groupByAttributeKey: "resource.k8s.pod.name",
|
|
349
383
|
}),
|
|
350
384
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
351
385
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -390,6 +424,22 @@ const podPendingTemplate: KubernetesAlertTemplate = {
|
|
|
390
424
|
rollingTime: RollingTime.Past5Minutes,
|
|
391
425
|
aggregationType: MetricsAggregationType.Sum,
|
|
392
426
|
attributes: { "resource.k8s.pod.phase": "Pending" },
|
|
427
|
+
/*
|
|
428
|
+
* Deliberately NOT grouped, unlike the other pod-level templates.
|
|
429
|
+
*
|
|
430
|
+
* This is a cluster-wide COUNT of unschedulable pods (Cluster
|
|
431
|
+
* scope, Sum, "Count > 0"), i.e. a statement about the cluster's
|
|
432
|
+
* scheduling capacity rather than about any one pod's health — the
|
|
433
|
+
* same signal as k8s-scheduler-backlog, seen from the pod side.
|
|
434
|
+
*
|
|
435
|
+
* Grouping it by `resource.k8s.pod.name` would fan out per pod
|
|
436
|
+
* name, and pending pod names are ephemeral: a stuck rollout burns
|
|
437
|
+
* a new replicaset-hash-suffixed name per attempt, so every retry
|
|
438
|
+
* would open a fresh incident and resolve it again the moment the
|
|
439
|
+
* name changed. That is an alert storm keyed on an identity that
|
|
440
|
+
* does not persist, which is the opposite of what per-series
|
|
441
|
+
* grouping is for (durable entities: nodes, deployments, jobs).
|
|
442
|
+
*/
|
|
393
443
|
}),
|
|
394
444
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
395
445
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -433,6 +483,12 @@ const nodeNotReadyTemplate: KubernetesAlertTemplate = {
|
|
|
433
483
|
resourceScope: KubernetesResourceScope.Node,
|
|
434
484
|
rollingTime: RollingTime.Past5Minutes,
|
|
435
485
|
aggregationType: MetricsAggregationType.Min,
|
|
486
|
+
/*
|
|
487
|
+
* Per node: one incident per NotReady node. Ungrouped, the Min
|
|
488
|
+
* across the fleet is 0 as soon as ANY node is down, and the
|
|
489
|
+
* second node to fail dedupes behind the first one's incident.
|
|
490
|
+
*/
|
|
491
|
+
groupByAttributeKey: "resource.k8s.node.name",
|
|
436
492
|
}),
|
|
437
493
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
438
494
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -584,6 +640,14 @@ const deploymentReplicaMismatchTemplate: KubernetesAlertTemplate = {
|
|
|
584
640
|
resourceScope: KubernetesResourceScope.Workload,
|
|
585
641
|
rollingTime: RollingTime.Past5Minutes,
|
|
586
642
|
aggregationType: MetricsAggregationType.Max,
|
|
643
|
+
/*
|
|
644
|
+
* Per deployment: a stuck rollout is a property of one Deployment
|
|
645
|
+
* object, and the incident copy already names the deployment. The
|
|
646
|
+
* k8s_cluster receiver stamps `k8s.deployment.name` on this metric
|
|
647
|
+
* (the worker reads `resource.k8s.deployment.name` back off these
|
|
648
|
+
* rows to build the affected-resource breakdown).
|
|
649
|
+
*/
|
|
650
|
+
groupByAttributeKey: "resource.k8s.deployment.name",
|
|
587
651
|
}),
|
|
588
652
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
589
653
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -626,6 +690,13 @@ const jobFailuresTemplate: KubernetesAlertTemplate = {
|
|
|
626
690
|
resourceScope: KubernetesResourceScope.Workload,
|
|
627
691
|
rollingTime: RollingTime.Past5Minutes,
|
|
628
692
|
aggregationType: MetricsAggregationType.Max,
|
|
693
|
+
/*
|
|
694
|
+
* Per Job object — one failing Job must not hide the next one.
|
|
695
|
+
* Jobs are short-lived: when a Job is cleaned up its series stops
|
|
696
|
+
* arriving and the per-series pass auto-resolves that Job's alert
|
|
697
|
+
* by absence, which is the behaviour we want here.
|
|
698
|
+
*/
|
|
699
|
+
groupByAttributeKey: "resource.k8s.job.name",
|
|
629
700
|
}),
|
|
630
701
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
631
702
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -669,6 +740,11 @@ const etcdNoLeaderTemplate: KubernetesAlertTemplate = {
|
|
|
669
740
|
resourceScope: KubernetesResourceScope.Cluster,
|
|
670
741
|
rollingTime: RollingTime.Past1Minute,
|
|
671
742
|
aggregationType: MetricsAggregationType.Min,
|
|
743
|
+
/*
|
|
744
|
+
* Ungrouped: leadership is a property of the etcd cluster as a
|
|
745
|
+
* whole, not of any one object. "No leader" is one cluster-scalar
|
|
746
|
+
* fact and belongs in one incident.
|
|
747
|
+
*/
|
|
672
748
|
}),
|
|
673
749
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
674
750
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -712,6 +788,11 @@ const apiServerThrottlingTemplate: KubernetesAlertTemplate = {
|
|
|
712
788
|
resourceScope: KubernetesResourceScope.Cluster,
|
|
713
789
|
rollingTime: RollingTime.Past5Minutes,
|
|
714
790
|
aggregationType: MetricsAggregationType.Sum,
|
|
791
|
+
/*
|
|
792
|
+
* Ungrouped: this is the control plane's aggregate throttling
|
|
793
|
+
* rate. Splitting it would need a per-apiserver-instance identity
|
|
794
|
+
* that this metric does not carry in the shipped agent config.
|
|
795
|
+
*/
|
|
715
796
|
}),
|
|
716
797
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
717
798
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -755,6 +836,10 @@ const schedulerBacklogTemplate: KubernetesAlertTemplate = {
|
|
|
755
836
|
resourceScope: KubernetesResourceScope.Cluster,
|
|
756
837
|
rollingTime: RollingTime.Past5Minutes,
|
|
757
838
|
aggregationType: MetricsAggregationType.Avg,
|
|
839
|
+
/*
|
|
840
|
+
* Ungrouped: a scheduler queue depth is one number for the
|
|
841
|
+
* cluster. There is no per-object series to split it into.
|
|
842
|
+
*/
|
|
758
843
|
}),
|
|
759
844
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
760
845
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -797,6 +882,13 @@ const highDiskUsageTemplate: KubernetesAlertTemplate = {
|
|
|
797
882
|
resourceScope: KubernetesResourceScope.Node,
|
|
798
883
|
rollingTime: RollingTime.Past5Minutes,
|
|
799
884
|
aggregationType: MetricsAggregationType.Avg,
|
|
885
|
+
/*
|
|
886
|
+
* Per node: filesystem usage is per node (kubeletstats reports the
|
|
887
|
+
* node's filesystem), and disk fills one node at a time. Ungrouped,
|
|
888
|
+
* the Avg across the fleet dilutes a single full node into the
|
|
889
|
+
* fleet mean and the alert never fires.
|
|
890
|
+
*/
|
|
891
|
+
groupByAttributeKey: "resource.k8s.node.name",
|
|
800
892
|
}),
|
|
801
893
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
802
894
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -840,6 +932,12 @@ const daemonSetUnavailableTemplate: KubernetesAlertTemplate = {
|
|
|
840
932
|
resourceScope: KubernetesResourceScope.Workload,
|
|
841
933
|
rollingTime: RollingTime.Past5Minutes,
|
|
842
934
|
aggregationType: MetricsAggregationType.Max,
|
|
935
|
+
/*
|
|
936
|
+
* Per DaemonSet object: the incident names the DaemonSet, so each
|
|
937
|
+
* one has to own its own alert instead of dedupeing behind
|
|
938
|
+
* whichever DaemonSet in the cluster misscheduled first.
|
|
939
|
+
*/
|
|
940
|
+
groupByAttributeKey: "resource.k8s.daemonset.name",
|
|
843
941
|
}),
|
|
844
942
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
845
943
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -79,6 +79,7 @@ import MonitorStepIoTMonitor, {
|
|
|
79
79
|
MonitorStepIoTMonitorUtil,
|
|
80
80
|
} from "./MonitorStepIoTMonitor";
|
|
81
81
|
import MetricsViewConfig from "../Metrics/MetricsViewConfig";
|
|
82
|
+
import MetricQueryConfigData from "../Metrics/MetricQueryConfigData";
|
|
82
83
|
import Zod, { ZodSchema } from "../../Utils/Schema/Zod";
|
|
83
84
|
|
|
84
85
|
/*
|
|
@@ -389,6 +390,54 @@ export default class MonitorStep extends DatabaseProperty {
|
|
|
389
390
|
);
|
|
390
391
|
}
|
|
391
392
|
|
|
393
|
+
/**
|
|
394
|
+
* The union of `groupByAttributeKeys` across every metric query config
|
|
395
|
+
* on this step — i.e. the attributes the monitor is grouped by.
|
|
396
|
+
*
|
|
397
|
+
* This is the single source of truth for "is this monitor grouped?".
|
|
398
|
+
* The telemetry worker uses it to decide whether to build a
|
|
399
|
+
* `seriesBreakdown`, and the criteria evaluator uses it to decide
|
|
400
|
+
* whether a criteria is *meant* to fan out one alert/incident per
|
|
401
|
+
* series. Those two answers must never disagree: when they did, a
|
|
402
|
+
* grouped monitor that produced no per-series match silently fell
|
|
403
|
+
* back to a single whole-monitor alert whose dedupe key carries no
|
|
404
|
+
* series, and every host after the first was skipped for as long as
|
|
405
|
+
* that alert stayed open.
|
|
406
|
+
*/
|
|
407
|
+
public static getGroupByAttributeKeys(
|
|
408
|
+
monitorStep: MonitorStep | undefined,
|
|
409
|
+
): Array<string> {
|
|
410
|
+
return MonitorStep.getGroupByAttributeKeysFromQueryConfigs(
|
|
411
|
+
MonitorStep.getMetricsViewConfig(monitorStep)?.queryConfigs || [],
|
|
412
|
+
);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* The query-config-level half of `getGroupByAttributeKeys`, for the
|
|
417
|
+
* telemetry worker which already holds the configs and never
|
|
418
|
+
* reconstructs the step. Per-series alerting needs a consistent key
|
|
419
|
+
* set across queries so formula series line up — otherwise `a + b`
|
|
420
|
+
* would split differently for `a` and for `b` and the per-series
|
|
421
|
+
* formula evaluation would not align — hence the union rather than
|
|
422
|
+
* per-query keys.
|
|
423
|
+
*/
|
|
424
|
+
public static getGroupByAttributeKeysFromQueryConfigs(
|
|
425
|
+
queryConfigs: Array<MetricQueryConfigData>,
|
|
426
|
+
): Array<string> {
|
|
427
|
+
const keys: Set<string> = new Set<string>();
|
|
428
|
+
|
|
429
|
+
for (const queryConfig of queryConfigs) {
|
|
430
|
+
for (const key of queryConfig?.metricQueryData?.groupByAttributeKeys ||
|
|
431
|
+
[]) {
|
|
432
|
+
if (key) {
|
|
433
|
+
keys.add(key);
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
return Array.from(keys);
|
|
439
|
+
}
|
|
440
|
+
|
|
392
441
|
public get id(): ObjectID {
|
|
393
442
|
return new ObjectID(this.data?.id as string);
|
|
394
443
|
}
|
|
@@ -30,6 +30,18 @@ export interface PodmanAlertTemplate {
|
|
|
30
30
|
getMonitorStep: (args: PodmanAlertTemplateArgs) => MonitorStep;
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
/*
|
|
34
|
+
* Filter contract: the Podman agent stamps container identity as OTLP
|
|
35
|
+
* RESOURCE attributes, so ClickHouse stores them `resource.`-prefixed:
|
|
36
|
+
* `resource.container.name`, `resource.container.image.name`,
|
|
37
|
+
* `resource.container.runtime` ("podman") and `resource.host.name`. The
|
|
38
|
+
* worker adds the host scope (`resource.host.name` from hostIdentifier)
|
|
39
|
+
* and the runtime filter itself. Every template groups by
|
|
40
|
+
* `resource.container.name` so each container on the host is evaluated
|
|
41
|
+
* independently — one incident per container instead of one incident for
|
|
42
|
+
* the whole host, where the busiest container silences every other one.
|
|
43
|
+
*/
|
|
44
|
+
|
|
33
45
|
export function buildPodmanMonitorStep(args: {
|
|
34
46
|
podmanMonitor: MonitorStepPodmanMonitor;
|
|
35
47
|
offlineCriteriaInstance: MonitorCriteriaInstance;
|
|
@@ -184,6 +196,7 @@ export function buildPodmanMonitorConfig(args: {
|
|
|
184
196
|
rollingTime: RollingTime;
|
|
185
197
|
aggregationType: MetricsAggregationType;
|
|
186
198
|
attributes?: Record<string, string>;
|
|
199
|
+
groupByAttributeKey?: string | undefined;
|
|
187
200
|
}): MonitorStepPodmanMonitor {
|
|
188
201
|
return {
|
|
189
202
|
hostIdentifier: args.hostIdentifier,
|
|
@@ -205,6 +218,9 @@ export function buildPodmanMonitorConfig(args: {
|
|
|
205
218
|
aggegationType: args.aggregationType,
|
|
206
219
|
aggregateBy: {},
|
|
207
220
|
},
|
|
221
|
+
...(args.groupByAttributeKey
|
|
222
|
+
? { groupByAttributeKeys: [args.groupByAttributeKey] }
|
|
223
|
+
: {}),
|
|
208
224
|
},
|
|
209
225
|
},
|
|
210
226
|
],
|
|
@@ -219,7 +235,8 @@ export function buildPodmanMonitorConfig(args: {
|
|
|
219
235
|
const highCpuTemplate: PodmanAlertTemplate = {
|
|
220
236
|
id: "podman-high-cpu",
|
|
221
237
|
name: "High Container CPU Usage",
|
|
222
|
-
description:
|
|
238
|
+
description:
|
|
239
|
+
"Alert when container CPU usage exceeds 80% sustained. One alert per container.",
|
|
223
240
|
category: "Resource",
|
|
224
241
|
severity: "Warning",
|
|
225
242
|
getMonitorStep: (args: PodmanAlertTemplateArgs): MonitorStep => {
|
|
@@ -232,10 +249,12 @@ const highCpuTemplate: PodmanAlertTemplate = {
|
|
|
232
249
|
metricAlias,
|
|
233
250
|
rollingTime: RollingTime.Past5Minutes,
|
|
234
251
|
/*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
252
|
+
* Max WITHIN each container's series: any scrape in the window over
|
|
253
|
+
* the threshold trips that container. Grouping by container name
|
|
254
|
+
* already keeps a hot container from being diluted by idle ones.
|
|
237
255
|
*/
|
|
238
256
|
aggregationType: MetricsAggregationType.Max,
|
|
257
|
+
groupByAttributeKey: "resource.container.name",
|
|
239
258
|
}),
|
|
240
259
|
offlineCriteriaInstance: buildPodmanOfflineCriteriaInstance({
|
|
241
260
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -264,7 +283,8 @@ const highCpuTemplate: PodmanAlertTemplate = {
|
|
|
264
283
|
const highMemoryTemplate: PodmanAlertTemplate = {
|
|
265
284
|
id: "podman-high-memory",
|
|
266
285
|
name: "High Container Memory Usage",
|
|
267
|
-
description:
|
|
286
|
+
description:
|
|
287
|
+
"Alert when container memory usage exceeds 85% of its limit. One alert per container.",
|
|
268
288
|
category: "Resource",
|
|
269
289
|
severity: "Warning",
|
|
270
290
|
getMonitorStep: (args: PodmanAlertTemplateArgs): MonitorStep => {
|
|
@@ -277,10 +297,12 @@ const highMemoryTemplate: PodmanAlertTemplate = {
|
|
|
277
297
|
metricAlias,
|
|
278
298
|
rollingTime: RollingTime.Past5Minutes,
|
|
279
299
|
/*
|
|
280
|
-
*
|
|
281
|
-
*
|
|
300
|
+
* Max WITHIN each container's series: any scrape in the window over
|
|
301
|
+
* the limit trips that container. Grouping by container name already
|
|
302
|
+
* keeps a container at its limit from being diluted by idle ones.
|
|
282
303
|
*/
|
|
283
304
|
aggregationType: MetricsAggregationType.Max,
|
|
305
|
+
groupByAttributeKey: "resource.container.name",
|
|
284
306
|
}),
|
|
285
307
|
offlineCriteriaInstance: buildPodmanOfflineCriteriaInstance({
|
|
286
308
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -310,7 +332,7 @@ const containerRestartLoopTemplate: PodmanAlertTemplate = {
|
|
|
310
332
|
id: "podman-restart-loop",
|
|
311
333
|
name: "Container Restart Loop",
|
|
312
334
|
description:
|
|
313
|
-
"Alert when a container has restarted more than 5 times, indicating a crash loop.",
|
|
335
|
+
"Alert when a container has restarted more than 5 times, indicating a crash loop. One alert per container.",
|
|
314
336
|
category: "Container",
|
|
315
337
|
severity: "Critical",
|
|
316
338
|
getMonitorStep: (args: PodmanAlertTemplateArgs): MonitorStep => {
|
|
@@ -323,6 +345,7 @@ const containerRestartLoopTemplate: PodmanAlertTemplate = {
|
|
|
323
345
|
metricAlias,
|
|
324
346
|
rollingTime: RollingTime.Past5Minutes,
|
|
325
347
|
aggregationType: MetricsAggregationType.Max,
|
|
348
|
+
groupByAttributeKey: "resource.container.name",
|
|
326
349
|
}),
|
|
327
350
|
offlineCriteriaInstance: buildPodmanOfflineCriteriaInstance({
|
|
328
351
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -352,7 +375,7 @@ const highCpuThrottlingTemplate: PodmanAlertTemplate = {
|
|
|
352
375
|
id: "podman-cpu-throttling",
|
|
353
376
|
name: "Container CPU Throttling",
|
|
354
377
|
description:
|
|
355
|
-
"Alert when a container is being CPU-throttled, indicating it needs more CPU resources.",
|
|
378
|
+
"Alert when a container is being CPU-throttled, indicating it needs more CPU resources. One alert per container.",
|
|
356
379
|
category: "Resource",
|
|
357
380
|
severity: "Warning",
|
|
358
381
|
getMonitorStep: (args: PodmanAlertTemplateArgs): MonitorStep => {
|
|
@@ -365,10 +388,12 @@ const highCpuThrottlingTemplate: PodmanAlertTemplate = {
|
|
|
365
388
|
metricAlias,
|
|
366
389
|
rollingTime: RollingTime.Past5Minutes,
|
|
367
390
|
/*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
391
|
+
* Max WITHIN each container's series, so throttled time is never
|
|
392
|
+
* summed across containers — grouping by container name attributes
|
|
393
|
+
* the throttling to the container that actually suffered it.
|
|
370
394
|
*/
|
|
371
395
|
aggregationType: MetricsAggregationType.Max,
|
|
396
|
+
groupByAttributeKey: "resource.container.name",
|
|
372
397
|
}),
|
|
373
398
|
offlineCriteriaInstance: buildPodmanOfflineCriteriaInstance({
|
|
374
399
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -398,7 +423,7 @@ const highProcessCountTemplate: PodmanAlertTemplate = {
|
|
|
398
423
|
id: "podman-high-pids",
|
|
399
424
|
name: "High Container Process Count",
|
|
400
425
|
description:
|
|
401
|
-
"Alert when a container has an unusually high number of processes, which may indicate a fork bomb or resource leak.",
|
|
426
|
+
"Alert when a container has an unusually high number of processes, which may indicate a fork bomb or resource leak. One alert per container.",
|
|
402
427
|
category: "Container",
|
|
403
428
|
severity: "Warning",
|
|
404
429
|
getMonitorStep: (args: PodmanAlertTemplateArgs): MonitorStep => {
|
|
@@ -411,6 +436,7 @@ const highProcessCountTemplate: PodmanAlertTemplate = {
|
|
|
411
436
|
metricAlias,
|
|
412
437
|
rollingTime: RollingTime.Past5Minutes,
|
|
413
438
|
aggregationType: MetricsAggregationType.Max,
|
|
439
|
+
groupByAttributeKey: "resource.container.name",
|
|
414
440
|
}),
|
|
415
441
|
offlineCriteriaInstance: buildPodmanOfflineCriteriaInstance({
|
|
416
442
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -440,7 +466,7 @@ const containerUptimeTemplate: PodmanAlertTemplate = {
|
|
|
440
466
|
id: "podman-container-down",
|
|
441
467
|
name: "Container Down (Low Uptime)",
|
|
442
468
|
description:
|
|
443
|
-
"Alert when a container's uptime drops to zero, indicating it has stopped or crashed.",
|
|
469
|
+
"Alert when a container's uptime drops to zero, indicating it has stopped or crashed. One alert per container.",
|
|
444
470
|
category: "Container",
|
|
445
471
|
severity: "Critical",
|
|
446
472
|
getMonitorStep: (args: PodmanAlertTemplateArgs): MonitorStep => {
|
|
@@ -453,6 +479,7 @@ const containerUptimeTemplate: PodmanAlertTemplate = {
|
|
|
453
479
|
metricAlias,
|
|
454
480
|
rollingTime: RollingTime.Past1Minute,
|
|
455
481
|
aggregationType: MetricsAggregationType.Min,
|
|
482
|
+
groupByAttributeKey: "resource.container.name",
|
|
456
483
|
}),
|
|
457
484
|
offlineCriteriaInstance: buildPodmanOfflineCriteriaInstance({
|
|
458
485
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -10,4 +10,18 @@ export default interface CdpNeighbor {
|
|
|
10
10
|
remoteDeviceId?: string | undefined;
|
|
11
11
|
remotePortId?: string | undefined;
|
|
12
12
|
remotePlatform?: string | undefined;
|
|
13
|
+
/*
|
|
14
|
+
* The address the neighbor advertises for itself (cdpCacheAddress, kept
|
|
15
|
+
* only when cdpCacheAddressType says it is an IP). Optional because the
|
|
16
|
+
* column is frequently empty and older payloads predate it entirely.
|
|
17
|
+
*
|
|
18
|
+
* Two things depend on it. It is a match key: a device we already manage
|
|
19
|
+
* BY ADDRESS — imported from a subnet sweep, so its hostname is an IP and
|
|
20
|
+
* its name is something else entirely — used to be drawn as a stranger
|
|
21
|
+
* because nothing the neighbor advertised looked like its name. And it is
|
|
22
|
+
* the one field that makes an unmanaged peer actionable: monitoring
|
|
23
|
+
* anything needs an address, and without this the map knows a device's
|
|
24
|
+
* make and model but not where it lives.
|
|
25
|
+
*/
|
|
26
|
+
remoteIpAddress?: string | undefined;
|
|
13
27
|
}
|