@oneuptime/common 14.0.3 → 14.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/Alert.ts +55 -0
- package/Models/DatabaseModels/DatabaseServer.ts +1650 -0
- package/Models/DatabaseModels/DatabaseServerEndpoint.ts +540 -0
- package/Models/DatabaseModels/DatabaseServerFeed.ts +625 -0
- package/Models/DatabaseModels/DatabaseServerLabelRule.ts +514 -0
- package/Models/DatabaseModels/DatabaseServerOwnerRule.ts +596 -0
- package/Models/DatabaseModels/DatabaseServerOwnerTeam.ts +491 -0
- package/Models/DatabaseModels/DatabaseServerOwnerUser.ts +490 -0
- package/Models/DatabaseModels/Incident.ts +55 -0
- package/Models/DatabaseModels/Index.ts +16 -0
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +26 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -0
- package/Models/DatabaseModels/TelemetryException.ts +2 -0
- package/Models/DatabaseModels/UserProjectSsoConsent.ts +146 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.ts +673 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.ts +51 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
- package/Server/Middleware/MultipartFormData.ts +1 -1
- package/Server/Middleware/TelemetryIngest.ts +15 -8
- package/Server/Services/AlertReminderRuleService.ts +100 -24
- package/Server/Services/DatabaseServerEndpointService.ts +895 -0
- package/Server/Services/DatabaseServerFeedService.ts +128 -0
- package/Server/Services/DatabaseServerLabelRuleEngineService.ts +340 -0
- package/Server/Services/DatabaseServerLabelRuleService.ts +14 -0
- package/Server/Services/DatabaseServerOwnerRuleEngineService.ts +425 -0
- package/Server/Services/DatabaseServerOwnerRuleService.ts +14 -0
- package/Server/Services/DatabaseServerOwnerTeamService.ts +180 -0
- package/Server/Services/DatabaseServerOwnerUserService.ts +173 -0
- package/Server/Services/DatabaseServerService.ts +4546 -0
- package/Server/Services/DatabaseService.ts +14 -8
- package/Server/Services/DockerResourceService.ts +43 -2
- package/Server/Services/IncidentReminderRuleService.ts +103 -23
- package/Server/Services/Index.ts +16 -0
- package/Server/Services/InventoryItemService.ts +113 -5
- package/Server/Services/IoTDeviceService.ts +145 -37
- package/Server/Services/MetricService.ts +1 -1
- package/Server/Services/OpenTelemetryIngestService.ts +19 -0
- package/Server/Services/PodmanResourceService.ts +43 -2
- package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +107 -23
- package/Server/Services/ServiceService.ts +1 -1
- package/Server/Services/TelemetryUsageBillingService.ts +29 -2
- package/Server/Services/UserProjectSsoConsentService.ts +74 -0
- package/Server/Services/UserService.ts +14 -1
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +18 -0
- package/Server/Types/Database/QueryHelper.ts +84 -2
- package/Server/Utils/AI/Toolbox/MetricTools.ts +13 -2
- package/Server/Utils/AI/Toolbox/ResourceTools.ts +81 -2
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +1 -1
- package/Server/Utils/Database/AffectedResourceRelations.ts +6 -0
- package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +33 -0
- package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +192 -9
- package/Server/Utils/Monitor/MonitorAlert.ts +28 -1
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +2264 -755
- package/Server/Utils/Monitor/MonitorIncident.ts +28 -1
- package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +268 -6
- package/Server/Utils/Monitor/MonitorResource.ts +47 -11
- package/Server/Utils/Monitor/MonitorResourceContext.ts +1 -0
- package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +239 -21
- package/Server/Utils/Monitor/PerSeriesResolutionRootCause.ts +43 -0
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +291 -0
- package/Server/Utils/Monitor/SeriesResourceLinker.ts +111 -12
- package/Server/Utils/Rules/RuleRun/RuleRunRegistry.ts +25 -0
- package/Server/Utils/StartServer.ts +26 -6
- package/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.ts +2 -0
- package/Server/Utils/Telemetry/DatabaseEndpointDiscovery.ts +688 -0
- package/Server/Utils/Telemetry/EntityRegistry.ts +5 -1
- package/Server/Utils/Telemetry/LogExceptionExtractor.ts +18 -1
- package/Server/Utils/Telemetry/ResourceEntityFilter.ts +175 -12
- package/Server/Utils/Telemetry/ResourceFacetResolver.ts +12 -0
- package/Server/Utils/Telemetry/ServiceDependencyDiscovery.ts +606 -36
- package/Server/Utils/Telemetry/Telemetry.ts +16 -0
- package/Server/Utils/Telemetry/TelemetryEntity.ts +22 -22
- package/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.ts +16 -10
- package/Tests/App/Accounts/SignedInRedirect.test.tsx +241 -0
- package/Tests/App/AdminDashboard/AdminHeaderSmallScreens.test.tsx +221 -4
- package/Tests/App/Dashboard/AIInsightsResourcePageContext.test.ts +42 -0
- package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +100 -0
- package/Tests/App/Dashboard/AffectedResourcesPicker.test.tsx +86 -0
- package/Tests/App/Dashboard/AffectedResourcesPickerHiddenTypes.test.tsx +2 -0
- package/Tests/App/Dashboard/AffectedResourcesSummaryStep.test.tsx +19 -0
- package/Tests/App/Dashboard/BreadcrumbCoverage.test.tsx +14 -0
- package/Tests/App/Dashboard/CorrelateFilterBuilder.test.tsx +26 -1
- package/Tests/App/Dashboard/DashboardAppSsoError.test.tsx +501 -0
- package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +64 -1
- package/Tests/App/Dashboard/DashboardHeaderSmallScreens.test.tsx +178 -18
- package/Tests/App/Dashboard/DashboardMasterPageSsoRedirect.test.tsx +444 -0
- package/Tests/App/Dashboard/DashboardNavBarForeignHiddenRule.test.tsx +573 -0
- package/Tests/App/Dashboard/DatabaseChartAxes.test.tsx +431 -0
- package/Tests/App/Dashboard/DatabaseContainerDetailBadge.test.tsx +249 -0
- package/Tests/App/Dashboard/DatabaseDashboardE2EFixes.test.ts +681 -0
- package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +1801 -0
- package/Tests/App/Dashboard/DatabaseFleetSummaryRefresh.test.tsx +280 -0
- package/Tests/App/Dashboard/DatabaseFormHelpers.test.tsx +321 -0
- package/Tests/App/Dashboard/DatabaseMetricMonitorLink.test.tsx +795 -0
- package/Tests/App/Dashboard/DatabaseOverviewHeader.test.tsx +580 -0
- package/Tests/App/Dashboard/DatabaseRecommendationsEngineMetrics.test.ts +270 -0
- package/Tests/App/Dashboard/DatabaseServerComponents.test.tsx +1486 -0
- package/Tests/App/Dashboard/DatabaseServerEngineMetricsFilter.test.ts +223 -0
- package/Tests/App/Dashboard/DatabaseServerPresentation.test.ts +435 -0
- package/Tests/App/Dashboard/DatabaseServerSummary.test.ts +186 -0
- package/Tests/App/Dashboard/DatabaseServerTelemetryQueries.test.ts +1553 -0
- package/Tests/App/Dashboard/DatabaseTableTruncation.test.tsx +326 -0
- package/Tests/App/Dashboard/DatabaseTelemetryScope.test.ts +512 -0
- package/Tests/App/Dashboard/DatabaseTelemetryTabs.test.tsx +774 -0
- package/Tests/App/Dashboard/DatabaseViewLayout.test.tsx +233 -0
- package/Tests/App/Dashboard/DatabaseWorkloadBadge.test.tsx +972 -0
- package/Tests/App/Dashboard/DiscoveryReviewInventoryRefresh.test.tsx +5 -0
- package/Tests/App/Dashboard/DiscoveryReviewUnnamedHostHint.test.tsx +1061 -0
- package/Tests/App/Dashboard/EventOverlayScope.test.ts +147 -0
- package/Tests/App/Dashboard/EventOverlayScopeHook.test.tsx +1 -0
- package/Tests/App/Dashboard/LogsResourceFacetChips.test.tsx +1 -0
- package/Tests/App/Dashboard/MetricsViewerDrillDown.test.tsx +310 -0
- package/Tests/App/Dashboard/MetricsViewerEntityScopedRows.test.tsx +495 -0
- package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +132 -1
- package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +5 -0
- package/Tests/App/Dashboard/NetworkTopologyExplorerSearch.test.tsx +1267 -0
- package/Tests/App/Dashboard/ProductOrientation.test.tsx +4 -3
- package/Tests/App/Dashboard/RecommendationsLoadedContext.test.tsx +349 -0
- package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +62 -0
- package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +8 -1
- package/Tests/App/Dashboard/ResourceFeedPagesFilterSort.test.tsx +14 -0
- package/Tests/App/Dashboard/ResourceOverviewTileTooltips.test.tsx +4 -1
- package/Tests/App/Dashboard/RumOverviewPage.test.tsx +127 -0
- package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +2 -0
- package/Tests/App/Dashboard/ServiceMapDatabaseLink.test.tsx +1085 -0
- package/Tests/App/Dashboard/SiteSearchBox.test.tsx +2110 -0
- package/Tests/App/Dashboard/TelemetryMetricsSignals.test.ts +168 -8
- package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +10 -0
- package/Tests/App/Dashboard/TracesResourceFacets.test.tsx +2 -1
- package/Tests/App/StatusPage/StatusPageHeaderForeignHiddenRule.test.tsx +284 -0
- package/Tests/ClassStrings.ts +178 -0
- package/Tests/Fixtures/MobilePasskeyUser.json +1 -2
- package/Tests/ForeignHiddenRuleGuard.ts +2152 -0
- package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +2250 -0
- package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +24 -5
- package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +4 -2
- package/Tests/RenderedMarkup.ts +518 -0
- package/Tests/ResponsiveVisibility.test.ts +490 -4
- package/Tests/ResponsiveVisibility.ts +505 -52
- package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +3 -0
- package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +541 -0
- package/Tests/Server/Infrastructure/Postgres/AddUserProjectSsoConsentMigration.test.ts +234 -0
- package/Tests/Server/Services/ContainerSnapshotUpsertPostgres.test.ts +319 -0
- package/Tests/Server/Services/CrossProjectRelationWriteGuard.test.ts +13 -0
- package/Tests/Server/Services/DatabaseServerEndpointService.test.ts +2033 -0
- package/Tests/Server/Services/DatabaseServerFeedAndOwnerServices.test.ts +529 -0
- package/Tests/Server/Services/DatabaseServerLifecycle.test.ts +3302 -0
- package/Tests/Server/Services/DatabaseServerRegistries.test.ts +603 -0
- package/Tests/Server/Services/DatabaseServerRuleEngines.test.ts +754 -0
- package/Tests/Server/Services/DatabaseServerService.test.ts +3558 -0
- package/Tests/Server/Services/DatabaseServerSqlPostgres.test.ts +2045 -0
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedPostgres.test.ts +362 -0
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedReply.test.ts +210 -0
- package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +18 -0
- package/Tests/Server/Services/IncidentAlertSloLinkSurvivesEdit.test.ts +2 -0
- package/Tests/Server/Services/IncomingCallPolicyEscalationRuleTarget.test.ts +225 -0
- package/Tests/Server/Services/InventoryItemDisplayName.test.ts +280 -2
- package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +8 -2
- package/Tests/Server/Services/IoTDeviceLatestMetricsPostgres.test.ts +689 -0
- package/Tests/Server/Services/IoTDeviceService.test.ts +379 -0
- package/Tests/Server/Services/LatestMetricsValuesShape.test.ts +360 -0
- package/Tests/Server/Services/LlmModelPriceService.test.ts +402 -0
- package/Tests/Server/Services/MetricServiceAggregate.test.ts +12 -0
- package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +7 -1
- package/Tests/Server/Services/OwnerRowUniqueness.test.ts +61 -9
- package/Tests/Server/Services/ReminderRuleLookupPostgres.test.ts +2250 -0
- package/Tests/Server/Services/ReminderRuleRefreshOpenSubjectsPaging.test.ts +653 -0
- package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +68 -20
- package/Tests/Server/Services/SavedViewDefaults.test.ts +325 -0
- package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +3 -3
- package/Tests/Server/Services/StatusPageCertificateService.test.ts +169 -0
- package/Tests/Server/Services/TeamComplianceSettingService.test.ts +191 -0
- package/Tests/Server/Services/TelemetryResourceFacetCounting.test.ts +9 -0
- package/Tests/Server/Services/UserProjectSsoConsentPostgres.test.ts +153 -0
- package/Tests/Server/Services/UserProjectSsoConsentService.test.ts +192 -0
- package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +71 -0
- package/Tests/Server/Services/UserSignupIdTakeoverPostgres.test.ts +238 -0
- package/Tests/Server/Services/WorkspaceNotificationSummaryHelpers.test.ts +592 -0
- package/Tests/Server/Types/Billing/PayAsYouGoMeteredAuthorization.test.ts +3 -0
- package/Tests/Server/Types/Database/EventOverlayScopePostgres.test.ts +1 -0
- package/Tests/Server/Types/Database/FeedEventTypeFilterQuery.test.ts +11 -0
- package/Tests/Server/Types/Database/Permissions/InfrastructureOwnershipScope.test.ts +8 -0
- package/Tests/Server/Types/Database/QueryHelperBooleanForCriteriaBackedRule.test.ts +1094 -0
- package/Tests/Server/Types/Database/QueryHelperSearchAllWords.test.ts +651 -0
- package/Tests/Server/Utils/AI/AlertWriteTools.test.ts +256 -0
- package/Tests/Server/Utils/AI/IncidentWriteTools.test.ts +482 -0
- package/Tests/Server/Utils/AI/ResourceTools.test.ts +134 -0
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteria.test.ts +54 -0
- package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +41 -0
- package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaAnomalyUnits.test.ts +279 -9
- package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaDisplayContext.test.ts +933 -0
- package/Tests/Server/Utils/Monitor/DatabaseMaintenanceSuppression.test.ts +582 -0
- package/Tests/Server/Utils/Monitor/DatabaseServerMonitorLinking.test.ts +753 -0
- package/Tests/Server/Utils/Monitor/MetricDecimalThreshold.test.ts +417 -0
- package/Tests/Server/Utils/Monitor/MonitorActionTimestamps.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/MonitorAlertCriteriaReferences.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +119 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +60 -25
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorAffectedResourceEdgeCases.test.ts +1815 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesAffectedResources.test.ts +1447 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesRatioEmail.test.ts +352 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformMetricUnits.test.ts +717 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformRawScan.test.ts +2125 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformSeriesAffectedResources.test.ts +1288 -0
- package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/MonitorIncidentCriteriaReferences.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/MonitorIncidentMemberRoleMembership.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +88 -0
- package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +205 -0
- package/Tests/Server/Utils/Monitor/MonitorResourceContext.test.ts +62 -0
- package/Tests/Server/Utils/Monitor/MonitorResourceDatabaseMaintenance.test.ts +803 -0
- package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +133 -3
- package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/PerSeriesRecoveryResolution.test.ts +472 -1
- package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1 -0
- package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +236 -2
- package/Tests/Server/Utils/SeriesResourceLabels.test.ts +70 -0
- package/Tests/Server/Utils/StartServerProtobufContentType.test.ts +54 -0
- package/Tests/Server/Utils/Telemetry/DatabaseEndpointDiscovery.test.ts +1895 -0
- package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +7 -0
- package/Tests/Server/Utils/Telemetry/LogExceptionExtractorSeverityGate.test.ts +90 -0
- package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +570 -0
- package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +97 -2
- package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +1337 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +295 -0
- package/Tests/Types/AI/AIResourceContext.test.ts +30 -0
- package/Tests/Types/BaseDatabase/AggregationType.test.ts +5 -1
- package/Tests/Types/Dashboard/KubernetesDashboardTemplate.test.ts +184 -0
- package/Tests/Types/Dashboard/KubernetesDashboardTemplates.test.ts +107 -0
- package/Tests/Types/DatabaseServer/DatabaseContainerClassifier.test.ts +3644 -0
- package/Tests/Types/DatabaseServer/DatabaseContainerCommand.test.ts +340 -0
- package/Tests/Types/DatabaseServer/DatabaseContainerCommandCorpus.ts +826 -0
- package/Tests/Types/DatabaseServer/DatabaseContainerCommandPostgres.test.ts +150 -0
- package/Tests/Types/DatabaseServer/DatabaseEndpoint.test.ts +2657 -0
- package/Tests/Types/DatabaseServer/DatabaseServerDiscoverySource.test.ts +64 -0
- package/Tests/Types/DatabaseServer/DatabaseServerEntityKeys.test.ts +952 -0
- package/Tests/Types/DatabaseServer/DatabaseServerMetricCatalog.test.ts +1161 -0
- package/Tests/Types/DatabaseServer/DatabaseSystem.test.ts +1514 -0
- package/Tests/Types/DatabaseServer/DatabaseTelemetryResolver.test.ts +1558 -0
- package/Tests/Types/Monitor/CephAlertTemplates.test.ts +255 -6
- package/Tests/Types/Monitor/DatabaseAlertTemplates.test.ts +2254 -0
- package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +292 -0
- package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +272 -0
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +253 -9
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +13 -5
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +4 -2
- package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +111 -2
- package/Tests/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.test.ts +61 -0
- package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +114 -0
- package/Tests/Types/Monitor/Utils/KubernetesAgentEmittedMetrics.ts +202 -0
- package/Tests/Types/NetworkDevice/DiscoveredHostNamingStatus.test.ts +401 -0
- package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +4 -1
- package/Tests/Types/Telemetry/ResourceFacetCatalog.test.ts +24 -2
- package/Tests/UI/Components/Card.test.tsx +93 -2
- package/Tests/UI/Components/FeedOptions.test.ts +6 -0
- package/Tests/UI/Components/FeedOptionsButton.test.tsx +8 -1
- package/Tests/UI/Components/ForeignHiddenRuleResilience.test.tsx +1147 -0
- package/Tests/UI/Components/HeaderRightRail.test.tsx +41 -1
- package/Tests/UI/Components/LogsEntityNames.test.ts +16 -1
- package/Tests/UI/Components/LogsFacetSidebarHiddenFacets.test.tsx +7 -3
- package/Tests/UI/Components/ResourceFacetConfigs.test.ts +2 -1
- package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +3 -3
- package/Tests/UI/Components/SrOnlyForeignRule.test.tsx +994 -0
- package/Tests/UI/Components/StatusPage/ResourceListSelection.test.tsx +34 -1
- package/Tests/UI/Components/TelemetryFacetSidebarHiddenFacets.test.tsx +4 -1
- package/Tests/UI/ForeignHiddenRuleGuard.test.ts +1951 -0
- package/Tests/UI/Rum/ChunkLoader.test.ts +76 -0
- package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +19 -1
- package/Tests/UI/Rum/ReplayRailDetail.test.tsx +53 -0
- package/Tests/UI/Rum/ReplaySignals.test.ts +54 -0
- package/Tests/UI/Rum/ReplayTabSwitcher.test.tsx +19 -1
- package/Tests/UI/TailwindPlayCdnForeignHiddenRule.test.ts +1005 -0
- package/Tests/UI/ThemeGroupHoverReveal.test.ts +847 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +70 -0
- package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +21 -0
- package/Tests/UI/Utils/ModelAPISsoRedirect.test.ts +127 -0
- package/Tests/UI/Utils/Navigation.test.ts +102 -0
- package/Tests/UI/Utils/Telemetry/TelemetryEntityNames.test.ts +23 -0
- package/Tests/Utils/Dashboard/KubernetesClusterCpuTileRepair.test.ts +370 -0
- package/Tests/Utils/LabelRuleImportExport.test.ts +5 -0
- package/Tests/Utils/MetricUnitUtil.test.ts +227 -2
- package/Tests/Utils/Monitor/MetricValueFormatter.test.ts +288 -2
- package/Tests/Utils/Monitor/PlatformResourceIdentityAndUnits.test.ts +1559 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.test.ts +2546 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveredHostUtil.test.ts +315 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +336 -1
- package/Tests/Utils/NetworkDiscovery/NetbiosNameUtil.test.ts +244 -0
- package/Tests/Utils/Rules/MonitorTypeRuleCriteria.test.ts +181 -0
- package/Tests/Utils/ValueFormatter.test.ts +50 -0
- package/Tests/tsconfig.json +16 -0
- package/Types/AI/AIResourceContext.ts +7 -0
- package/Types/BaseDatabase/AggregationType.ts +7 -0
- package/Types/Dashboard/DashboardTemplates.ts +22 -8
- package/Types/DatabaseServer/DatabaseConnectionSpan.ts +77 -0
- package/Types/DatabaseServer/DatabaseContainerClassifier.ts +2068 -0
- package/Types/DatabaseServer/DatabaseContainerCommand.ts +801 -0
- package/Types/DatabaseServer/DatabaseEndpoint.ts +1943 -0
- package/Types/DatabaseServer/DatabaseServerDiscoverySource.ts +68 -0
- package/Types/DatabaseServer/DatabaseServerMetricCatalog.ts +966 -0
- package/Types/DatabaseServer/DatabaseSystem.ts +2124 -0
- package/Types/DatabaseServer/DatabaseTelemetryResolver.ts +555 -0
- package/Types/Email/EmailTemplateType.ts +1 -0
- package/Types/Monitor/CephAlertTemplates.ts +18 -0
- package/Types/Monitor/DatabaseAlertTemplates.ts +2020 -0
- package/Types/Monitor/KubernetesAlertTemplates.ts +64 -24
- package/Types/Monitor/KubernetesMetricCatalog.ts +118 -19
- package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +14 -0
- package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +93 -10
- package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +109 -8
- package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +36 -7
- package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +43 -2
- package/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.ts +41 -6
- package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +26 -0
- package/Types/NetworkDevice/DiscoveredHostNamingStatus.ts +147 -0
- package/Types/Permission.ts +267 -0
- package/Types/Probe/ProbeApiIngestResponse.ts +8 -0
- package/Types/Rules/RuleCriteriaFieldRegistry.ts +10 -0
- package/Types/Rules/RuleRun.ts +12 -0
- package/Types/Rum/SessionReplayCustomEvents.ts +29 -3
- package/Types/Rum/WebVitals.ts +13 -0
- package/Types/Telemetry/EntityType.ts +23 -0
- package/Types/Telemetry/ResourceFacetCatalog.ts +14 -0
- package/Types/Telemetry/ServiceType.ts +8 -0
- package/UI/Components/Banner/Banner.tsx +1 -1
- package/UI/Components/Card/Card.tsx +1 -1
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +2 -2
- package/UI/Components/Charts/Line/LineChart.tsx +7 -0
- package/UI/Components/CommandPalette/CommandPalette.tsx +1 -1
- package/UI/Components/Date/StartAndEndDate.tsx +5 -5
- package/UI/Components/Diagram/HorizontalStepChain.tsx +1 -1
- package/UI/Components/Feed/FeedOptionsButton.tsx +1 -1
- package/UI/Components/Forms/BasicForm.tsx +1 -1
- package/UI/Components/Header/Header.tsx +1 -1
- package/UI/Components/Header/HeaderIconDropdownButton.tsx +1 -1
- package/UI/Components/HeaderAlert/HeaderAlert.tsx +1 -1
- package/UI/Components/Input/Input.tsx +11 -0
- package/UI/Components/LogsViewer/components/FacetValueRow.tsx +1 -1
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +1 -1
- package/UI/Components/Modal/ModalFooter.tsx +1 -1
- package/UI/Components/ModelDetail/CardModelDetail.tsx +2 -2
- package/UI/Components/ModelTable/BaseModelTable.tsx +4 -4
- package/UI/Components/Navbar/NavBar.tsx +9 -2
- package/UI/Components/Navbar/NavBarMenuModal.tsx +2 -2
- package/UI/Components/Page/Page.tsx +1 -1
- package/UI/Components/Pagination/Pagination.tsx +3 -3
- package/UI/Components/ProgressButtons/ProgressButtonItem.tsx +1 -1
- package/UI/Components/SideMenu/SideMenu.tsx +4 -1
- package/UI/Components/StatusPage/ResourceGroupNavigator.tsx +4 -2
- package/UI/Components/StatusPage/ResourceList.tsx +6 -6
- package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +1 -1
- package/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.tsx +1 -1
- package/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.tsx +1 -1
- package/UI/Components/Workflow/ComponentsModal.tsx +2 -2
- package/UI/Components/Workflow/StepTraceViewer.tsx +1 -1
- package/UI/Styles/Theme.css +8 -1
- package/UI/Utils/Navigation.ts +89 -42
- package/UI/Utils/Telemetry/TelemetryEntityNames.ts +7 -0
- package/UI/Utils/TelemetryService.ts +4 -3
- package/Utils/Dashboard/KubernetesClusterCpuTileRepair.ts +147 -0
- package/Utils/LabelRuleImportExport.ts +2 -0
- package/Utils/MetricUnitUtil.ts +103 -11
- package/Utils/Monitor/MetricValueFormatter.ts +66 -13
- package/Utils/Monitor/PlatformMetricUnitUtil.ts +215 -0
- package/Utils/Monitor/PlatformResourceIdentity.ts +514 -0
- package/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.ts +425 -0
- package/Utils/NetworkDiscovery/DiscoveredHostUtil.ts +32 -0
- package/Utils/NetworkDiscovery/NetbiosNameUtil.ts +73 -0
- package/Utils/Telemetry/DatabaseServerEntityKeys.ts +275 -0
- package/Utils/Telemetry/EntityKey.ts +176 -0
- package/Utils/ValueFormatter.ts +16 -0
- package/build/dist/Models/DatabaseModels/Alert.js +54 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DatabaseServer.js +1683 -0
- package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js +559 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js +648 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js +522 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js +603 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js +506 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js +505 -0
- package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Incident.js +54 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +16 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +54 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js +162 -0
- package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js +240 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/MultipartFormData.js +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +15 -8
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Services/AlertReminderRuleService.js +72 -23
- package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseServerEndpointService.js +694 -0
- package/build/dist/Server/Services/DatabaseServerEndpointService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerFeedService.js +110 -0
- package/build/dist/Server/Services/DatabaseServerFeedService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js +272 -0
- package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerLabelRuleService.js +13 -0
- package/build/dist/Server/Services/DatabaseServerLabelRuleService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js +340 -0
- package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js +13 -0
- package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js +160 -0
- package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerOwnerUserService.js +153 -0
- package/build/dist/Server/Services/DatabaseServerOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseServerService.js +3272 -0
- package/build/dist/Server/Services/DatabaseServerService.js.map +1 -0
- package/build/dist/Server/Services/DatabaseService.js +8 -4
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerResourceService.js +30 -3
- package/build/dist/Server/Services/DockerResourceService.js.map +1 -1
- package/build/dist/Server/Services/IncidentReminderRuleService.js +73 -23
- package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +16 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/InventoryItemService.js +88 -5
- package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
- package/build/dist/Server/Services/IoTDeviceService.js +111 -24
- package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
- package/build/dist/Server/Services/MetricService.js +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +24 -9
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/PodmanResourceService.js +30 -3
- package/build/dist/Server/Services/PodmanResourceService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +75 -23
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +1 -1
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +23 -2
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/UserProjectSsoConsentService.js +79 -0
- package/build/dist/Server/Services/UserProjectSsoConsentService.js.map +1 -0
- package/build/dist/Server/Services/UserService.js +13 -1
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +18 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +73 -2
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js +13 -2
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +58 -1
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +1 -1
- package/build/dist/Server/Utils/Database/AffectedResourceRelations.js +6 -0
- package/build/dist/Server/Utils/Database/AffectedResourceRelations.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +31 -0
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +135 -14
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +22 -6
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +1489 -524
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +22 -6
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +196 -6
- package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +36 -9
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +175 -17
- package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js +29 -0
- package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +211 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +82 -10
- package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
- package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js +25 -0
- package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +20 -4
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js +2 -0
- package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js +442 -0
- package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +5 -1
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +15 -1
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +121 -5
- package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +12 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js +438 -36
- package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +12 -0
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -18
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js +16 -10
- package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js.map +1 -1
- package/build/dist/Types/AI/AIResourceContext.js +7 -0
- package/build/dist/Types/AI/AIResourceContext.js.map +1 -1
- package/build/dist/Types/BaseDatabase/AggregationType.js +7 -0
- package/build/dist/Types/BaseDatabase/AggregationType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardTemplates.js +22 -8
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js +71 -0
- package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js.map +1 -0
- package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js +1462 -0
- package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js.map +1 -0
- package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js +691 -0
- package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js.map +1 -0
- package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js +1407 -0
- package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js.map +1 -0
- package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js +60 -0
- package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js.map +1 -0
- package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js +804 -0
- package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js.map +1 -0
- package/build/dist/Types/DatabaseServer/DatabaseSystem.js +1860 -0
- package/build/dist/Types/DatabaseServer/DatabaseSystem.js.map +1 -0
- package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js +406 -0
- package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js.map +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Monitor/CephAlertTemplates.js +18 -0
- package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/DatabaseAlertTemplates.js +1518 -0
- package/build/dist/Types/Monitor/DatabaseAlertTemplates.js.map +1 -0
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +57 -24
- package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
- package/build/dist/Types/Monitor/KubernetesMetricCatalog.js +104 -18
- package/build/dist/Types/Monitor/KubernetesMetricCatalog.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +80 -3
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +10 -3
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +29 -0
- package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
- package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js +21 -6
- package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js.map +1 -1
- package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +25 -0
- package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -1
- package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js +136 -0
- package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js.map +1 -0
- package/build/dist/Types/Permission.js +234 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +10 -0
- package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
- package/build/dist/Types/Rules/RuleRun.js +4 -0
- package/build/dist/Types/Rules/RuleRun.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplayCustomEvents.js.map +1 -1
- package/build/dist/Types/Rum/WebVitals.js +12 -0
- package/build/dist/Types/Rum/WebVitals.js.map +1 -1
- package/build/dist/Types/Telemetry/EntityType.js +23 -0
- package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
- package/build/dist/Types/Telemetry/ResourceFacetCatalog.js +14 -0
- package/build/dist/Types/Telemetry/ResourceFacetCatalog.js.map +1 -1
- package/build/dist/Types/Telemetry/ServiceType.js +8 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/UI/Components/Banner/Banner.js +1 -1
- package/build/dist/UI/Components/Banner/Banner.js.map +1 -1
- package/build/dist/UI/Components/Card/Card.js +1 -1
- package/build/dist/UI/Components/Card/Card.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/CommandPalette/CommandPalette.js +1 -1
- package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
- package/build/dist/UI/Components/Date/StartAndEndDate.js +5 -5
- package/build/dist/UI/Components/Date/StartAndEndDate.js.map +1 -1
- package/build/dist/UI/Components/Diagram/HorizontalStepChain.js +1 -1
- package/build/dist/UI/Components/Diagram/HorizontalStepChain.js.map +1 -1
- package/build/dist/UI/Components/Feed/FeedOptionsButton.js +1 -1
- package/build/dist/UI/Components/Feed/FeedOptionsButton.js.map +1 -1
- package/build/dist/UI/Components/Forms/BasicForm.js +1 -1
- package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
- package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +1 -1
- package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
- package/build/dist/UI/Components/Input/Input.js +1 -1
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +1 -1
- package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js +1 -1
- package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +2 -2
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +4 -4
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBar.js +9 -2
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +2 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Components/Page/Page.js +1 -1
- package/build/dist/UI/Components/Page/Page.js.map +1 -1
- package/build/dist/UI/Components/Pagination/Pagination.js +3 -3
- package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
- package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js +1 -1
- package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js +4 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js +3 -1
- package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js.map +1 -1
- package/build/dist/UI/Components/StatusPage/ResourceList.js +6 -6
- package/build/dist/UI/Components/StatusPage/ResourceList.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js +1 -1
- package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js.map +1 -1
- package/build/dist/UI/Components/Workflow/ComponentsModal.js +2 -2
- package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
- package/build/dist/UI/Components/Workflow/StepTraceViewer.js +1 -1
- package/build/dist/UI/Components/Workflow/StepTraceViewer.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +66 -33
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js +7 -0
- package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js.map +1 -1
- package/build/dist/UI/Utils/TelemetryService.js +3 -2
- package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
- package/build/dist/Utils/Dashboard/KubernetesClusterCpuTileRepair.js +110 -0
- package/build/dist/Utils/Dashboard/KubernetesClusterCpuTileRepair.js.map +1 -0
- package/build/dist/Utils/LabelRuleImportExport.js +2 -0
- package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
- package/build/dist/Utils/MetricUnitUtil.js +77 -13
- package/build/dist/Utils/MetricUnitUtil.js.map +1 -1
- package/build/dist/Utils/Monitor/MetricValueFormatter.js +58 -13
- package/build/dist/Utils/Monitor/MetricValueFormatter.js.map +1 -1
- package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js +161 -0
- package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/PlatformResourceIdentity.js +323 -0
- package/build/dist/Utils/Monitor/PlatformResourceIdentity.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js +270 -0
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js +23 -0
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js +61 -0
- package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js.map +1 -1
- package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js +178 -0
- package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js.map +1 -0
- package/build/dist/Utils/Telemetry/EntityKey.js +133 -0
- package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
- package/build/dist/Utils/ValueFormatter.js +15 -0
- package/build/dist/Utils/ValueFormatter.js.map +1 -1
- package/package.json +1 -1
- package/tsconfig.tests.json +7 -5
|
@@ -289,6 +289,14 @@ export function buildKubernetesRatioMonitorConfig(args: {
|
|
|
289
289
|
* the operand ALIASES, not the metric names.
|
|
290
290
|
*/
|
|
291
291
|
formula?: string | undefined;
|
|
292
|
+
/*
|
|
293
|
+
* The formula result's display unit. Defaults to "%", which is right for
|
|
294
|
+
* every ratio. A `formula` that is not a percentage — the deployment
|
|
295
|
+
* replica shortfall is `desired - available`, a pod count — passes ""
|
|
296
|
+
* so the alert reads "2", not "2%". Display only: the unit converter
|
|
297
|
+
* rescales query results, never a formula's.
|
|
298
|
+
*/
|
|
299
|
+
resultLegendUnit?: string | undefined;
|
|
292
300
|
}): MonitorStepKubernetesMonitor {
|
|
293
301
|
const aggregationType: MetricsAggregationType =
|
|
294
302
|
args.aggregationType || MetricsAggregationType.Sum;
|
|
@@ -333,7 +341,7 @@ export function buildKubernetesRatioMonitorConfig(args: {
|
|
|
333
341
|
title: args.resultLegend,
|
|
334
342
|
description: args.resultLegend,
|
|
335
343
|
legend: args.resultLegend,
|
|
336
|
-
legendUnit: "%",
|
|
344
|
+
legendUnit: args.resultLegendUnit ?? "%",
|
|
337
345
|
},
|
|
338
346
|
metricFormulaData: {
|
|
339
347
|
metricFormula:
|
|
@@ -700,41 +708,69 @@ const deploymentReplicaMismatchTemplate: KubernetesAlertTemplate = {
|
|
|
700
708
|
id: "k8s-deployment-replica-mismatch",
|
|
701
709
|
name: "Deployment Replica Mismatch",
|
|
702
710
|
description:
|
|
703
|
-
"Alert when available replicas
|
|
711
|
+
"Alert when a deployment has fewer available replicas than desired for fifteen minutes. Computed per deployment as k8s.deployment.desired - k8s.deployment.available, the two replica counts the agent's k8s_cluster receiver reports — it has no unavailable-replicas series.",
|
|
704
712
|
category: "Workload",
|
|
705
713
|
severity: "Warning",
|
|
706
714
|
getMonitorStep: (args: KubernetesAlertTemplateArgs): MonitorStep => {
|
|
707
|
-
const metricAlias: string = "
|
|
715
|
+
const metricAlias: string = "replica_shortfall";
|
|
708
716
|
|
|
709
717
|
return buildKubernetesMonitorStep({
|
|
710
|
-
|
|
718
|
+
/*
|
|
719
|
+
* A formula, because there is nothing to read directly. The
|
|
720
|
+
* k8s_cluster receiver the agent chart runs (collector 0.96.0, no
|
|
721
|
+
* metric renaming anywhere in the chart) reports a Deployment as
|
|
722
|
+
* `k8s.deployment.desired` (spec.replicas) and
|
|
723
|
+
* `k8s.deployment.available` (status.availableReplicas) — there is no
|
|
724
|
+
* `k8s.deployment.unavailable_replicas`, which is what this template
|
|
725
|
+
* used to query, so it could never fire.
|
|
726
|
+
*
|
|
727
|
+
* `desired - available` is also the better signal than the status
|
|
728
|
+
* field's unavailableReplicas: that one counts surge pods, so a
|
|
729
|
+
* healthy rollout whose old pods are all still serving reads as
|
|
730
|
+
* "unavailable"; this reads 0 (or below — surge makes available
|
|
731
|
+
* exceed desired) until the deployment is actually short of capacity.
|
|
732
|
+
*/
|
|
733
|
+
kubernetesMonitor: buildKubernetesRatioMonitorConfig({
|
|
711
734
|
clusterIdentifier: args.clusterIdentifier,
|
|
712
|
-
|
|
713
|
-
|
|
735
|
+
numeratorMetricName: "k8s.deployment.desired",
|
|
736
|
+
denominatorMetricName: "k8s.deployment.available",
|
|
737
|
+
/*
|
|
738
|
+
* Per deployment: a stuck rollout is a property of one Deployment
|
|
739
|
+
* object, and the incident copy already names the deployment. The
|
|
740
|
+
* k8s_cluster receiver stamps both keys on both metrics itself (not
|
|
741
|
+
* via best-effort enrichment), which is what the formula's
|
|
742
|
+
* fingerprint join needs.
|
|
743
|
+
*/
|
|
744
|
+
groupByAttributeKeys: [
|
|
745
|
+
"resource.k8s.namespace.name",
|
|
746
|
+
"resource.k8s.deployment.name",
|
|
747
|
+
],
|
|
748
|
+
numeratorAlias: "desired_replicas",
|
|
749
|
+
denominatorAlias: "available_replicas",
|
|
750
|
+
resultAlias: metricAlias,
|
|
751
|
+
resultLegend: "Deployment Replica Shortfall",
|
|
752
|
+
formula: "desired_replicas - available_replicas",
|
|
753
|
+
// A pod count, not a percentage.
|
|
754
|
+
resultLegendUnit: "",
|
|
714
755
|
resourceScope: KubernetesResourceScope.Workload,
|
|
715
756
|
/*
|
|
716
757
|
* 15 minutes, not 5. With the sustained (AllValues) default, the
|
|
717
758
|
* window IS the "how long has this been stuck" knob: every
|
|
718
|
-
* per-minute bucket in it must report
|
|
719
|
-
*
|
|
720
|
-
*
|
|
759
|
+
* per-minute bucket in it must report a shortfall. A rollout whose
|
|
760
|
+
* new pods are slow to pass readiness keeps available below desired
|
|
761
|
+
* for its duration, and a ten-replica deployment with
|
|
721
762
|
* maxUnavailable 25% and real readiness probes routinely takes
|
|
722
|
-
* longer than five minutes — so a five-minute window
|
|
763
|
+
* longer than five minutes — so a five-minute window would page
|
|
723
764
|
* once per deploy for a condition that is the deploy working.
|
|
724
765
|
*/
|
|
725
766
|
rollingTime: RollingTime.Past15Minutes,
|
|
726
|
-
aggregationType: MetricsAggregationType.Max,
|
|
727
767
|
/*
|
|
728
|
-
*
|
|
729
|
-
*
|
|
730
|
-
*
|
|
731
|
-
*
|
|
732
|
-
* rows to build the affected-resource breakdown).
|
|
768
|
+
* ONE series per deployment on both sides, from the same
|
|
769
|
+
* k8s_cluster scrape, so Avg is the per-minute count whatever the
|
|
770
|
+
* scrape rate. Sum would multiply the shortfall by the number of
|
|
771
|
+
* scrapes in the minute.
|
|
733
772
|
*/
|
|
734
|
-
|
|
735
|
-
"resource.k8s.namespace.name",
|
|
736
|
-
"resource.k8s.deployment.name",
|
|
737
|
-
],
|
|
773
|
+
aggregationType: MetricsAggregationType.Avg,
|
|
738
774
|
}),
|
|
739
775
|
offlineCriteriaInstance: buildOfflineCriteriaInstance({
|
|
740
776
|
offlineMonitorStatusId: args.offlineMonitorStatusId,
|
|
@@ -745,15 +781,19 @@ const deploymentReplicaMismatchTemplate: KubernetesAlertTemplate = {
|
|
|
745
781
|
filterType: FilterType.GreaterThan,
|
|
746
782
|
value: 0,
|
|
747
783
|
incidentTitle: `[K8s] Deployment Replica Mismatch - ${args.monitorName}`,
|
|
748
|
-
incidentDescription: `A Kubernetes deployment has
|
|
749
|
-
criteriaName: "Replica Mismatch -
|
|
784
|
+
incidentDescription: `A Kubernetes deployment has had fewer available replicas than it desires for fifteen minutes. This may indicate a failed rollout, image pull errors, insufficient resources, or pod crash loops. The affected namespace and deployment are named under "Affected resource" below, with the rollout-status command under "Start here".`,
|
|
785
|
+
criteriaName: "Replica Mismatch - Desired > Available for 15 minutes",
|
|
750
786
|
criteriaDescription:
|
|
751
|
-
"Triggers when a deployment
|
|
787
|
+
"Triggers when a deployment's desired replica count exceeds its available replica count in every sample of a fifteen-minute window — long enough that a normal rolling update has completed and the rollout is genuinely stuck.",
|
|
752
788
|
}),
|
|
753
789
|
onlineCriteriaInstance: buildOnlineCriteriaInstance({
|
|
754
790
|
onlineMonitorStatusId: args.onlineMonitorStatusId,
|
|
755
791
|
metricAlias,
|
|
756
|
-
|
|
792
|
+
/*
|
|
793
|
+
* `<= 0`, not `= 0`: a surge rollout makes available exceed
|
|
794
|
+
* desired, and a negative shortfall is healthy too.
|
|
795
|
+
*/
|
|
796
|
+
filterType: FilterType.LessThanOrEqualTo,
|
|
757
797
|
value: 0,
|
|
758
798
|
}),
|
|
759
799
|
});
|
|
@@ -6,7 +6,8 @@ export type KubernetesMetricCategory =
|
|
|
6
6
|
| "Node"
|
|
7
7
|
| "Container"
|
|
8
8
|
| "Workload"
|
|
9
|
-
| "HPA"
|
|
9
|
+
| "HPA"
|
|
10
|
+
| "ControlPlane";
|
|
10
11
|
|
|
11
12
|
export interface KubernetesMetricDefinition {
|
|
12
13
|
id: string;
|
|
@@ -63,6 +64,28 @@ const kubernetesMetricCatalog: Array<KubernetesMetricDefinition> = [
|
|
|
63
64
|
defaultResourceScope: KubernetesResourceScope.Pod,
|
|
64
65
|
unit: "bytes",
|
|
65
66
|
},
|
|
67
|
+
{
|
|
68
|
+
id: "pod-memory-limit-utilization",
|
|
69
|
+
friendlyName: "Pod Memory Limit Utilization",
|
|
70
|
+
description:
|
|
71
|
+
"The pod's memory usage divided by its memory limit, as a ratio (0 to 1) - 0.93 means 93% of the limit, and it is shown as a percentage. kubeletstats divides by the SUM of the pod's container limits, so a pod with a sidecar is measured against its whole budget, and emits nothing for a pod where any container has no memory limit. The kubelet's memory figure includes reclaimable page cache, so a value near 1 means approaching the limit, not necessarily about to be OOMKilled.",
|
|
72
|
+
metricName: "k8s.pod.memory_limit_utilization",
|
|
73
|
+
category: "Pod",
|
|
74
|
+
defaultAggregation: MetricsAggregationType.Max,
|
|
75
|
+
defaultResourceScope: KubernetesResourceScope.Pod,
|
|
76
|
+
unit: "ratio",
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: "pod-cpu-limit-utilization",
|
|
80
|
+
friendlyName: "Pod CPU Limit Utilization",
|
|
81
|
+
description:
|
|
82
|
+
"The pod's CPU usage divided by its CPU limit, as a ratio (0 to 1) - 0.93 means 93% of the limit, and it is shown as a percentage. kubeletstats divides by the SUM of the pod's container limits and emits nothing for a pod where any container has no CPU limit. Near 1 the kernel's CFS quota is throttling the pod: it gets slower rather than failing.",
|
|
83
|
+
metricName: "k8s.pod.cpu_limit_utilization",
|
|
84
|
+
category: "Pod",
|
|
85
|
+
defaultAggregation: MetricsAggregationType.Max,
|
|
86
|
+
defaultResourceScope: KubernetesResourceScope.Pod,
|
|
87
|
+
unit: "ratio",
|
|
88
|
+
},
|
|
66
89
|
{
|
|
67
90
|
id: "pod-network-io",
|
|
68
91
|
friendlyName: "Pod Network I/O (Cumulative, Both Directions)",
|
|
@@ -87,6 +110,17 @@ const kubernetesMetricCatalog: Array<KubernetesMetricDefinition> = [
|
|
|
87
110
|
defaultResourceScope: KubernetesResourceScope.Node,
|
|
88
111
|
unit: "cores",
|
|
89
112
|
},
|
|
113
|
+
{
|
|
114
|
+
id: "node-allocatable-cpu",
|
|
115
|
+
friendlyName: "Node Allocatable CPU",
|
|
116
|
+
description:
|
|
117
|
+
"CPU cores on the node that pods can be scheduled against: the node's capacity minus what the kubelet reserves for the operating system and Kubernetes daemons (system-reserved, kube-reserved). Reported by the k8s_cluster receiver. The scheduler never places pods whose CPU requests add up past it, so it is the right denominator for a node CPU percentage - usage or summed container requests divided by this.",
|
|
118
|
+
metricName: "k8s.node.allocatable_cpu",
|
|
119
|
+
category: "Node",
|
|
120
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
121
|
+
defaultResourceScope: KubernetesResourceScope.Node,
|
|
122
|
+
unit: "cores",
|
|
123
|
+
},
|
|
90
124
|
{
|
|
91
125
|
id: "node-memory-usage",
|
|
92
126
|
friendlyName: "Node Memory Usage",
|
|
@@ -107,6 +141,17 @@ const kubernetesMetricCatalog: Array<KubernetesMetricDefinition> = [
|
|
|
107
141
|
defaultResourceScope: KubernetesResourceScope.Node,
|
|
108
142
|
unit: "bytes",
|
|
109
143
|
},
|
|
144
|
+
{
|
|
145
|
+
id: "node-allocatable-memory",
|
|
146
|
+
friendlyName: "Node Allocatable Memory",
|
|
147
|
+
description:
|
|
148
|
+
"Memory in bytes on the node that pods can use: the node's capacity minus what the kubelet reserves for the operating system and Kubernetes daemons (system-reserved, kube-reserved) and the hard eviction threshold. Reported by the k8s_cluster receiver. The scheduler never places pods whose memory requests add up past it, so it - not the node's physical RAM - is the denominator for a meaningful node memory percentage.",
|
|
149
|
+
metricName: "k8s.node.allocatable_memory",
|
|
150
|
+
category: "Node",
|
|
151
|
+
defaultAggregation: MetricsAggregationType.Avg,
|
|
152
|
+
defaultResourceScope: KubernetesResourceScope.Node,
|
|
153
|
+
unit: "bytes",
|
|
154
|
+
},
|
|
110
155
|
{
|
|
111
156
|
id: "node-condition-ready",
|
|
112
157
|
friendlyName: "Node Ready Condition",
|
|
@@ -192,12 +237,22 @@ const kubernetesMetricCatalog: Array<KubernetesMetricDefinition> = [
|
|
|
192
237
|
unit: "count",
|
|
193
238
|
},
|
|
194
239
|
|
|
195
|
-
|
|
240
|
+
/*
|
|
241
|
+
* Workload Metrics
|
|
242
|
+
*
|
|
243
|
+
* These are the k8s_cluster receiver's names, which the agent chart
|
|
244
|
+
* forwards unrenamed: `k8s.deployment.available` / `.desired`, not the
|
|
245
|
+
* `*_replicas` spelling the Deployment status fields use. The receiver
|
|
246
|
+
* has no "unavailable" series at all — a replica shortfall is
|
|
247
|
+
* `desired - available` (see the k8s-deployment-replica-mismatch
|
|
248
|
+
* template).
|
|
249
|
+
*/
|
|
196
250
|
{
|
|
197
251
|
id: "deployment-available-replicas",
|
|
198
252
|
friendlyName: "Deployment Available Replicas",
|
|
199
|
-
description:
|
|
200
|
-
|
|
253
|
+
description:
|
|
254
|
+
"Number of pods targeted by the deployment that have been ready for at least minReadySeconds",
|
|
255
|
+
metricName: "k8s.deployment.available",
|
|
201
256
|
category: "Workload",
|
|
202
257
|
defaultAggregation: MetricsAggregationType.Min,
|
|
203
258
|
defaultResourceScope: KubernetesResourceScope.Workload,
|
|
@@ -206,18 +261,8 @@ const kubernetesMetricCatalog: Array<KubernetesMetricDefinition> = [
|
|
|
206
261
|
{
|
|
207
262
|
id: "deployment-desired-replicas",
|
|
208
263
|
friendlyName: "Deployment Desired Replicas",
|
|
209
|
-
description: "Number of desired replicas in a deployment",
|
|
210
|
-
metricName: "k8s.deployment.
|
|
211
|
-
category: "Workload",
|
|
212
|
-
defaultAggregation: MetricsAggregationType.Max,
|
|
213
|
-
defaultResourceScope: KubernetesResourceScope.Workload,
|
|
214
|
-
unit: "count",
|
|
215
|
-
},
|
|
216
|
-
{
|
|
217
|
-
id: "deployment-unavailable-replicas",
|
|
218
|
-
friendlyName: "Deployment Unavailable Replicas",
|
|
219
|
-
description: "Number of unavailable replicas in a deployment",
|
|
220
|
-
metricName: "k8s.deployment.unavailable_replicas",
|
|
264
|
+
description: "Number of desired replicas (spec.replicas) in a deployment",
|
|
265
|
+
metricName: "k8s.deployment.desired",
|
|
221
266
|
category: "Workload",
|
|
222
267
|
defaultAggregation: MetricsAggregationType.Max,
|
|
223
268
|
defaultResourceScope: KubernetesResourceScope.Workload,
|
|
@@ -247,8 +292,8 @@ const kubernetesMetricCatalog: Array<KubernetesMetricDefinition> = [
|
|
|
247
292
|
{
|
|
248
293
|
id: "statefulset-ready-replicas",
|
|
249
294
|
friendlyName: "StatefulSet Ready Replicas",
|
|
250
|
-
description: "Number of
|
|
251
|
-
metricName: "k8s.statefulset.
|
|
295
|
+
description: "Number of pods created by a StatefulSet that are Ready",
|
|
296
|
+
metricName: "k8s.statefulset.ready_pods",
|
|
252
297
|
category: "Workload",
|
|
253
298
|
defaultAggregation: MetricsAggregationType.Min,
|
|
254
299
|
defaultResourceScope: KubernetesResourceScope.Workload,
|
|
@@ -316,6 +361,49 @@ const kubernetesMetricCatalog: Array<KubernetesMetricDefinition> = [
|
|
|
316
361
|
defaultResourceScope: KubernetesResourceScope.Workload,
|
|
317
362
|
unit: "count",
|
|
318
363
|
},
|
|
364
|
+
|
|
365
|
+
/*
|
|
366
|
+
* Control Plane Metrics
|
|
367
|
+
*
|
|
368
|
+
* Prometheus metrics the agent scrapes from etcd, the API server and the
|
|
369
|
+
* scheduler, and only when its control-plane scrape is enabled
|
|
370
|
+
* (controlPlane.enabled). Managed clusters (EKS / GKE / AKS) do not
|
|
371
|
+
* expose these endpoints, so on those these metrics never report.
|
|
372
|
+
* Each is one cluster-wide signal, hence the Cluster scope.
|
|
373
|
+
*/
|
|
374
|
+
{
|
|
375
|
+
id: "etcd-has-leader",
|
|
376
|
+
friendlyName: "etcd Has Leader",
|
|
377
|
+
description:
|
|
378
|
+
"Whether the etcd member sees an elected leader (1 = has a leader, 0 = no leader). A flag, not a count: without a leader etcd cannot commit writes, so the API server cannot persist any change. Min over the window catches a single leaderless sample.",
|
|
379
|
+
metricName: "etcd_server_has_leader",
|
|
380
|
+
category: "ControlPlane",
|
|
381
|
+
defaultAggregation: MetricsAggregationType.Min,
|
|
382
|
+
defaultResourceScope: KubernetesResourceScope.Cluster,
|
|
383
|
+
unit: "",
|
|
384
|
+
},
|
|
385
|
+
{
|
|
386
|
+
id: "apiserver-inflight-requests",
|
|
387
|
+
friendlyName: "API Server In-Flight Requests",
|
|
388
|
+
description:
|
|
389
|
+
"Requests the Kubernetes API server is processing right now, one series per request_kind (mutating / readOnly). The server admits a bounded number at once (--max-requests-inflight, default 400; --max-mutating-requests-inflight, default 200) and rejects the rest with HTTP 429, so a value held at its limit means clients are being throttled.",
|
|
390
|
+
metricName: "apiserver_current_inflight_requests",
|
|
391
|
+
category: "ControlPlane",
|
|
392
|
+
defaultAggregation: MetricsAggregationType.Max,
|
|
393
|
+
defaultResourceScope: KubernetesResourceScope.Cluster,
|
|
394
|
+
unit: "count",
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
id: "scheduler-pending-pods",
|
|
398
|
+
friendlyName: "Scheduler Pending Pods",
|
|
399
|
+
description:
|
|
400
|
+
"Pods waiting in the kube-scheduler's queues, one series per queue (active, backoff, unschedulable, and gated on newer versions). A count that stays above zero means pods the scheduler cannot place - usually not enough allocatable CPU or memory, or taints, affinity or volume constraints no node satisfies.",
|
|
401
|
+
metricName: "scheduler_pending_pods",
|
|
402
|
+
category: "ControlPlane",
|
|
403
|
+
defaultAggregation: MetricsAggregationType.Max,
|
|
404
|
+
defaultResourceScope: KubernetesResourceScope.Cluster,
|
|
405
|
+
unit: "count",
|
|
406
|
+
},
|
|
319
407
|
];
|
|
320
408
|
|
|
321
409
|
export function getAllKubernetesMetrics(): Array<KubernetesMetricDefinition> {
|
|
@@ -347,5 +435,16 @@ export function getKubernetesMetricByMetricName(
|
|
|
347
435
|
}
|
|
348
436
|
|
|
349
437
|
export function getAllKubernetesMetricCategories(): Array<KubernetesMetricCategory> {
|
|
350
|
-
return ["Pod", "Node", "Container", "Workload", "HPA"];
|
|
438
|
+
return ["Pod", "Node", "Container", "Workload", "HPA", "ControlPlane"];
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* How a category is titled in a picker. The category values are
|
|
443
|
+
* identifiers ("ControlPlane" matches the alert templates' category), not
|
|
444
|
+
* prose.
|
|
445
|
+
*/
|
|
446
|
+
export function getKubernetesMetricCategoryLabel(
|
|
447
|
+
category: KubernetesMetricCategory,
|
|
448
|
+
): string {
|
|
449
|
+
return category === "ControlPlane" ? "Control Plane" : category;
|
|
351
450
|
}
|
|
@@ -78,6 +78,13 @@ export interface MetricAnomalyBaseline {
|
|
|
78
78
|
export default interface MetricCriteriaContext {
|
|
79
79
|
metricName: string;
|
|
80
80
|
alias: string;
|
|
81
|
+
/**
|
|
82
|
+
* The legend the user gave the query or formula the criteria targets
|
|
83
|
+
* ("Node Memory Utilization (%)"), when it is more than the bare alias.
|
|
84
|
+
* `metricName` is the formula EXPRESSION for a formula criteria, which is
|
|
85
|
+
* not something to title a list with.
|
|
86
|
+
*/
|
|
87
|
+
displayName?: string | undefined;
|
|
81
88
|
unit: string | null;
|
|
82
89
|
aggregationType: MetricsAggregationType | null;
|
|
83
90
|
isFormula: boolean;
|
|
@@ -114,6 +121,13 @@ export default interface MetricCriteriaContext {
|
|
|
114
121
|
* breached" without re-querying.
|
|
115
122
|
*/
|
|
116
123
|
totalSamplesInWindow?: number | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* The smallest and largest sample in the evaluation window, in the same
|
|
126
|
+
* display unit as `breachingSamples`. Lets a reader of the context name
|
|
127
|
+
* the series' worst value even when the criteria compared an aggregate
|
|
128
|
+
* (a Sum over the window can breach while no single sample does).
|
|
129
|
+
*/
|
|
130
|
+
sampleValueRange?: { min: number; max: number } | undefined;
|
|
117
131
|
/**
|
|
118
132
|
* For formulas: metadata for each variable the formula references,
|
|
119
133
|
* in the order they appear in the expression. Consumers use this to
|
|
@@ -6,6 +6,37 @@ import ObjectID from "../../ObjectID";
|
|
|
6
6
|
import Dictionary from "../../Dictionary";
|
|
7
7
|
import MetricSeriesResult from "./MetricSeriesResult";
|
|
8
8
|
|
|
9
|
+
/**
|
|
10
|
+
* Where a platform resource breakdown came from.
|
|
11
|
+
*
|
|
12
|
+
* The worker scans raw datapoints once PER QUERY to name the resources
|
|
13
|
+
* behind a breach. A monitor step can have several queries — every ratio
|
|
14
|
+
* template has two (used ÷ allocatable, used ÷ total) and a formula over
|
|
15
|
+
* them — and the breakdown used to be a single field that each query's
|
|
16
|
+
* scan overwrote, so the LAST query won. For "High Node Memory
|
|
17
|
+
* Utilization" that is the denominator, k8s.node.allocatable_memory: the
|
|
18
|
+
* email listed every node's allocatable bytes under a "> 85%" criteria.
|
|
19
|
+
*
|
|
20
|
+
* Tagging each scan with its query lets the evaluator use the one scan
|
|
21
|
+
* that measured what the matched criteria actually compared, and refuse
|
|
22
|
+
* to borrow a sibling query's numbers when the criteria targets a formula.
|
|
23
|
+
*/
|
|
24
|
+
export interface PlatformResourceBreakdownSource {
|
|
25
|
+
/**
|
|
26
|
+
* `metricAliasData.metricVariable` of the query this scan was taken for
|
|
27
|
+
* (e.g. "used_mem"). Absent on breakdowns built before it existed.
|
|
28
|
+
*/
|
|
29
|
+
metricAlias?: string | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The unit the scanned values are in: the platform catalog's unit when
|
|
32
|
+
* the catalog knows the metric, otherwise the unit the OpenTelemetry
|
|
33
|
+
* exporter declared for it (MetricType.unit, e.g. "By"). The raw scan
|
|
34
|
+
* never goes through MetricResultUnitConverter, so this is the metric's
|
|
35
|
+
* NATIVE unit, never a legendUnit. Absent when neither is known.
|
|
36
|
+
*/
|
|
37
|
+
metricUnit?: string | undefined;
|
|
38
|
+
}
|
|
39
|
+
|
|
9
40
|
export interface KubernetesAffectedResource {
|
|
10
41
|
podName?: string | undefined;
|
|
11
42
|
namespace?: string | undefined;
|
|
@@ -25,7 +56,8 @@ export interface KubernetesAffectedResource {
|
|
|
25
56
|
lowestMetricValue?: number | undefined;
|
|
26
57
|
}
|
|
27
58
|
|
|
28
|
-
export interface KubernetesResourceBreakdown
|
|
59
|
+
export interface KubernetesResourceBreakdown
|
|
60
|
+
extends PlatformResourceBreakdownSource {
|
|
29
61
|
clusterName: string;
|
|
30
62
|
metricName: string;
|
|
31
63
|
metricFriendlyName: string;
|
|
@@ -45,9 +77,16 @@ export interface ProxmoxAffectedResource {
|
|
|
45
77
|
/** `node` label — present only on the pve_*_info metadata series. */
|
|
46
78
|
nodeName?: string | undefined;
|
|
47
79
|
metricValue: number;
|
|
80
|
+
/**
|
|
81
|
+
* Lowest sample seen for this resource in the monitoring window — what a
|
|
82
|
+
* criteria that fires when the metric FALLS breached on. See
|
|
83
|
+
* KubernetesAffectedResource.lowestMetricValue.
|
|
84
|
+
*/
|
|
85
|
+
lowestMetricValue?: number | undefined;
|
|
48
86
|
}
|
|
49
87
|
|
|
50
|
-
export interface ProxmoxResourceBreakdown
|
|
88
|
+
export interface ProxmoxResourceBreakdown
|
|
89
|
+
extends PlatformResourceBreakdownSource {
|
|
51
90
|
clusterName: string;
|
|
52
91
|
metricName: string;
|
|
53
92
|
metricFriendlyName: string;
|
|
@@ -79,9 +118,16 @@ export interface VMwareAffectedResource {
|
|
|
79
118
|
/** `resource.vcenter.resource_pool.inventory_path` — the pool's unique path. */
|
|
80
119
|
resourcePoolPath?: string | undefined;
|
|
81
120
|
metricValue: number;
|
|
121
|
+
/**
|
|
122
|
+
* Lowest sample seen for this resource in the monitoring window — what a
|
|
123
|
+
* criteria that fires when the metric FALLS breached on. See
|
|
124
|
+
* KubernetesAffectedResource.lowestMetricValue.
|
|
125
|
+
*/
|
|
126
|
+
lowestMetricValue?: number | undefined;
|
|
82
127
|
}
|
|
83
128
|
|
|
84
|
-
export interface VMwareResourceBreakdown
|
|
129
|
+
export interface VMwareResourceBreakdown
|
|
130
|
+
extends PlatformResourceBreakdownSource {
|
|
85
131
|
/** The `vmware.vcenter.name` the agent stamps — one per vCenter. */
|
|
86
132
|
vcenterName: string;
|
|
87
133
|
metricName: string;
|
|
@@ -100,9 +146,15 @@ export interface CephAffectedResource {
|
|
|
100
146
|
/** `hostname` label — present only on the *_metadata series. */
|
|
101
147
|
hostname?: string | undefined;
|
|
102
148
|
metricValue: number;
|
|
149
|
+
/**
|
|
150
|
+
* Lowest sample seen for this resource in the monitoring window — what a
|
|
151
|
+
* criteria that fires when the metric FALLS breached on. See
|
|
152
|
+
* KubernetesAffectedResource.lowestMetricValue.
|
|
153
|
+
*/
|
|
154
|
+
lowestMetricValue?: number | undefined;
|
|
103
155
|
}
|
|
104
156
|
|
|
105
|
-
export interface CephResourceBreakdown {
|
|
157
|
+
export interface CephResourceBreakdown extends PlatformResourceBreakdownSource {
|
|
106
158
|
clusterName: string;
|
|
107
159
|
metricName: string;
|
|
108
160
|
metricFriendlyName: string;
|
|
@@ -120,9 +172,16 @@ export interface DockerSwarmAffectedResource {
|
|
|
120
172
|
/** `docker.swarm.service.name` datapoint label, when the agent stamps it. */
|
|
121
173
|
serviceName?: string | undefined;
|
|
122
174
|
metricValue: number;
|
|
175
|
+
/**
|
|
176
|
+
* Lowest sample seen for this resource in the monitoring window — what a
|
|
177
|
+
* criteria that fires when the metric FALLS breached on. See
|
|
178
|
+
* KubernetesAffectedResource.lowestMetricValue.
|
|
179
|
+
*/
|
|
180
|
+
lowestMetricValue?: number | undefined;
|
|
123
181
|
}
|
|
124
182
|
|
|
125
|
-
export interface DockerSwarmResourceBreakdown
|
|
183
|
+
export interface DockerSwarmResourceBreakdown
|
|
184
|
+
extends PlatformResourceBreakdownSource {
|
|
126
185
|
clusterName: string;
|
|
127
186
|
metricName: string;
|
|
128
187
|
metricFriendlyName: string;
|
|
@@ -142,6 +201,22 @@ export default interface MetricMonitorResponse {
|
|
|
142
201
|
vmwareResourceBreakdown?: VMwareResourceBreakdown | undefined;
|
|
143
202
|
cephResourceBreakdown?: CephResourceBreakdown | undefined;
|
|
144
203
|
dockerSwarmResourceBreakdown?: DockerSwarmResourceBreakdown | undefined;
|
|
204
|
+
/*
|
|
205
|
+
* One breakdown per query whose raw scan returned rows, in query order,
|
|
206
|
+
* each tagged with the query it was scanned for. These supersede the
|
|
207
|
+
* singular fields above, which the worker no longer writes: a single
|
|
208
|
+
* field could only ever hold one query's scan, and holding the last one
|
|
209
|
+
* put the denominator of every ratio template into the email. The
|
|
210
|
+
* evaluator still reads the singular field when the plural one is
|
|
211
|
+
* absent, so a payload built before this change renders as it did.
|
|
212
|
+
*/
|
|
213
|
+
kubernetesResourceBreakdowns?: Array<KubernetesResourceBreakdown> | undefined;
|
|
214
|
+
proxmoxResourceBreakdowns?: Array<ProxmoxResourceBreakdown> | undefined;
|
|
215
|
+
vmwareResourceBreakdowns?: Array<VMwareResourceBreakdown> | undefined;
|
|
216
|
+
cephResourceBreakdowns?: Array<CephResourceBreakdown> | undefined;
|
|
217
|
+
dockerSwarmResourceBreakdowns?:
|
|
218
|
+
| Array<DockerSwarmResourceBreakdown>
|
|
219
|
+
| undefined;
|
|
145
220
|
/**
|
|
146
221
|
* Per-series breakdown when any queryConfig sets groupByAttributeKeys.
|
|
147
222
|
* Each entry carries a fingerprint, the label values identifying that
|
|
@@ -152,11 +227,19 @@ export default interface MetricMonitorResponse {
|
|
|
152
227
|
*/
|
|
153
228
|
seriesBreakdown?: Array<MetricSeriesResult> | undefined;
|
|
154
229
|
/**
|
|
155
|
-
*
|
|
156
|
-
* Loaded once when the monitor data is fetched.
|
|
157
|
-
* evaluator falls back to this when the query alias has no
|
|
158
|
-
* `legendUnit
|
|
159
|
-
* dimensionless "1" used by ratio metrics) still works
|
|
230
|
+
* The unit each referenced metric's stored values are in, keyed by
|
|
231
|
+
* lowercased metric name. Loaded once when the monitor data is fetched.
|
|
232
|
+
* The criteria evaluator falls back to this when the query alias has no
|
|
233
|
+
* explicit `legendUnit`, so threshold unit conversion (e.g. % vs the
|
|
234
|
+
* dimensionless "1" used by ratio metrics) still works and the numbers
|
|
235
|
+
* in the notification carry a unit.
|
|
236
|
+
*
|
|
237
|
+
* For a generic Metrics monitor this is the OpenTelemetry-declared unit
|
|
238
|
+
* (MetricType.unit). For a platform monitor (Kubernetes, Docker, Host,
|
|
239
|
+
* Proxmox, ...) the platform's metric catalog wins over it — see
|
|
240
|
+
* PlatformMetricUnitUtil — because some receivers declare a unit that
|
|
241
|
+
* does not describe the values they send (docker_stats reports
|
|
242
|
+
* container.cpu.utilization as 0–100 under the unit "1").
|
|
160
243
|
*/
|
|
161
244
|
nativeUnitsByMetricName?: Dictionary<string> | undefined;
|
|
162
245
|
}
|