@oneuptime/common 14.0.3 → 14.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/DatabaseModels/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/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 +30 -1
- package/Server/Utils/AI/Toolbox/ResourceTools.ts +69 -1
- package/Server/Utils/Database/AffectedResourceRelations.ts +6 -0
- package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +188 -6
- package/Server/Utils/Monitor/MonitorAlert.ts +28 -1
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +2262 -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/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/ScheduledMaintenanceOverviewPage.test.tsx +2 -0
- package/Tests/App/Dashboard/ServiceMapDatabaseLink.test.tsx +1085 -0
- 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/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/StaticRuleCriteriaRuntimeCoverage.test.ts +3 -3
- 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/Utils/AI/ResourceTools.test.ts +134 -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/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 +1719 -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/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 +298 -0
- package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +271 -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 +181 -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/ReplayPlayerChrome.test.tsx +19 -1
- 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/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/ValueFormatter.test.ts +50 -0
- package/Tests/tsconfig.json +16 -0
- package/Types/AI/AIResourceContext.ts +7 -0
- package/Types/Dashboard/DashboardTemplates.ts +2 -1
- 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/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/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/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/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 +26 -1
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +46 -0
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +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/MetricMonitorCriteria.js +134 -13
- 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/Dashboard/DashboardTemplates.js +2 -1
- 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/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/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/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
|
@@ -0,0 +1,966 @@
|
|
|
1
|
+
import AggregationType from "../BaseDatabase/AggregationType";
|
|
2
|
+
import {
|
|
3
|
+
getDatabaseSystemMetricsEngine,
|
|
4
|
+
normalizeDatabaseSystem,
|
|
5
|
+
} from "./DatabaseSystem";
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* The curated engine metrics a Database's Overview charts, per engine, from
|
|
9
|
+
* the OpenTelemetry Collector contrib DB receivers. Only metrics that arrive
|
|
10
|
+
* on the Database Agent's default setup are listed: ones the receiver emits
|
|
11
|
+
* by default, plus the few optional ones the agent's config for that
|
|
12
|
+
* receiver switches on (`enabledByDefault: false` — a team running its own
|
|
13
|
+
* collector must switch them on too, and their descriptions say so). Every
|
|
14
|
+
* entry was seen arriving from collector-contrib 0.161.0 against a real
|
|
15
|
+
* server, not just read off the receiver's metadata: SQL Server's
|
|
16
|
+
* performance-counter metrics that only a Windows host reports, and Oracle's
|
|
17
|
+
* session / process limits a pluggable database never returns, are left
|
|
18
|
+
* out, because their tiles would stay empty forever on a default setup.
|
|
19
|
+
* Names are lowercase, exactly as ingest stores them.
|
|
20
|
+
*
|
|
21
|
+
* `kind` decides how a metric is drawn:
|
|
22
|
+
* - "gauge" — a value at a point in time (Gauge and non-monotonic
|
|
23
|
+
* UpDownCounter sums, plus `mysql.uptime`, a monotonic sum whose current
|
|
24
|
+
* value IS the answer). Its latest value is the tile.
|
|
25
|
+
* - "counter" — a cumulative monotonic sum (commits, commands processed).
|
|
26
|
+
* Its raw value only ever grows, so the dashboard charts it as a
|
|
27
|
+
* per-second rate computed client-side from consecutive buckets.
|
|
28
|
+
*
|
|
29
|
+
* Almost no metric here is ONE series. A receiver splits a metric by a
|
|
30
|
+
* datapoint attribute (`mysql.threads` by kind, `mongodb.connection.count`
|
|
31
|
+
* by type), reports it once per database (`postgresql.backends`), and a
|
|
32
|
+
* database can be reported by several agents (one per replica-set member,
|
|
33
|
+
* told apart by `server.address`). Pooling those series into one Avg or Max
|
|
34
|
+
* per bucket gives numbers that mean nothing — the average of the active,
|
|
35
|
+
* available and current connection counts, or the rate of whichever
|
|
36
|
+
* cumulative series happens to have the largest lifetime total. So every
|
|
37
|
+
* entry says how its series combine:
|
|
38
|
+
*
|
|
39
|
+
* - `attributes` pins ONE value of a breakdown the tile is about
|
|
40
|
+
* (connections of type "current", threads of kind "connected");
|
|
41
|
+
* - `seriesKeys` names the attribute keys whose values are separate
|
|
42
|
+
* PARTS of the answer (one per database, per buffer-pool page status);
|
|
43
|
+
* - `duplicatedAcross` names attribute keys the receiver repeats the SAME
|
|
44
|
+
* value across (mongodb reports its server-wide connection count once
|
|
45
|
+
* per database) — pooled, never added up;
|
|
46
|
+
* - `aggregation` combines the samples of one series inside a bucket, and
|
|
47
|
+
* `seriesCombine` then combines the series of that bucket into the one
|
|
48
|
+
* value a chart point and tile show: "sum" for parts of a whole, "max"
|
|
49
|
+
* for the worst one (lag, the largest database), "min" for the one
|
|
50
|
+
* closest to trouble (uptime, page life expectancy), "avg" for ratios.
|
|
51
|
+
*
|
|
52
|
+
* Gauges are grouped by `seriesKeys` plus the reporting instance
|
|
53
|
+
* (DATABASE_SERVER_INSTANCE_ATTRIBUTE_KEYS); a series missing from a bucket
|
|
54
|
+
* (a member that has not scraped yet in the one still filling) keeps its
|
|
55
|
+
* last value there for a couple of buckets rather than dropping out of the
|
|
56
|
+
* total. Counters are grouped by their WHOLE attribute set — every distinct
|
|
57
|
+
* series — and turned into a rate per series before the rates are summed; a
|
|
58
|
+
* cumulative value is never compared across series. See
|
|
59
|
+
* DatabaseServerTelemetryQueries in the dashboard.
|
|
60
|
+
*
|
|
61
|
+
* `seriesCombine` also decides the monitor "Create monitor" seeds from a
|
|
62
|
+
* gauge's chart (DatabaseMetricMonitorLink): an ungrouped monitor query
|
|
63
|
+
* folds every series into one number, which is the chart's only for "max"
|
|
64
|
+
* (its Max), "min" (its Min) and "avg"; a "sum" is grouped like the chart
|
|
65
|
+
* and alerts per series.
|
|
66
|
+
*/
|
|
67
|
+
|
|
68
|
+
export type DatabaseServerMetricKind = "gauge" | "counter";
|
|
69
|
+
|
|
70
|
+
export type DatabaseServerMetricSeriesCombine = "sum" | "max" | "min" | "avg";
|
|
71
|
+
|
|
72
|
+
export interface DatabaseServerMetricDefinition {
|
|
73
|
+
system: string;
|
|
74
|
+
metricName: string;
|
|
75
|
+
title: string;
|
|
76
|
+
description: string;
|
|
77
|
+
unit: string;
|
|
78
|
+
// How the samples of ONE series combine inside a time bucket.
|
|
79
|
+
aggregation: AggregationType;
|
|
80
|
+
kind: DatabaseServerMetricKind;
|
|
81
|
+
// How the series of a bucket combine into the value shown (see above).
|
|
82
|
+
seriesCombine: DatabaseServerMetricSeriesCombine;
|
|
83
|
+
// Datapoint-attribute filter pinning one value of a breakdown.
|
|
84
|
+
attributes?: Readonly<Record<string, string>> | undefined;
|
|
85
|
+
// Attribute keys whose values are separate parts of the answer.
|
|
86
|
+
seriesKeys?: ReadonlyArray<string> | undefined;
|
|
87
|
+
// Attribute keys the receiver repeats one value across (pooled).
|
|
88
|
+
duplicatedAcross?: ReadonlyArray<string> | undefined;
|
|
89
|
+
/*
|
|
90
|
+
* False for a metric the receiver only emits once switched on; the
|
|
91
|
+
* Database Agent's config for the receiver switches it on. Absent means
|
|
92
|
+
* the receiver emits it by default.
|
|
93
|
+
*/
|
|
94
|
+
enabledByDefault?: boolean | undefined;
|
|
95
|
+
/*
|
|
96
|
+
* Engines of the family the receiver never emits this metric for (the
|
|
97
|
+
* server has nothing to read it from), so their Overview leaves it out
|
|
98
|
+
* instead of charting a tile that stays empty.
|
|
99
|
+
*/
|
|
100
|
+
notEmittedFor?: ReadonlyArray<string> | undefined;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
/*
|
|
104
|
+
* The resource attributes that tell two reporting agents apart: the Database
|
|
105
|
+
* Agent stamps `server.address` / `server.port`, and per-member agents that
|
|
106
|
+
* share one DATABASE_SERVER_ID differ by exactly these (stored with the
|
|
107
|
+
* `resource.` prefix, like every resource attribute).
|
|
108
|
+
*/
|
|
109
|
+
export const DATABASE_SERVER_INSTANCE_ATTRIBUTE_KEYS: ReadonlyArray<string> = [
|
|
110
|
+
"resource.server.address",
|
|
111
|
+
"resource.server.port",
|
|
112
|
+
];
|
|
113
|
+
|
|
114
|
+
/*
|
|
115
|
+
* Appended to the description of every `enabledByDefault: false` entry, so
|
|
116
|
+
* the tile's (i) tells a team running its own collector what to switch on.
|
|
117
|
+
*/
|
|
118
|
+
const AGENT_ENABLED_NOTE: string =
|
|
119
|
+
" Off by default in the collector's receiver; the Database Agent switches it on, and your own collector has to enable it too.";
|
|
120
|
+
|
|
121
|
+
// postgresqlreceiver reports per-database metrics under either spelling.
|
|
122
|
+
const POSTGRESQL_DATABASE_KEYS: ReadonlyArray<string> = [
|
|
123
|
+
"db.namespace",
|
|
124
|
+
"resource.postgresql.database.name",
|
|
125
|
+
];
|
|
126
|
+
|
|
127
|
+
// elasticsearchreceiver's per-node resource attribute, as ingest stores it.
|
|
128
|
+
const ELASTICSEARCH_NODE_KEY: string = "resource.elasticsearch.node.name";
|
|
129
|
+
|
|
130
|
+
export const DATABASE_SERVER_METRICS: ReadonlyArray<DatabaseServerMetricDefinition> =
|
|
131
|
+
[
|
|
132
|
+
// PostgreSQL — postgresqlreceiver (all default-on).
|
|
133
|
+
{
|
|
134
|
+
system: "postgresql",
|
|
135
|
+
metricName: "postgresql.backends",
|
|
136
|
+
title: "Connections",
|
|
137
|
+
description:
|
|
138
|
+
"Open backends (client connections), added up across every database on the server.",
|
|
139
|
+
unit: "connections",
|
|
140
|
+
aggregation: AggregationType.Avg,
|
|
141
|
+
kind: "gauge",
|
|
142
|
+
seriesKeys: POSTGRESQL_DATABASE_KEYS,
|
|
143
|
+
seriesCombine: "sum",
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
system: "postgresql",
|
|
147
|
+
metricName: "postgresql.connection.max",
|
|
148
|
+
title: "Max connections",
|
|
149
|
+
description: "The configured max_connections limit.",
|
|
150
|
+
unit: "connections",
|
|
151
|
+
aggregation: AggregationType.Max,
|
|
152
|
+
kind: "gauge",
|
|
153
|
+
seriesCombine: "max",
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
system: "postgresql",
|
|
157
|
+
metricName: "postgresql.commits",
|
|
158
|
+
title: "Commits",
|
|
159
|
+
description:
|
|
160
|
+
"Committed transactions per second, added up across every database.",
|
|
161
|
+
unit: "commits",
|
|
162
|
+
aggregation: AggregationType.Max,
|
|
163
|
+
kind: "counter",
|
|
164
|
+
seriesCombine: "sum",
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
system: "postgresql",
|
|
168
|
+
metricName: "postgresql.rollbacks",
|
|
169
|
+
title: "Rollbacks",
|
|
170
|
+
description:
|
|
171
|
+
"Rolled-back transactions per second, added up across every database.",
|
|
172
|
+
unit: "rollbacks",
|
|
173
|
+
aggregation: AggregationType.Max,
|
|
174
|
+
kind: "counter",
|
|
175
|
+
seriesCombine: "sum",
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
system: "postgresql",
|
|
179
|
+
metricName: "postgresql.db_size",
|
|
180
|
+
title: "Database size",
|
|
181
|
+
description: "Disk space used by the largest database.",
|
|
182
|
+
unit: "bytes",
|
|
183
|
+
aggregation: AggregationType.Max,
|
|
184
|
+
kind: "gauge",
|
|
185
|
+
seriesKeys: POSTGRESQL_DATABASE_KEYS,
|
|
186
|
+
seriesCombine: "max",
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
system: "postgresql",
|
|
190
|
+
metricName: "postgresql.database.count",
|
|
191
|
+
title: "Databases",
|
|
192
|
+
description: "Number of user databases on the server.",
|
|
193
|
+
unit: "databases",
|
|
194
|
+
aggregation: AggregationType.Max,
|
|
195
|
+
kind: "gauge",
|
|
196
|
+
// Replicas report the same databases; they are not added up.
|
|
197
|
+
seriesCombine: "max",
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
system: "postgresql",
|
|
201
|
+
metricName: "postgresql.replication.data_delay",
|
|
202
|
+
title: "Replication lag",
|
|
203
|
+
description:
|
|
204
|
+
"Bytes of WAL a replica is behind the primary (worst replica).",
|
|
205
|
+
unit: "bytes",
|
|
206
|
+
aggregation: AggregationType.Max,
|
|
207
|
+
kind: "gauge",
|
|
208
|
+
seriesKeys: ["replication_client"],
|
|
209
|
+
seriesCombine: "max",
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
system: "postgresql",
|
|
213
|
+
metricName: "postgresql.wal.age",
|
|
214
|
+
title: "WAL age",
|
|
215
|
+
description: "Age of the oldest WAL file not yet archived or replayed.",
|
|
216
|
+
unit: "s",
|
|
217
|
+
aggregation: AggregationType.Max,
|
|
218
|
+
kind: "gauge",
|
|
219
|
+
seriesCombine: "max",
|
|
220
|
+
},
|
|
221
|
+
|
|
222
|
+
// MySQL / MariaDB — mysqlreceiver (default-on subset).
|
|
223
|
+
{
|
|
224
|
+
system: "mysql",
|
|
225
|
+
metricName: "mysql.threads",
|
|
226
|
+
title: "Connected threads",
|
|
227
|
+
description:
|
|
228
|
+
"Threads with an open client connection (Threads_connected).",
|
|
229
|
+
unit: "threads",
|
|
230
|
+
aggregation: AggregationType.Avg,
|
|
231
|
+
kind: "gauge",
|
|
232
|
+
attributes: { kind: "connected" },
|
|
233
|
+
seriesCombine: "sum",
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
system: "mysql",
|
|
237
|
+
metricName: "mysql.threads",
|
|
238
|
+
title: "Running threads",
|
|
239
|
+
description:
|
|
240
|
+
"Threads executing a statement right now (Threads_running) — the server's real concurrency.",
|
|
241
|
+
unit: "threads",
|
|
242
|
+
aggregation: AggregationType.Avg,
|
|
243
|
+
kind: "gauge",
|
|
244
|
+
attributes: { kind: "running" },
|
|
245
|
+
seriesCombine: "sum",
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
system: "mysql",
|
|
249
|
+
metricName: "mysql.buffer_pool.usage",
|
|
250
|
+
title: "Buffer pool usage",
|
|
251
|
+
description:
|
|
252
|
+
"Bytes held in the InnoDB buffer pool, clean and dirty pages together.",
|
|
253
|
+
unit: "bytes",
|
|
254
|
+
aggregation: AggregationType.Avg,
|
|
255
|
+
kind: "gauge",
|
|
256
|
+
seriesKeys: ["status"],
|
|
257
|
+
seriesCombine: "sum",
|
|
258
|
+
},
|
|
259
|
+
/*
|
|
260
|
+
* In pages, not mysql.buffer_pool.limit: MariaDB reports that "bytes"
|
|
261
|
+
* metric as its page count (a MariaDB 11.4 pool of 134217728 bytes
|
|
262
|
+
* arrives as 8112, its Innodb_buffer_pool_pages_total), so it read
|
|
263
|
+
* 7.9 KiB there. The page counts mean the same on both engines.
|
|
264
|
+
*/
|
|
265
|
+
{
|
|
266
|
+
system: "mysql",
|
|
267
|
+
metricName: "mysql.buffer_pool.pages",
|
|
268
|
+
title: "Buffer pool size",
|
|
269
|
+
description:
|
|
270
|
+
"The InnoDB buffer pool's size in pages (Innodb_buffer_pool_pages_total); a page is innodb_page_size, 16 KiB by default.",
|
|
271
|
+
unit: "pages",
|
|
272
|
+
aggregation: AggregationType.Max,
|
|
273
|
+
kind: "gauge",
|
|
274
|
+
attributes: { kind: "total" },
|
|
275
|
+
seriesCombine: "max",
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
system: "mysql",
|
|
279
|
+
metricName: "mysql.handlers",
|
|
280
|
+
title: "Handler operations",
|
|
281
|
+
description:
|
|
282
|
+
"Internal handler calls (reads, writes, commits, …) per second, every kind added up.",
|
|
283
|
+
unit: "operations",
|
|
284
|
+
aggregation: AggregationType.Max,
|
|
285
|
+
kind: "counter",
|
|
286
|
+
seriesCombine: "sum",
|
|
287
|
+
},
|
|
288
|
+
/*
|
|
289
|
+
* From the Innodb_rows_* status counters, which MariaDB does not have
|
|
290
|
+
* (`SHOW GLOBAL STATUS LIKE 'Innodb_rows%'` is empty on 11.4): the
|
|
291
|
+
* receiver sends nothing for it there, so MariaDB is left out. Its
|
|
292
|
+
* row reads and writes show in Handler operations.
|
|
293
|
+
*/
|
|
294
|
+
{
|
|
295
|
+
system: "mysql",
|
|
296
|
+
metricName: "mysql.row_operations",
|
|
297
|
+
title: "Row operations",
|
|
298
|
+
description:
|
|
299
|
+
"InnoDB rows read, inserted, updated and deleted per second, added up.",
|
|
300
|
+
unit: "rows",
|
|
301
|
+
aggregation: AggregationType.Max,
|
|
302
|
+
kind: "counter",
|
|
303
|
+
seriesCombine: "sum",
|
|
304
|
+
notEmittedFor: ["mariadb"],
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
system: "mysql",
|
|
308
|
+
metricName: "mysql.row_locks",
|
|
309
|
+
title: "Row lock waits",
|
|
310
|
+
description: "InnoDB row lock waits per second.",
|
|
311
|
+
unit: "waits",
|
|
312
|
+
aggregation: AggregationType.Max,
|
|
313
|
+
kind: "counter",
|
|
314
|
+
// The metric also carries kind "time", cumulative milliseconds.
|
|
315
|
+
attributes: { kind: "waits" },
|
|
316
|
+
seriesCombine: "sum",
|
|
317
|
+
},
|
|
318
|
+
{
|
|
319
|
+
system: "mysql",
|
|
320
|
+
metricName: "mysql.uptime",
|
|
321
|
+
title: "Uptime",
|
|
322
|
+
description:
|
|
323
|
+
"Seconds since the server started; a drop means it restarted.",
|
|
324
|
+
unit: "s",
|
|
325
|
+
aggregation: AggregationType.Max,
|
|
326
|
+
kind: "gauge",
|
|
327
|
+
// The most recently restarted member is the one to show.
|
|
328
|
+
seriesCombine: "min",
|
|
329
|
+
},
|
|
330
|
+
|
|
331
|
+
// Redis / Valkey — redisreceiver (all default-on).
|
|
332
|
+
{
|
|
333
|
+
system: "redis",
|
|
334
|
+
metricName: "redis.clients.connected",
|
|
335
|
+
title: "Connected clients",
|
|
336
|
+
description: "Number of client connections.",
|
|
337
|
+
unit: "clients",
|
|
338
|
+
aggregation: AggregationType.Avg,
|
|
339
|
+
kind: "gauge",
|
|
340
|
+
seriesCombine: "sum",
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
system: "redis",
|
|
344
|
+
metricName: "redis.memory.used",
|
|
345
|
+
title: "Memory used",
|
|
346
|
+
description: "Bytes allocated by Redis.",
|
|
347
|
+
unit: "bytes",
|
|
348
|
+
aggregation: AggregationType.Avg,
|
|
349
|
+
kind: "gauge",
|
|
350
|
+
seriesCombine: "sum",
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
system: "redis",
|
|
354
|
+
metricName: "redis.memory.fragmentation_ratio",
|
|
355
|
+
title: "Memory fragmentation",
|
|
356
|
+
description: "Ratio of resident memory to memory allocated by Redis.",
|
|
357
|
+
unit: "ratio",
|
|
358
|
+
aggregation: AggregationType.Avg,
|
|
359
|
+
kind: "gauge",
|
|
360
|
+
seriesCombine: "avg",
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
system: "redis",
|
|
364
|
+
metricName: "redis.commands",
|
|
365
|
+
title: "Commands per second",
|
|
366
|
+
description: "Instantaneous commands processed per second.",
|
|
367
|
+
unit: "ops/s",
|
|
368
|
+
aggregation: AggregationType.Avg,
|
|
369
|
+
kind: "gauge",
|
|
370
|
+
seriesCombine: "sum",
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
system: "redis",
|
|
374
|
+
metricName: "redis.commands.processed",
|
|
375
|
+
title: "Commands processed",
|
|
376
|
+
description: "Commands processed per second.",
|
|
377
|
+
unit: "commands",
|
|
378
|
+
aggregation: AggregationType.Max,
|
|
379
|
+
kind: "counter",
|
|
380
|
+
seriesCombine: "sum",
|
|
381
|
+
},
|
|
382
|
+
{
|
|
383
|
+
system: "redis",
|
|
384
|
+
metricName: "redis.keyspace.hits",
|
|
385
|
+
title: "Keyspace hits",
|
|
386
|
+
description: "Successful key lookups per second.",
|
|
387
|
+
unit: "hits",
|
|
388
|
+
aggregation: AggregationType.Max,
|
|
389
|
+
kind: "counter",
|
|
390
|
+
seriesCombine: "sum",
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
system: "redis",
|
|
394
|
+
metricName: "redis.keyspace.misses",
|
|
395
|
+
title: "Keyspace misses",
|
|
396
|
+
description: "Failed key lookups per second.",
|
|
397
|
+
unit: "misses",
|
|
398
|
+
aggregation: AggregationType.Max,
|
|
399
|
+
kind: "counter",
|
|
400
|
+
seriesCombine: "sum",
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
system: "redis",
|
|
404
|
+
metricName: "redis.keys.evicted",
|
|
405
|
+
title: "Evicted keys",
|
|
406
|
+
description: "Keys evicted because of the maxmemory limit, per second.",
|
|
407
|
+
unit: "keys",
|
|
408
|
+
aggregation: AggregationType.Max,
|
|
409
|
+
kind: "counter",
|
|
410
|
+
seriesCombine: "sum",
|
|
411
|
+
},
|
|
412
|
+
|
|
413
|
+
/*
|
|
414
|
+
* MongoDB — mongodbreceiver (all default-on). It reads serverStatus once
|
|
415
|
+
* per database, so connection.count and memory.usage repeat the same
|
|
416
|
+
* server-wide number for every database: pooled, never added up.
|
|
417
|
+
*/
|
|
418
|
+
{
|
|
419
|
+
system: "mongodb",
|
|
420
|
+
metricName: "mongodb.connection.count",
|
|
421
|
+
title: "Connections",
|
|
422
|
+
description: "Client connections currently open (type current).",
|
|
423
|
+
unit: "connections",
|
|
424
|
+
aggregation: AggregationType.Avg,
|
|
425
|
+
kind: "gauge",
|
|
426
|
+
attributes: { type: "current" },
|
|
427
|
+
duplicatedAcross: ["db.namespace", "resource.database"],
|
|
428
|
+
seriesCombine: "sum",
|
|
429
|
+
},
|
|
430
|
+
{
|
|
431
|
+
system: "mongodb",
|
|
432
|
+
metricName: "mongodb.memory.usage",
|
|
433
|
+
title: "Resident memory",
|
|
434
|
+
description: "Resident memory used by mongod (type resident).",
|
|
435
|
+
unit: "bytes",
|
|
436
|
+
aggregation: AggregationType.Avg,
|
|
437
|
+
kind: "gauge",
|
|
438
|
+
attributes: { type: "resident" },
|
|
439
|
+
duplicatedAcross: ["db.namespace", "resource.database"],
|
|
440
|
+
seriesCombine: "sum",
|
|
441
|
+
},
|
|
442
|
+
{
|
|
443
|
+
system: "mongodb",
|
|
444
|
+
metricName: "mongodb.data.size",
|
|
445
|
+
title: "Data size",
|
|
446
|
+
description: "Size of the data stored (largest database).",
|
|
447
|
+
unit: "bytes",
|
|
448
|
+
aggregation: AggregationType.Max,
|
|
449
|
+
kind: "gauge",
|
|
450
|
+
seriesKeys: ["db.namespace", "resource.database"],
|
|
451
|
+
seriesCombine: "max",
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
system: "mongodb",
|
|
455
|
+
metricName: "mongodb.cursor.count",
|
|
456
|
+
title: "Open cursors",
|
|
457
|
+
description: "Number of open cursors.",
|
|
458
|
+
unit: "cursors",
|
|
459
|
+
aggregation: AggregationType.Avg,
|
|
460
|
+
kind: "gauge",
|
|
461
|
+
seriesCombine: "sum",
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
system: "mongodb",
|
|
465
|
+
metricName: "mongodb.operation.count",
|
|
466
|
+
title: "Operations",
|
|
467
|
+
description:
|
|
468
|
+
"Operations (insert, query, update, …) per second, every type added up.",
|
|
469
|
+
unit: "operations",
|
|
470
|
+
aggregation: AggregationType.Max,
|
|
471
|
+
kind: "counter",
|
|
472
|
+
seriesCombine: "sum",
|
|
473
|
+
},
|
|
474
|
+
{
|
|
475
|
+
system: "mongodb",
|
|
476
|
+
metricName: "mongodb.operation.time",
|
|
477
|
+
title: "Operation time",
|
|
478
|
+
description:
|
|
479
|
+
"Time spent executing operations, per second, every type added up.",
|
|
480
|
+
unit: "ms",
|
|
481
|
+
aggregation: AggregationType.Max,
|
|
482
|
+
kind: "counter",
|
|
483
|
+
seriesCombine: "sum",
|
|
484
|
+
},
|
|
485
|
+
{
|
|
486
|
+
system: "mongodb",
|
|
487
|
+
metricName: "mongodb.cache.operations",
|
|
488
|
+
title: "Cache operations",
|
|
489
|
+
description: "WiredTiger cache hits and misses per second, added up.",
|
|
490
|
+
unit: "operations",
|
|
491
|
+
aggregation: AggregationType.Max,
|
|
492
|
+
kind: "counter",
|
|
493
|
+
seriesCombine: "sum",
|
|
494
|
+
},
|
|
495
|
+
|
|
496
|
+
/*
|
|
497
|
+
* SQL Server — sqlserverreceiver. The *.rate metrics are
|
|
498
|
+
* receiver-computed per-second gauges, not counters. Connected directly
|
|
499
|
+
* (the Database Agent's setup, and the only one off Windows) the
|
|
500
|
+
* receiver reads sys.dm_os_performance_counters, which has no
|
|
501
|
+
* sqlserver.transaction.rate or sqlserver.transaction_log.usage — those
|
|
502
|
+
* come from Windows performance counters only — so compilations,
|
|
503
|
+
* deadlocks and blocked processes stand in for them.
|
|
504
|
+
*/
|
|
505
|
+
{
|
|
506
|
+
system: "microsoft.sql_server",
|
|
507
|
+
metricName: "sqlserver.user.connection.count",
|
|
508
|
+
title: "User connections",
|
|
509
|
+
description: "Number of users connected to the server.",
|
|
510
|
+
unit: "connections",
|
|
511
|
+
aggregation: AggregationType.Avg,
|
|
512
|
+
kind: "gauge",
|
|
513
|
+
seriesCombine: "sum",
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
system: "microsoft.sql_server",
|
|
517
|
+
metricName: "sqlserver.batch.request.rate",
|
|
518
|
+
title: "Batch requests",
|
|
519
|
+
description:
|
|
520
|
+
"Transact-SQL batches received per second. Over the agent's direct connection SQL Server reports a running total since it started, so the chart shows the per-second rate computed from it.",
|
|
521
|
+
unit: "requests",
|
|
522
|
+
aggregation: AggregationType.Max,
|
|
523
|
+
kind: "counter",
|
|
524
|
+
seriesCombine: "sum",
|
|
525
|
+
},
|
|
526
|
+
{
|
|
527
|
+
system: "microsoft.sql_server",
|
|
528
|
+
metricName: "sqlserver.batch.sql_compilation.rate",
|
|
529
|
+
title: "SQL compilations",
|
|
530
|
+
description:
|
|
531
|
+
"SQL compilations per second. Many compilations next to few batch requests means query plans are not being reused. Over the agent's direct connection SQL Server reports a running total since it started, so the chart shows the per-second rate computed from it.",
|
|
532
|
+
unit: "compilations",
|
|
533
|
+
aggregation: AggregationType.Max,
|
|
534
|
+
kind: "counter",
|
|
535
|
+
seriesCombine: "sum",
|
|
536
|
+
},
|
|
537
|
+
{
|
|
538
|
+
system: "microsoft.sql_server",
|
|
539
|
+
metricName: "sqlserver.page.buffer_cache.hit_ratio",
|
|
540
|
+
title: "Buffer cache hit ratio",
|
|
541
|
+
description: "Percentage of pages found in the buffer cache.",
|
|
542
|
+
unit: "%",
|
|
543
|
+
aggregation: AggregationType.Avg,
|
|
544
|
+
kind: "gauge",
|
|
545
|
+
seriesCombine: "avg",
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
system: "microsoft.sql_server",
|
|
549
|
+
metricName: "sqlserver.page.life_expectancy",
|
|
550
|
+
title: "Page life expectancy",
|
|
551
|
+
description:
|
|
552
|
+
"Seconds a page stays in the buffer pool (low = pressure); the lowest buffer node or manager.",
|
|
553
|
+
unit: "s",
|
|
554
|
+
aggregation: AggregationType.Avg,
|
|
555
|
+
kind: "gauge",
|
|
556
|
+
seriesKeys: ["performance_counter.object_name"],
|
|
557
|
+
seriesCombine: "min",
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
system: "microsoft.sql_server",
|
|
561
|
+
metricName: "sqlserver.lock.wait.rate",
|
|
562
|
+
title: "Lock waits",
|
|
563
|
+
description:
|
|
564
|
+
"Lock requests per second that had to wait. Over the agent's direct connection SQL Server reports a running total since it started, so the chart shows the per-second rate computed from it.",
|
|
565
|
+
unit: "requests",
|
|
566
|
+
aggregation: AggregationType.Max,
|
|
567
|
+
kind: "counter",
|
|
568
|
+
seriesCombine: "sum",
|
|
569
|
+
},
|
|
570
|
+
{
|
|
571
|
+
system: "microsoft.sql_server",
|
|
572
|
+
metricName: "sqlserver.deadlock.rate",
|
|
573
|
+
title: "Deadlocks",
|
|
574
|
+
description: `Deadlocks per second. Over the agent's direct connection SQL Server reports a running total since it started, so the chart shows the per-second rate computed from it.${AGENT_ENABLED_NOTE}`,
|
|
575
|
+
unit: "deadlocks",
|
|
576
|
+
aggregation: AggregationType.Max,
|
|
577
|
+
kind: "counter",
|
|
578
|
+
seriesCombine: "sum",
|
|
579
|
+
enabledByDefault: false,
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
system: "microsoft.sql_server",
|
|
583
|
+
metricName: "sqlserver.processes.blocked",
|
|
584
|
+
title: "Blocked processes",
|
|
585
|
+
description: `Sessions waiting on a lock another session holds (the peak in each interval).${AGENT_ENABLED_NOTE}`,
|
|
586
|
+
unit: "processes",
|
|
587
|
+
aggregation: AggregationType.Max,
|
|
588
|
+
kind: "gauge",
|
|
589
|
+
seriesCombine: "sum",
|
|
590
|
+
enabledByDefault: false,
|
|
591
|
+
},
|
|
592
|
+
|
|
593
|
+
/*
|
|
594
|
+
* Oracle — oracledbreceiver. A connection to a pluggable database
|
|
595
|
+
* (FREEPDB1, ORCLPDB1: the usual setup) never returns
|
|
596
|
+
* oracledb.sessions.limit or oracledb.processes.usage, so the Overview
|
|
597
|
+
* reads DB time, the SGA and tablespace fullness instead — all
|
|
598
|
+
* off-by-default metrics the Database Agent switches on.
|
|
599
|
+
*/
|
|
600
|
+
{
|
|
601
|
+
system: "oracle.db",
|
|
602
|
+
metricName: "oracledb.sessions.usage",
|
|
603
|
+
title: "Sessions",
|
|
604
|
+
description:
|
|
605
|
+
"Sessions in use, every type, status and pluggable database added up.",
|
|
606
|
+
unit: "sessions",
|
|
607
|
+
aggregation: AggregationType.Avg,
|
|
608
|
+
kind: "gauge",
|
|
609
|
+
seriesKeys: ["session_type", "session_status", "oracle.db.pdb"],
|
|
610
|
+
seriesCombine: "sum",
|
|
611
|
+
},
|
|
612
|
+
{
|
|
613
|
+
system: "oracle.db",
|
|
614
|
+
metricName: "oracledb.db.time",
|
|
615
|
+
title: "DB time",
|
|
616
|
+
description: `Seconds user sessions spent in database calls, per second: the average number of active sessions.${AGENT_ENABLED_NOTE}`,
|
|
617
|
+
unit: "s",
|
|
618
|
+
aggregation: AggregationType.Max,
|
|
619
|
+
kind: "counter",
|
|
620
|
+
// Background processes' time is not the load users put on it.
|
|
621
|
+
attributes: { "oracledb.session.type": "foreground" },
|
|
622
|
+
seriesCombine: "sum",
|
|
623
|
+
enabledByDefault: false,
|
|
624
|
+
},
|
|
625
|
+
{
|
|
626
|
+
system: "oracle.db",
|
|
627
|
+
metricName: "oracledb.sga.usage",
|
|
628
|
+
title: "SGA in use",
|
|
629
|
+
description: `Memory in the System Global Area: the buffer cache, shared pool and every other component added up.${AGENT_ENABLED_NOTE}`,
|
|
630
|
+
unit: "bytes",
|
|
631
|
+
aggregation: AggregationType.Avg,
|
|
632
|
+
kind: "gauge",
|
|
633
|
+
seriesKeys: ["oracledb.sga.component.name"],
|
|
634
|
+
seriesCombine: "sum",
|
|
635
|
+
enabledByDefault: false,
|
|
636
|
+
},
|
|
637
|
+
{
|
|
638
|
+
system: "oracle.db",
|
|
639
|
+
metricName: "oracledb.tablespace.utilization",
|
|
640
|
+
title: "Fullest tablespace",
|
|
641
|
+
description: `How full the fullest tablespace is.${AGENT_ENABLED_NOTE}`,
|
|
642
|
+
unit: "fraction",
|
|
643
|
+
aggregation: AggregationType.Max,
|
|
644
|
+
kind: "gauge",
|
|
645
|
+
seriesKeys: ["tablespace_name", "oracle.db.pdb"],
|
|
646
|
+
seriesCombine: "max",
|
|
647
|
+
enabledByDefault: false,
|
|
648
|
+
},
|
|
649
|
+
{
|
|
650
|
+
system: "oracle.db",
|
|
651
|
+
metricName: "oracledb.tablespace_size.usage",
|
|
652
|
+
title: "Largest tablespace",
|
|
653
|
+
description: "Bytes used in the largest tablespace.",
|
|
654
|
+
unit: "bytes",
|
|
655
|
+
aggregation: AggregationType.Max,
|
|
656
|
+
kind: "gauge",
|
|
657
|
+
seriesKeys: ["tablespace_name", "oracle.db.pdb"],
|
|
658
|
+
seriesCombine: "max",
|
|
659
|
+
},
|
|
660
|
+
{
|
|
661
|
+
system: "oracle.db",
|
|
662
|
+
metricName: "oracledb.executions",
|
|
663
|
+
title: "Executions",
|
|
664
|
+
description:
|
|
665
|
+
"SQL statements executed per second, every pluggable database added up.",
|
|
666
|
+
unit: "executions",
|
|
667
|
+
aggregation: AggregationType.Max,
|
|
668
|
+
kind: "counter",
|
|
669
|
+
seriesCombine: "sum",
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
system: "oracle.db",
|
|
673
|
+
metricName: "oracledb.user_commits",
|
|
674
|
+
title: "Commits",
|
|
675
|
+
description:
|
|
676
|
+
"User commits per second, every pluggable database added up.",
|
|
677
|
+
unit: "commits",
|
|
678
|
+
aggregation: AggregationType.Max,
|
|
679
|
+
kind: "counter",
|
|
680
|
+
seriesCombine: "sum",
|
|
681
|
+
},
|
|
682
|
+
{
|
|
683
|
+
system: "oracle.db",
|
|
684
|
+
metricName: "oracledb.physical_reads",
|
|
685
|
+
title: "Physical reads",
|
|
686
|
+
description:
|
|
687
|
+
"Data blocks read from disk per second, every pluggable database added up.",
|
|
688
|
+
unit: "reads",
|
|
689
|
+
aggregation: AggregationType.Max,
|
|
690
|
+
kind: "counter",
|
|
691
|
+
seriesCombine: "sum",
|
|
692
|
+
},
|
|
693
|
+
|
|
694
|
+
/*
|
|
695
|
+
* Elasticsearch / OpenSearch — elasticsearchreceiver. Cluster-level
|
|
696
|
+
* metrics arrive once per scrape; node-level ones once per node, told
|
|
697
|
+
* apart by the `elasticsearch.node.name` resource attribute. The node
|
|
698
|
+
* JVM's `jvm.*` metrics ride in the same batches under their own
|
|
699
|
+
* prefix.
|
|
700
|
+
*/
|
|
701
|
+
{
|
|
702
|
+
system: "elasticsearch",
|
|
703
|
+
metricName: "elasticsearch.cluster.health",
|
|
704
|
+
title: "Cluster green",
|
|
705
|
+
description:
|
|
706
|
+
"Share of the interval the cluster health was green. Below 100% it went yellow (replica shards unassigned) or red (primary shards unassigned, some data unavailable).",
|
|
707
|
+
unit: "fraction",
|
|
708
|
+
// A 0/1 series per status: its average is the share of scrapes.
|
|
709
|
+
aggregation: AggregationType.Avg,
|
|
710
|
+
kind: "gauge",
|
|
711
|
+
attributes: { status: "green" },
|
|
712
|
+
seriesCombine: "min",
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
system: "elasticsearch",
|
|
716
|
+
metricName: "elasticsearch.cluster.nodes",
|
|
717
|
+
title: "Nodes",
|
|
718
|
+
description:
|
|
719
|
+
"Nodes in the cluster; the lowest count in each interval, so a node that dropped out shows.",
|
|
720
|
+
unit: "nodes",
|
|
721
|
+
aggregation: AggregationType.Min,
|
|
722
|
+
kind: "gauge",
|
|
723
|
+
seriesCombine: "min",
|
|
724
|
+
},
|
|
725
|
+
{
|
|
726
|
+
system: "elasticsearch",
|
|
727
|
+
metricName: "elasticsearch.cluster.shards",
|
|
728
|
+
title: "Unassigned shards",
|
|
729
|
+
description:
|
|
730
|
+
"Shards no node holds: replicas make the cluster yellow, primaries red.",
|
|
731
|
+
unit: "shards",
|
|
732
|
+
aggregation: AggregationType.Max,
|
|
733
|
+
kind: "gauge",
|
|
734
|
+
attributes: { state: "unassigned" },
|
|
735
|
+
seriesCombine: "max",
|
|
736
|
+
},
|
|
737
|
+
{
|
|
738
|
+
system: "elasticsearch",
|
|
739
|
+
metricName: "elasticsearch.cluster.pending_tasks",
|
|
740
|
+
title: "Pending tasks",
|
|
741
|
+
description:
|
|
742
|
+
"Cluster-level changes (mappings, shard allocation) waiting for the master node.",
|
|
743
|
+
unit: "tasks",
|
|
744
|
+
aggregation: AggregationType.Max,
|
|
745
|
+
kind: "gauge",
|
|
746
|
+
seriesCombine: "max",
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
system: "elasticsearch",
|
|
750
|
+
metricName: "jvm.memory.heap.utilization",
|
|
751
|
+
title: "JVM heap used",
|
|
752
|
+
description: `Share of the JVM heap in use on the fullest node.${AGENT_ENABLED_NOTE}`,
|
|
753
|
+
unit: "fraction",
|
|
754
|
+
aggregation: AggregationType.Max,
|
|
755
|
+
kind: "gauge",
|
|
756
|
+
seriesKeys: [ELASTICSEARCH_NODE_KEY],
|
|
757
|
+
seriesCombine: "max",
|
|
758
|
+
enabledByDefault: false,
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
system: "elasticsearch",
|
|
762
|
+
metricName: "elasticsearch.node.fs.disk.available",
|
|
763
|
+
title: "Disk available",
|
|
764
|
+
description: "Disk space left for data on the node with the least of it.",
|
|
765
|
+
unit: "bytes",
|
|
766
|
+
aggregation: AggregationType.Min,
|
|
767
|
+
kind: "gauge",
|
|
768
|
+
seriesKeys: [ELASTICSEARCH_NODE_KEY],
|
|
769
|
+
seriesCombine: "min",
|
|
770
|
+
},
|
|
771
|
+
{
|
|
772
|
+
system: "elasticsearch",
|
|
773
|
+
metricName: "elasticsearch.node.operations.completed",
|
|
774
|
+
title: "Searches",
|
|
775
|
+
description:
|
|
776
|
+
"Search query phases completed per second — one per shard a search reads — every node added up.",
|
|
777
|
+
unit: "queries",
|
|
778
|
+
aggregation: AggregationType.Max,
|
|
779
|
+
kind: "counter",
|
|
780
|
+
attributes: { operation: "query" },
|
|
781
|
+
seriesCombine: "sum",
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
system: "elasticsearch",
|
|
785
|
+
metricName: "elasticsearch.node.operations.completed",
|
|
786
|
+
title: "Indexing",
|
|
787
|
+
description:
|
|
788
|
+
"Documents written per second — each shard copy counts, replicas included — every node added up.",
|
|
789
|
+
unit: "documents",
|
|
790
|
+
aggregation: AggregationType.Max,
|
|
791
|
+
kind: "counter",
|
|
792
|
+
attributes: { operation: "index" },
|
|
793
|
+
seriesCombine: "sum",
|
|
794
|
+
},
|
|
795
|
+
|
|
796
|
+
// Memcached — memcachedreceiver (all default-on).
|
|
797
|
+
{
|
|
798
|
+
system: "memcached",
|
|
799
|
+
metricName: "memcached.connections.current",
|
|
800
|
+
title: "Connections",
|
|
801
|
+
description: "Client connections currently open.",
|
|
802
|
+
unit: "connections",
|
|
803
|
+
aggregation: AggregationType.Avg,
|
|
804
|
+
kind: "gauge",
|
|
805
|
+
seriesCombine: "sum",
|
|
806
|
+
},
|
|
807
|
+
{
|
|
808
|
+
system: "memcached",
|
|
809
|
+
metricName: "memcached.bytes",
|
|
810
|
+
title: "Memory used",
|
|
811
|
+
description: "Bytes the server uses to store items.",
|
|
812
|
+
unit: "bytes",
|
|
813
|
+
aggregation: AggregationType.Avg,
|
|
814
|
+
kind: "gauge",
|
|
815
|
+
seriesCombine: "sum",
|
|
816
|
+
},
|
|
817
|
+
{
|
|
818
|
+
system: "memcached",
|
|
819
|
+
metricName: "memcached.current_items",
|
|
820
|
+
title: "Items",
|
|
821
|
+
description: "Items currently stored in the cache.",
|
|
822
|
+
unit: "items",
|
|
823
|
+
aggregation: AggregationType.Avg,
|
|
824
|
+
kind: "gauge",
|
|
825
|
+
seriesCombine: "sum",
|
|
826
|
+
},
|
|
827
|
+
/*
|
|
828
|
+
* Hits and misses rather than memcached.operation_hit_ratio: that is a
|
|
829
|
+
* ratio since the server started, and reads 0% on a cache nobody has
|
|
830
|
+
* read from yet.
|
|
831
|
+
*/
|
|
832
|
+
{
|
|
833
|
+
system: "memcached",
|
|
834
|
+
metricName: "memcached.operations",
|
|
835
|
+
title: "Get hits",
|
|
836
|
+
description: "Reads that found their key, per second.",
|
|
837
|
+
unit: "hits",
|
|
838
|
+
aggregation: AggregationType.Max,
|
|
839
|
+
kind: "counter",
|
|
840
|
+
attributes: { operation: "get", type: "hit" },
|
|
841
|
+
seriesCombine: "sum",
|
|
842
|
+
},
|
|
843
|
+
{
|
|
844
|
+
system: "memcached",
|
|
845
|
+
metricName: "memcached.operations",
|
|
846
|
+
title: "Get misses",
|
|
847
|
+
description: "Reads that did not find their key, per second.",
|
|
848
|
+
unit: "misses",
|
|
849
|
+
aggregation: AggregationType.Max,
|
|
850
|
+
kind: "counter",
|
|
851
|
+
attributes: { operation: "get", type: "miss" },
|
|
852
|
+
seriesCombine: "sum",
|
|
853
|
+
},
|
|
854
|
+
{
|
|
855
|
+
system: "memcached",
|
|
856
|
+
metricName: "memcached.commands",
|
|
857
|
+
title: "Commands",
|
|
858
|
+
description:
|
|
859
|
+
"Commands (get, set, touch, flush) per second, every kind added up.",
|
|
860
|
+
unit: "commands",
|
|
861
|
+
aggregation: AggregationType.Max,
|
|
862
|
+
kind: "counter",
|
|
863
|
+
seriesCombine: "sum",
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
system: "memcached",
|
|
867
|
+
metricName: "memcached.evictions",
|
|
868
|
+
title: "Evictions",
|
|
869
|
+
description:
|
|
870
|
+
"Items evicted to make room for new ones, per second: the cache is too small for what it holds.",
|
|
871
|
+
unit: "evictions",
|
|
872
|
+
aggregation: AggregationType.Max,
|
|
873
|
+
kind: "counter",
|
|
874
|
+
seriesCombine: "sum",
|
|
875
|
+
},
|
|
876
|
+
];
|
|
877
|
+
|
|
878
|
+
/**
|
|
879
|
+
* The curated metrics for an engine, in display order. Aliases are accepted
|
|
880
|
+
* ("postgres" → PostgreSQL's), and a fork its family's receiver monitors
|
|
881
|
+
* gets its family's set (Valkey → Redis's, MariaDB → MySQL's, OpenSearch →
|
|
882
|
+
* Elasticsearch's: that receiver's metric names are what arrive), less the
|
|
883
|
+
* entries the receiver never emits for that fork (`notEmittedFor`). Empty
|
|
884
|
+
* for an engine without a curated set — the Overview then shows its "engine
|
|
885
|
+
* metrics not connected" state.
|
|
886
|
+
*/
|
|
887
|
+
export function getDatabaseServerMetrics(
|
|
888
|
+
system: string | null | undefined,
|
|
889
|
+
): Array<DatabaseServerMetricDefinition> {
|
|
890
|
+
const engine: string | null = getDatabaseSystemMetricsEngine(system);
|
|
891
|
+
if (!engine) {
|
|
892
|
+
return [];
|
|
893
|
+
}
|
|
894
|
+
const exact: string | null = normalizeDatabaseSystem(system);
|
|
895
|
+
return DATABASE_SERVER_METRICS.filter(
|
|
896
|
+
(metric: DatabaseServerMetricDefinition): boolean => {
|
|
897
|
+
return (
|
|
898
|
+
metric.system === engine &&
|
|
899
|
+
!(exact && metric.notEmittedFor?.includes(exact))
|
|
900
|
+
);
|
|
901
|
+
},
|
|
902
|
+
);
|
|
903
|
+
}
|
|
904
|
+
|
|
905
|
+
/**
|
|
906
|
+
* A stable id for a catalog entry — the metric name, plus its pinned
|
|
907
|
+
* attributes when it has any ("mysql.threads{kind=running}"). One metric can
|
|
908
|
+
* back several entries, so the name alone is not unique.
|
|
909
|
+
*/
|
|
910
|
+
export function getDatabaseServerMetricId(
|
|
911
|
+
definition: DatabaseServerMetricDefinition,
|
|
912
|
+
): string {
|
|
913
|
+
const pins: Array<string> = Object.keys(definition.attributes || {})
|
|
914
|
+
.sort()
|
|
915
|
+
.map((key: string): string => {
|
|
916
|
+
return `${key}=${definition.attributes![key]}`;
|
|
917
|
+
});
|
|
918
|
+
return pins.length > 0
|
|
919
|
+
? `${definition.metricName}{${pins.join(",")}}`
|
|
920
|
+
: definition.metricName;
|
|
921
|
+
}
|
|
922
|
+
|
|
923
|
+
/**
|
|
924
|
+
* The attribute keys a gauge is grouped by: its own series keys, then the
|
|
925
|
+
* reporting instance. Deduplicated, in that order.
|
|
926
|
+
*/
|
|
927
|
+
export function getDatabaseServerMetricGroupKeys(
|
|
928
|
+
definition: DatabaseServerMetricDefinition,
|
|
929
|
+
): Array<string> {
|
|
930
|
+
const keys: Array<string> = [];
|
|
931
|
+
for (const key of [
|
|
932
|
+
...(definition.seriesKeys || []),
|
|
933
|
+
...DATABASE_SERVER_INSTANCE_ATTRIBUTE_KEYS,
|
|
934
|
+
]) {
|
|
935
|
+
if (!keys.includes(key)) {
|
|
936
|
+
keys.push(key);
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
return keys;
|
|
940
|
+
}
|
|
941
|
+
|
|
942
|
+
/**
|
|
943
|
+
* The catalog entry a metric NAME is charted with on the Metrics tab: the
|
|
944
|
+
* engine's entry for that name, preferring one that pins nothing (an
|
|
945
|
+
* unpinned entry describes the whole metric). Null when the name is not
|
|
946
|
+
* curated for this engine.
|
|
947
|
+
*/
|
|
948
|
+
export function findDatabaseServerMetricByName(
|
|
949
|
+
system: string | null | undefined,
|
|
950
|
+
metricName: string,
|
|
951
|
+
): DatabaseServerMetricDefinition | null {
|
|
952
|
+
const name: string = (metricName || "").trim();
|
|
953
|
+
const matches: Array<DatabaseServerMetricDefinition> =
|
|
954
|
+
getDatabaseServerMetrics(system).filter(
|
|
955
|
+
(candidate: DatabaseServerMetricDefinition): boolean => {
|
|
956
|
+
return candidate.metricName === name;
|
|
957
|
+
},
|
|
958
|
+
);
|
|
959
|
+
return (
|
|
960
|
+
matches.find((candidate: DatabaseServerMetricDefinition): boolean => {
|
|
961
|
+
return Object.keys(candidate.attributes || {}).length === 0;
|
|
962
|
+
}) ||
|
|
963
|
+
matches[0] ||
|
|
964
|
+
null
|
|
965
|
+
);
|
|
966
|
+
}
|