@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.
Files changed (617) hide show
  1. package/Models/DatabaseModels/Alert.ts +55 -0
  2. package/Models/DatabaseModels/DatabaseServer.ts +1650 -0
  3. package/Models/DatabaseModels/DatabaseServerEndpoint.ts +540 -0
  4. package/Models/DatabaseModels/DatabaseServerFeed.ts +625 -0
  5. package/Models/DatabaseModels/DatabaseServerLabelRule.ts +514 -0
  6. package/Models/DatabaseModels/DatabaseServerOwnerRule.ts +596 -0
  7. package/Models/DatabaseModels/DatabaseServerOwnerTeam.ts +491 -0
  8. package/Models/DatabaseModels/DatabaseServerOwnerUser.ts +490 -0
  9. package/Models/DatabaseModels/Incident.ts +55 -0
  10. package/Models/DatabaseModels/Index.ts +16 -0
  11. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +26 -0
  12. package/Models/DatabaseModels/ScheduledMaintenance.ts +55 -0
  13. package/Models/DatabaseModels/TelemetryException.ts +2 -0
  14. package/Models/DatabaseModels/UserProjectSsoConsent.ts +146 -0
  15. package/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.ts +673 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.ts +51 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  18. package/Server/Middleware/MultipartFormData.ts +1 -1
  19. package/Server/Middleware/TelemetryIngest.ts +15 -8
  20. package/Server/Services/AlertReminderRuleService.ts +100 -24
  21. package/Server/Services/DatabaseServerEndpointService.ts +895 -0
  22. package/Server/Services/DatabaseServerFeedService.ts +128 -0
  23. package/Server/Services/DatabaseServerLabelRuleEngineService.ts +340 -0
  24. package/Server/Services/DatabaseServerLabelRuleService.ts +14 -0
  25. package/Server/Services/DatabaseServerOwnerRuleEngineService.ts +425 -0
  26. package/Server/Services/DatabaseServerOwnerRuleService.ts +14 -0
  27. package/Server/Services/DatabaseServerOwnerTeamService.ts +180 -0
  28. package/Server/Services/DatabaseServerOwnerUserService.ts +173 -0
  29. package/Server/Services/DatabaseServerService.ts +4546 -0
  30. package/Server/Services/DatabaseService.ts +14 -8
  31. package/Server/Services/DockerResourceService.ts +43 -2
  32. package/Server/Services/IncidentReminderRuleService.ts +103 -23
  33. package/Server/Services/Index.ts +16 -0
  34. package/Server/Services/InventoryItemService.ts +113 -5
  35. package/Server/Services/IoTDeviceService.ts +145 -37
  36. package/Server/Services/OpenTelemetryIngestService.ts +19 -0
  37. package/Server/Services/PodmanResourceService.ts +43 -2
  38. package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +107 -23
  39. package/Server/Services/ServiceService.ts +1 -1
  40. package/Server/Services/TelemetryUsageBillingService.ts +29 -2
  41. package/Server/Services/UserProjectSsoConsentService.ts +74 -0
  42. package/Server/Services/UserService.ts +14 -1
  43. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +18 -0
  44. package/Server/Types/Database/QueryHelper.ts +30 -1
  45. package/Server/Utils/AI/Toolbox/ResourceTools.ts +69 -1
  46. package/Server/Utils/Database/AffectedResourceRelations.ts +6 -0
  47. package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +188 -6
  48. package/Server/Utils/Monitor/MonitorAlert.ts +28 -1
  49. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +2262 -755
  50. package/Server/Utils/Monitor/MonitorIncident.ts +28 -1
  51. package/Server/Utils/Monitor/MonitorMaintenanceSuppression.ts +268 -6
  52. package/Server/Utils/Monitor/MonitorResource.ts +47 -11
  53. package/Server/Utils/Monitor/MonitorResourceContext.ts +1 -0
  54. package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +239 -21
  55. package/Server/Utils/Monitor/PerSeriesResolutionRootCause.ts +43 -0
  56. package/Server/Utils/Monitor/SeriesResourceLabels.ts +291 -0
  57. package/Server/Utils/Monitor/SeriesResourceLinker.ts +111 -12
  58. package/Server/Utils/Rules/RuleRun/RuleRunRegistry.ts +25 -0
  59. package/Server/Utils/StartServer.ts +26 -6
  60. package/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.ts +2 -0
  61. package/Server/Utils/Telemetry/DatabaseEndpointDiscovery.ts +688 -0
  62. package/Server/Utils/Telemetry/EntityRegistry.ts +5 -1
  63. package/Server/Utils/Telemetry/LogExceptionExtractor.ts +18 -1
  64. package/Server/Utils/Telemetry/ResourceEntityFilter.ts +175 -12
  65. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +12 -0
  66. package/Server/Utils/Telemetry/ServiceDependencyDiscovery.ts +606 -36
  67. package/Server/Utils/Telemetry/Telemetry.ts +16 -0
  68. package/Server/Utils/Telemetry/TelemetryEntity.ts +22 -22
  69. package/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.ts +16 -10
  70. package/Tests/App/Accounts/SignedInRedirect.test.tsx +241 -0
  71. package/Tests/App/AdminDashboard/AdminHeaderSmallScreens.test.tsx +221 -4
  72. package/Tests/App/Dashboard/AIInsightsResourcePageContext.test.ts +42 -0
  73. package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +100 -0
  74. package/Tests/App/Dashboard/AffectedResourcesPicker.test.tsx +86 -0
  75. package/Tests/App/Dashboard/AffectedResourcesPickerHiddenTypes.test.tsx +2 -0
  76. package/Tests/App/Dashboard/AffectedResourcesSummaryStep.test.tsx +19 -0
  77. package/Tests/App/Dashboard/BreadcrumbCoverage.test.tsx +14 -0
  78. package/Tests/App/Dashboard/CorrelateFilterBuilder.test.tsx +26 -1
  79. package/Tests/App/Dashboard/DashboardAppSsoError.test.tsx +501 -0
  80. package/Tests/App/Dashboard/DashboardHeaderRequests.test.tsx +64 -1
  81. package/Tests/App/Dashboard/DashboardHeaderSmallScreens.test.tsx +178 -18
  82. package/Tests/App/Dashboard/DashboardMasterPageSsoRedirect.test.tsx +444 -0
  83. package/Tests/App/Dashboard/DashboardNavBarForeignHiddenRule.test.tsx +573 -0
  84. package/Tests/App/Dashboard/DatabaseChartAxes.test.tsx +431 -0
  85. package/Tests/App/Dashboard/DatabaseContainerDetailBadge.test.tsx +249 -0
  86. package/Tests/App/Dashboard/DatabaseDashboardE2EFixes.test.ts +681 -0
  87. package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +1801 -0
  88. package/Tests/App/Dashboard/DatabaseFleetSummaryRefresh.test.tsx +280 -0
  89. package/Tests/App/Dashboard/DatabaseFormHelpers.test.tsx +321 -0
  90. package/Tests/App/Dashboard/DatabaseMetricMonitorLink.test.tsx +795 -0
  91. package/Tests/App/Dashboard/DatabaseOverviewHeader.test.tsx +580 -0
  92. package/Tests/App/Dashboard/DatabaseRecommendationsEngineMetrics.test.ts +270 -0
  93. package/Tests/App/Dashboard/DatabaseServerComponents.test.tsx +1486 -0
  94. package/Tests/App/Dashboard/DatabaseServerEngineMetricsFilter.test.ts +223 -0
  95. package/Tests/App/Dashboard/DatabaseServerPresentation.test.ts +435 -0
  96. package/Tests/App/Dashboard/DatabaseServerSummary.test.ts +186 -0
  97. package/Tests/App/Dashboard/DatabaseServerTelemetryQueries.test.ts +1553 -0
  98. package/Tests/App/Dashboard/DatabaseTableTruncation.test.tsx +326 -0
  99. package/Tests/App/Dashboard/DatabaseTelemetryScope.test.ts +512 -0
  100. package/Tests/App/Dashboard/DatabaseTelemetryTabs.test.tsx +774 -0
  101. package/Tests/App/Dashboard/DatabaseViewLayout.test.tsx +233 -0
  102. package/Tests/App/Dashboard/DatabaseWorkloadBadge.test.tsx +972 -0
  103. package/Tests/App/Dashboard/DiscoveryReviewInventoryRefresh.test.tsx +5 -0
  104. package/Tests/App/Dashboard/DiscoveryReviewUnnamedHostHint.test.tsx +1061 -0
  105. package/Tests/App/Dashboard/EventOverlayScope.test.ts +147 -0
  106. package/Tests/App/Dashboard/EventOverlayScopeHook.test.tsx +1 -0
  107. package/Tests/App/Dashboard/LogsResourceFacetChips.test.tsx +1 -0
  108. package/Tests/App/Dashboard/MetricsViewerDrillDown.test.tsx +310 -0
  109. package/Tests/App/Dashboard/MetricsViewerEntityScopedRows.test.tsx +495 -0
  110. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +132 -1
  111. package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +5 -0
  112. package/Tests/App/Dashboard/ProductOrientation.test.tsx +4 -3
  113. package/Tests/App/Dashboard/RecommendationsLoadedContext.test.tsx +349 -0
  114. package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +62 -0
  115. package/Tests/App/Dashboard/ResourceFeedPageWiring.test.ts +8 -1
  116. package/Tests/App/Dashboard/ResourceFeedPagesFilterSort.test.tsx +14 -0
  117. package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +2 -0
  118. package/Tests/App/Dashboard/ServiceMapDatabaseLink.test.tsx +1085 -0
  119. package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +10 -0
  120. package/Tests/App/Dashboard/TracesResourceFacets.test.tsx +2 -1
  121. package/Tests/App/StatusPage/StatusPageHeaderForeignHiddenRule.test.tsx +284 -0
  122. package/Tests/ClassStrings.ts +178 -0
  123. package/Tests/Fixtures/MobilePasskeyUser.json +1 -2
  124. package/Tests/ForeignHiddenRuleGuard.ts +2152 -0
  125. package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +2250 -0
  126. package/Tests/Models/DatabaseModels/ResourceFeedModels.test.ts +24 -5
  127. package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +4 -2
  128. package/Tests/RenderedMarkup.ts +518 -0
  129. package/Tests/ResponsiveVisibility.test.ts +490 -4
  130. package/Tests/ResponsiveVisibility.ts +505 -52
  131. package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +3 -0
  132. package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +541 -0
  133. package/Tests/Server/Infrastructure/Postgres/AddUserProjectSsoConsentMigration.test.ts +234 -0
  134. package/Tests/Server/Services/ContainerSnapshotUpsertPostgres.test.ts +319 -0
  135. package/Tests/Server/Services/CrossProjectRelationWriteGuard.test.ts +13 -0
  136. package/Tests/Server/Services/DatabaseServerEndpointService.test.ts +2033 -0
  137. package/Tests/Server/Services/DatabaseServerFeedAndOwnerServices.test.ts +529 -0
  138. package/Tests/Server/Services/DatabaseServerLifecycle.test.ts +3302 -0
  139. package/Tests/Server/Services/DatabaseServerRegistries.test.ts +603 -0
  140. package/Tests/Server/Services/DatabaseServerRuleEngines.test.ts +754 -0
  141. package/Tests/Server/Services/DatabaseServerService.test.ts +3558 -0
  142. package/Tests/Server/Services/DatabaseServerSqlPostgres.test.ts +2045 -0
  143. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedPostgres.test.ts +362 -0
  144. package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlockedReply.test.ts +210 -0
  145. package/Tests/Server/Services/HookFreeWriteLengthClamp.test.ts +18 -0
  146. package/Tests/Server/Services/IncidentAlertSloLinkSurvivesEdit.test.ts +2 -0
  147. package/Tests/Server/Services/IncomingCallPolicyEscalationRuleTarget.test.ts +225 -0
  148. package/Tests/Server/Services/InventoryItemDisplayName.test.ts +280 -2
  149. package/Tests/Server/Services/InventoryUpsertSchemaParity.test.ts +8 -2
  150. package/Tests/Server/Services/IoTDeviceLatestMetricsPostgres.test.ts +689 -0
  151. package/Tests/Server/Services/IoTDeviceService.test.ts +379 -0
  152. package/Tests/Server/Services/LatestMetricsValuesShape.test.ts +360 -0
  153. package/Tests/Server/Services/LlmModelPriceService.test.ts +402 -0
  154. package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +7 -1
  155. package/Tests/Server/Services/OwnerRowUniqueness.test.ts +61 -9
  156. package/Tests/Server/Services/ReminderRuleLookupPostgres.test.ts +2250 -0
  157. package/Tests/Server/Services/ReminderRuleRefreshOpenSubjectsPaging.test.ts +653 -0
  158. package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +68 -20
  159. package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +3 -3
  160. package/Tests/Server/Services/TelemetryResourceFacetCounting.test.ts +9 -0
  161. package/Tests/Server/Services/UserProjectSsoConsentPostgres.test.ts +153 -0
  162. package/Tests/Server/Services/UserProjectSsoConsentService.test.ts +192 -0
  163. package/Tests/Server/Services/UserServiceFirstMasterAdminElection.test.ts +71 -0
  164. package/Tests/Server/Services/UserSignupIdTakeoverPostgres.test.ts +238 -0
  165. package/Tests/Server/Services/WorkspaceNotificationSummaryHelpers.test.ts +592 -0
  166. package/Tests/Server/Types/Billing/PayAsYouGoMeteredAuthorization.test.ts +3 -0
  167. package/Tests/Server/Types/Database/EventOverlayScopePostgres.test.ts +1 -0
  168. package/Tests/Server/Types/Database/FeedEventTypeFilterQuery.test.ts +11 -0
  169. package/Tests/Server/Types/Database/Permissions/InfrastructureOwnershipScope.test.ts +8 -0
  170. package/Tests/Server/Types/Database/QueryHelperBooleanForCriteriaBackedRule.test.ts +1094 -0
  171. package/Tests/Server/Utils/AI/ResourceTools.test.ts +134 -0
  172. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.ts +41 -0
  173. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaAnomalyUnits.test.ts +279 -9
  174. package/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteriaDisplayContext.test.ts +933 -0
  175. package/Tests/Server/Utils/Monitor/DatabaseMaintenanceSuppression.test.ts +582 -0
  176. package/Tests/Server/Utils/Monitor/DatabaseServerMonitorLinking.test.ts +753 -0
  177. package/Tests/Server/Utils/Monitor/MonitorActionTimestamps.test.ts +1 -0
  178. package/Tests/Server/Utils/Monitor/MonitorAlertCriteriaReferences.test.ts +1 -0
  179. package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +119 -0
  180. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluator.test.ts +60 -25
  181. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorAffectedResourceEdgeCases.test.ts +1719 -0
  182. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesAffectedResources.test.ts +1447 -0
  183. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorKubernetesRatioEmail.test.ts +352 -0
  184. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformMetricUnits.test.ts +717 -0
  185. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformRawScan.test.ts +2125 -0
  186. package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorPlatformSeriesAffectedResources.test.ts +1288 -0
  187. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +1 -0
  188. package/Tests/Server/Utils/Monitor/MonitorIncidentCriteriaReferences.test.ts +1 -0
  189. package/Tests/Server/Utils/Monitor/MonitorIncidentMemberRoleMembership.test.ts +1 -0
  190. package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +88 -0
  191. package/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.ts +205 -0
  192. package/Tests/Server/Utils/Monitor/MonitorResourceContext.test.ts +62 -0
  193. package/Tests/Server/Utils/Monitor/MonitorResourceDatabaseMaintenance.test.ts +803 -0
  194. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +133 -3
  195. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +1 -0
  196. package/Tests/Server/Utils/Monitor/PerSeriesRecoveryResolution.test.ts +472 -1
  197. package/Tests/Server/Utils/Monitor/PerSeriesSecondEntityAlerting.test.ts +1 -0
  198. package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +236 -2
  199. package/Tests/Server/Utils/SeriesResourceLabels.test.ts +70 -0
  200. package/Tests/Server/Utils/StartServerProtobufContentType.test.ts +54 -0
  201. package/Tests/Server/Utils/Telemetry/DatabaseEndpointDiscovery.test.ts +1895 -0
  202. package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +7 -0
  203. package/Tests/Server/Utils/Telemetry/LogExceptionExtractorSeverityGate.test.ts +90 -0
  204. package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +570 -0
  205. package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +97 -2
  206. package/Tests/Server/Utils/Telemetry/ServiceDependencyDiscovery.test.ts +1337 -0
  207. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +295 -0
  208. package/Tests/Types/AI/AIResourceContext.test.ts +30 -0
  209. package/Tests/Types/DatabaseServer/DatabaseContainerClassifier.test.ts +3644 -0
  210. package/Tests/Types/DatabaseServer/DatabaseContainerCommand.test.ts +340 -0
  211. package/Tests/Types/DatabaseServer/DatabaseContainerCommandCorpus.ts +826 -0
  212. package/Tests/Types/DatabaseServer/DatabaseContainerCommandPostgres.test.ts +150 -0
  213. package/Tests/Types/DatabaseServer/DatabaseEndpoint.test.ts +2657 -0
  214. package/Tests/Types/DatabaseServer/DatabaseServerDiscoverySource.test.ts +64 -0
  215. package/Tests/Types/DatabaseServer/DatabaseServerEntityKeys.test.ts +952 -0
  216. package/Tests/Types/DatabaseServer/DatabaseServerMetricCatalog.test.ts +1161 -0
  217. package/Tests/Types/DatabaseServer/DatabaseSystem.test.ts +1514 -0
  218. package/Tests/Types/DatabaseServer/DatabaseTelemetryResolver.test.ts +1558 -0
  219. package/Tests/Types/Monitor/CephAlertTemplates.test.ts +255 -6
  220. package/Tests/Types/Monitor/DatabaseAlertTemplates.test.ts +2254 -0
  221. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +298 -0
  222. package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +271 -0
  223. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +253 -9
  224. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +13 -5
  225. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +4 -2
  226. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +111 -2
  227. package/Tests/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.test.ts +61 -0
  228. package/Tests/Types/Monitor/SeriesContext/SeriesLabelDisplay.test.ts +114 -0
  229. package/Tests/Types/Monitor/Utils/KubernetesAgentEmittedMetrics.ts +181 -0
  230. package/Tests/Types/NetworkDevice/DiscoveredHostNamingStatus.test.ts +401 -0
  231. package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +4 -1
  232. package/Tests/Types/Telemetry/ResourceFacetCatalog.test.ts +24 -2
  233. package/Tests/UI/Components/Card.test.tsx +93 -2
  234. package/Tests/UI/Components/FeedOptions.test.ts +6 -0
  235. package/Tests/UI/Components/FeedOptionsButton.test.tsx +8 -1
  236. package/Tests/UI/Components/ForeignHiddenRuleResilience.test.tsx +1147 -0
  237. package/Tests/UI/Components/HeaderRightRail.test.tsx +41 -1
  238. package/Tests/UI/Components/LogsEntityNames.test.ts +16 -1
  239. package/Tests/UI/Components/LogsFacetSidebarHiddenFacets.test.tsx +7 -3
  240. package/Tests/UI/Components/ResourceFacetConfigs.test.ts +2 -1
  241. package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +3 -3
  242. package/Tests/UI/Components/SrOnlyForeignRule.test.tsx +994 -0
  243. package/Tests/UI/Components/StatusPage/ResourceListSelection.test.tsx +34 -1
  244. package/Tests/UI/Components/TelemetryFacetSidebarHiddenFacets.test.tsx +4 -1
  245. package/Tests/UI/ForeignHiddenRuleGuard.test.ts +1951 -0
  246. package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +19 -1
  247. package/Tests/UI/Rum/ReplayTabSwitcher.test.tsx +19 -1
  248. package/Tests/UI/TailwindPlayCdnForeignHiddenRule.test.ts +1005 -0
  249. package/Tests/UI/ThemeGroupHoverReveal.test.ts +847 -0
  250. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +70 -0
  251. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +21 -0
  252. package/Tests/UI/Utils/ModelAPISsoRedirect.test.ts +127 -0
  253. package/Tests/UI/Utils/Navigation.test.ts +102 -0
  254. package/Tests/UI/Utils/Telemetry/TelemetryEntityNames.test.ts +23 -0
  255. package/Tests/Utils/LabelRuleImportExport.test.ts +5 -0
  256. package/Tests/Utils/MetricUnitUtil.test.ts +227 -2
  257. package/Tests/Utils/Monitor/MetricValueFormatter.test.ts +288 -2
  258. package/Tests/Utils/Monitor/PlatformResourceIdentityAndUnits.test.ts +1559 -0
  259. package/Tests/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.test.ts +2546 -0
  260. package/Tests/Utils/NetworkDiscovery/DiscoveredHostUtil.test.ts +315 -0
  261. package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +336 -1
  262. package/Tests/Utils/NetworkDiscovery/NetbiosNameUtil.test.ts +244 -0
  263. package/Tests/Utils/ValueFormatter.test.ts +50 -0
  264. package/Tests/tsconfig.json +16 -0
  265. package/Types/AI/AIResourceContext.ts +7 -0
  266. package/Types/Dashboard/DashboardTemplates.ts +2 -1
  267. package/Types/DatabaseServer/DatabaseConnectionSpan.ts +77 -0
  268. package/Types/DatabaseServer/DatabaseContainerClassifier.ts +2068 -0
  269. package/Types/DatabaseServer/DatabaseContainerCommand.ts +801 -0
  270. package/Types/DatabaseServer/DatabaseEndpoint.ts +1943 -0
  271. package/Types/DatabaseServer/DatabaseServerDiscoverySource.ts +68 -0
  272. package/Types/DatabaseServer/DatabaseServerMetricCatalog.ts +966 -0
  273. package/Types/DatabaseServer/DatabaseSystem.ts +2124 -0
  274. package/Types/DatabaseServer/DatabaseTelemetryResolver.ts +555 -0
  275. package/Types/Email/EmailTemplateType.ts +1 -0
  276. package/Types/Monitor/CephAlertTemplates.ts +18 -0
  277. package/Types/Monitor/DatabaseAlertTemplates.ts +2020 -0
  278. package/Types/Monitor/KubernetesAlertTemplates.ts +64 -24
  279. package/Types/Monitor/KubernetesMetricCatalog.ts +118 -19
  280. package/Types/Monitor/MetricMonitor/MetricCriteriaContext.ts +14 -0
  281. package/Types/Monitor/MetricMonitor/MetricMonitorResponse.ts +93 -10
  282. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +109 -8
  283. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +36 -7
  284. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +43 -2
  285. package/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.ts +41 -6
  286. package/Types/Monitor/SeriesContext/SeriesLabelDisplay.ts +26 -0
  287. package/Types/NetworkDevice/DiscoveredHostNamingStatus.ts +147 -0
  288. package/Types/Permission.ts +267 -0
  289. package/Types/Probe/ProbeApiIngestResponse.ts +8 -0
  290. package/Types/Rules/RuleCriteriaFieldRegistry.ts +10 -0
  291. package/Types/Rules/RuleRun.ts +12 -0
  292. package/Types/Telemetry/EntityType.ts +23 -0
  293. package/Types/Telemetry/ResourceFacetCatalog.ts +14 -0
  294. package/Types/Telemetry/ServiceType.ts +8 -0
  295. package/UI/Components/Banner/Banner.tsx +1 -1
  296. package/UI/Components/Card/Card.tsx +1 -1
  297. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +2 -2
  298. package/UI/Components/Charts/Line/LineChart.tsx +7 -0
  299. package/UI/Components/CommandPalette/CommandPalette.tsx +1 -1
  300. package/UI/Components/Date/StartAndEndDate.tsx +5 -5
  301. package/UI/Components/Diagram/HorizontalStepChain.tsx +1 -1
  302. package/UI/Components/Feed/FeedOptionsButton.tsx +1 -1
  303. package/UI/Components/Forms/BasicForm.tsx +1 -1
  304. package/UI/Components/Header/Header.tsx +1 -1
  305. package/UI/Components/Header/HeaderIconDropdownButton.tsx +1 -1
  306. package/UI/Components/HeaderAlert/HeaderAlert.tsx +1 -1
  307. package/UI/Components/LogsViewer/components/FacetValueRow.tsx +1 -1
  308. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +1 -1
  309. package/UI/Components/Modal/ModalFooter.tsx +1 -1
  310. package/UI/Components/ModelDetail/CardModelDetail.tsx +2 -2
  311. package/UI/Components/ModelTable/BaseModelTable.tsx +4 -4
  312. package/UI/Components/Navbar/NavBar.tsx +9 -2
  313. package/UI/Components/Navbar/NavBarMenuModal.tsx +2 -2
  314. package/UI/Components/Page/Page.tsx +1 -1
  315. package/UI/Components/Pagination/Pagination.tsx +3 -3
  316. package/UI/Components/ProgressButtons/ProgressButtonItem.tsx +1 -1
  317. package/UI/Components/SideMenu/SideMenu.tsx +4 -1
  318. package/UI/Components/StatusPage/ResourceGroupNavigator.tsx +4 -2
  319. package/UI/Components/StatusPage/ResourceList.tsx +6 -6
  320. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +1 -1
  321. package/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.tsx +1 -1
  322. package/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.tsx +1 -1
  323. package/UI/Components/Workflow/ComponentsModal.tsx +2 -2
  324. package/UI/Components/Workflow/StepTraceViewer.tsx +1 -1
  325. package/UI/Styles/Theme.css +8 -1
  326. package/UI/Utils/Navigation.ts +89 -42
  327. package/UI/Utils/Telemetry/TelemetryEntityNames.ts +7 -0
  328. package/UI/Utils/TelemetryService.ts +4 -3
  329. package/Utils/LabelRuleImportExport.ts +2 -0
  330. package/Utils/MetricUnitUtil.ts +103 -11
  331. package/Utils/Monitor/MetricValueFormatter.ts +66 -13
  332. package/Utils/Monitor/PlatformMetricUnitUtil.ts +215 -0
  333. package/Utils/Monitor/PlatformResourceIdentity.ts +514 -0
  334. package/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.ts +425 -0
  335. package/Utils/NetworkDiscovery/DiscoveredHostUtil.ts +32 -0
  336. package/Utils/NetworkDiscovery/NetbiosNameUtil.ts +73 -0
  337. package/Utils/Telemetry/DatabaseServerEntityKeys.ts +275 -0
  338. package/Utils/Telemetry/EntityKey.ts +176 -0
  339. package/Utils/ValueFormatter.ts +16 -0
  340. package/build/dist/Models/DatabaseModels/Alert.js +54 -0
  341. package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
  342. package/build/dist/Models/DatabaseModels/DatabaseServer.js +1683 -0
  343. package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -0
  344. package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js +559 -0
  345. package/build/dist/Models/DatabaseModels/DatabaseServerEndpoint.js.map +1 -0
  346. package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js +648 -0
  347. package/build/dist/Models/DatabaseModels/DatabaseServerFeed.js.map +1 -0
  348. package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js +522 -0
  349. package/build/dist/Models/DatabaseModels/DatabaseServerLabelRule.js.map +1 -0
  350. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js +603 -0
  351. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerRule.js.map +1 -0
  352. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js +506 -0
  353. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerTeam.js.map +1 -0
  354. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js +505 -0
  355. package/build/dist/Models/DatabaseModels/DatabaseServerOwnerUser.js.map +1 -0
  356. package/build/dist/Models/DatabaseModels/Incident.js +54 -0
  357. package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
  358. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  359. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  360. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  361. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +54 -0
  362. package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
  363. package/build/dist/Models/DatabaseModels/TelemetryException.js +2 -0
  364. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  365. package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js +162 -0
  366. package/build/dist/Models/DatabaseModels/UserProjectSsoConsent.js.map +1 -0
  367. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js +240 -0
  368. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795000000000-AddDatabaseServerTables.js.map +1 -0
  369. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js +26 -0
  370. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795100000000-AddUserProjectSsoConsent.js.map +1 -0
  371. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  372. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  373. package/build/dist/Server/Middleware/MultipartFormData.js +1 -1
  374. package/build/dist/Server/Middleware/TelemetryIngest.js +15 -8
  375. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  376. package/build/dist/Server/Services/AlertReminderRuleService.js +72 -23
  377. package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -1
  378. package/build/dist/Server/Services/DatabaseServerEndpointService.js +694 -0
  379. package/build/dist/Server/Services/DatabaseServerEndpointService.js.map +1 -0
  380. package/build/dist/Server/Services/DatabaseServerFeedService.js +110 -0
  381. package/build/dist/Server/Services/DatabaseServerFeedService.js.map +1 -0
  382. package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js +272 -0
  383. package/build/dist/Server/Services/DatabaseServerLabelRuleEngineService.js.map +1 -0
  384. package/build/dist/Server/Services/DatabaseServerLabelRuleService.js +13 -0
  385. package/build/dist/Server/Services/DatabaseServerLabelRuleService.js.map +1 -0
  386. package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js +340 -0
  387. package/build/dist/Server/Services/DatabaseServerOwnerRuleEngineService.js.map +1 -0
  388. package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js +13 -0
  389. package/build/dist/Server/Services/DatabaseServerOwnerRuleService.js.map +1 -0
  390. package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js +160 -0
  391. package/build/dist/Server/Services/DatabaseServerOwnerTeamService.js.map +1 -0
  392. package/build/dist/Server/Services/DatabaseServerOwnerUserService.js +153 -0
  393. package/build/dist/Server/Services/DatabaseServerOwnerUserService.js.map +1 -0
  394. package/build/dist/Server/Services/DatabaseServerService.js +3272 -0
  395. package/build/dist/Server/Services/DatabaseServerService.js.map +1 -0
  396. package/build/dist/Server/Services/DatabaseService.js +8 -4
  397. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  398. package/build/dist/Server/Services/DockerResourceService.js +30 -3
  399. package/build/dist/Server/Services/DockerResourceService.js.map +1 -1
  400. package/build/dist/Server/Services/IncidentReminderRuleService.js +73 -23
  401. package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -1
  402. package/build/dist/Server/Services/Index.js +16 -0
  403. package/build/dist/Server/Services/Index.js.map +1 -1
  404. package/build/dist/Server/Services/InventoryItemService.js +88 -5
  405. package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
  406. package/build/dist/Server/Services/IoTDeviceService.js +111 -24
  407. package/build/dist/Server/Services/IoTDeviceService.js.map +1 -1
  408. package/build/dist/Server/Services/OpenTelemetryIngestService.js +24 -9
  409. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  410. package/build/dist/Server/Services/PodmanResourceService.js +30 -3
  411. package/build/dist/Server/Services/PodmanResourceService.js.map +1 -1
  412. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +75 -23
  413. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -1
  414. package/build/dist/Server/Services/ServiceService.js +1 -1
  415. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  416. package/build/dist/Server/Services/TelemetryUsageBillingService.js +23 -2
  417. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  418. package/build/dist/Server/Services/UserProjectSsoConsentService.js +79 -0
  419. package/build/dist/Server/Services/UserProjectSsoConsentService.js.map +1 -0
  420. package/build/dist/Server/Services/UserService.js +13 -1
  421. package/build/dist/Server/Services/UserService.js.map +1 -1
  422. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +18 -0
  423. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  424. package/build/dist/Server/Types/Database/QueryHelper.js +26 -1
  425. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  426. package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +46 -0
  427. package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +1 -1
  428. package/build/dist/Server/Utils/Database/AffectedResourceRelations.js +6 -0
  429. package/build/dist/Server/Utils/Database/AffectedResourceRelations.js.map +1 -1
  430. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +134 -13
  431. package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
  432. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +22 -6
  433. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  434. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +1489 -524
  435. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  436. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +22 -6
  437. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  438. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js +196 -6
  439. package/build/dist/Server/Utils/Monitor/MonitorMaintenanceSuppression.js.map +1 -1
  440. package/build/dist/Server/Utils/Monitor/MonitorResource.js +36 -9
  441. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  442. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +1 -0
  443. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -1
  444. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +175 -17
  445. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -1
  446. package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js +29 -0
  447. package/build/dist/Server/Utils/Monitor/PerSeriesResolutionRootCause.js.map +1 -0
  448. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +211 -0
  449. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
  450. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +82 -10
  451. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
  452. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js +25 -0
  453. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js.map +1 -1
  454. package/build/dist/Server/Utils/StartServer.js +20 -4
  455. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  456. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js +2 -0
  457. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js.map +1 -1
  458. package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js +442 -0
  459. package/build/dist/Server/Utils/Telemetry/DatabaseEndpointDiscovery.js.map +1 -0
  460. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +5 -1
  461. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  462. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +15 -1
  463. package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -1
  464. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +121 -5
  465. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
  466. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +12 -0
  467. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  468. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js +438 -36
  469. package/build/dist/Server/Utils/Telemetry/ServiceDependencyDiscovery.js.map +1 -1
  470. package/build/dist/Server/Utils/Telemetry/Telemetry.js +12 -0
  471. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  472. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -18
  473. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  474. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js +16 -10
  475. package/build/dist/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.js.map +1 -1
  476. package/build/dist/Types/AI/AIResourceContext.js +7 -0
  477. package/build/dist/Types/AI/AIResourceContext.js.map +1 -1
  478. package/build/dist/Types/Dashboard/DashboardTemplates.js +2 -1
  479. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  480. package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js +71 -0
  481. package/build/dist/Types/DatabaseServer/DatabaseConnectionSpan.js.map +1 -0
  482. package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js +1462 -0
  483. package/build/dist/Types/DatabaseServer/DatabaseContainerClassifier.js.map +1 -0
  484. package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js +691 -0
  485. package/build/dist/Types/DatabaseServer/DatabaseContainerCommand.js.map +1 -0
  486. package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js +1407 -0
  487. package/build/dist/Types/DatabaseServer/DatabaseEndpoint.js.map +1 -0
  488. package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js +60 -0
  489. package/build/dist/Types/DatabaseServer/DatabaseServerDiscoverySource.js.map +1 -0
  490. package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js +804 -0
  491. package/build/dist/Types/DatabaseServer/DatabaseServerMetricCatalog.js.map +1 -0
  492. package/build/dist/Types/DatabaseServer/DatabaseSystem.js +1860 -0
  493. package/build/dist/Types/DatabaseServer/DatabaseSystem.js.map +1 -0
  494. package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js +406 -0
  495. package/build/dist/Types/DatabaseServer/DatabaseTelemetryResolver.js.map +1 -0
  496. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  497. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  498. package/build/dist/Types/Monitor/CephAlertTemplates.js +18 -0
  499. package/build/dist/Types/Monitor/CephAlertTemplates.js.map +1 -1
  500. package/build/dist/Types/Monitor/DatabaseAlertTemplates.js +1518 -0
  501. package/build/dist/Types/Monitor/DatabaseAlertTemplates.js.map +1 -0
  502. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +57 -24
  503. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  504. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js +104 -18
  505. package/build/dist/Types/Monitor/KubernetesMetricCatalog.js.map +1 -1
  506. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +80 -3
  507. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  508. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +10 -3
  509. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  510. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +29 -0
  511. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -1
  512. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js +21 -6
  513. package/build/dist/Types/Monitor/Recommendation/RecommendationCriteriaBuilder.js.map +1 -1
  514. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js +25 -0
  515. package/build/dist/Types/Monitor/SeriesContext/SeriesLabelDisplay.js.map +1 -1
  516. package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js +136 -0
  517. package/build/dist/Types/NetworkDevice/DiscoveredHostNamingStatus.js.map +1 -0
  518. package/build/dist/Types/Permission.js +234 -0
  519. package/build/dist/Types/Permission.js.map +1 -1
  520. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +10 -0
  521. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
  522. package/build/dist/Types/Rules/RuleRun.js +4 -0
  523. package/build/dist/Types/Rules/RuleRun.js.map +1 -1
  524. package/build/dist/Types/Telemetry/EntityType.js +23 -0
  525. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  526. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js +14 -0
  527. package/build/dist/Types/Telemetry/ResourceFacetCatalog.js.map +1 -1
  528. package/build/dist/Types/Telemetry/ServiceType.js +8 -0
  529. package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
  530. package/build/dist/UI/Components/Banner/Banner.js +1 -1
  531. package/build/dist/UI/Components/Banner/Banner.js.map +1 -1
  532. package/build/dist/UI/Components/Card/Card.js +1 -1
  533. package/build/dist/UI/Components/Card/Card.js.map +1 -1
  534. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +2 -2
  535. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  536. package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
  537. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  538. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +1 -1
  539. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -1
  540. package/build/dist/UI/Components/Date/StartAndEndDate.js +5 -5
  541. package/build/dist/UI/Components/Date/StartAndEndDate.js.map +1 -1
  542. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js +1 -1
  543. package/build/dist/UI/Components/Diagram/HorizontalStepChain.js.map +1 -1
  544. package/build/dist/UI/Components/Feed/FeedOptionsButton.js +1 -1
  545. package/build/dist/UI/Components/Feed/FeedOptionsButton.js.map +1 -1
  546. package/build/dist/UI/Components/Forms/BasicForm.js +1 -1
  547. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  548. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +1 -1
  549. package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
  550. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js +1 -1
  551. package/build/dist/UI/Components/HeaderAlert/HeaderAlert.js.map +1 -1
  552. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js +1 -1
  553. package/build/dist/UI/Components/LogsViewer/components/FacetValueRow.js.map +1 -1
  554. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +1 -1
  555. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  556. package/build/dist/UI/Components/Modal/ModalFooter.js +1 -1
  557. package/build/dist/UI/Components/Modal/ModalFooter.js.map +1 -1
  558. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +2 -2
  559. package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
  560. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +4 -4
  561. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  562. package/build/dist/UI/Components/Navbar/NavBar.js +9 -2
  563. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  564. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +2 -2
  565. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  566. package/build/dist/UI/Components/Page/Page.js +1 -1
  567. package/build/dist/UI/Components/Page/Page.js.map +1 -1
  568. package/build/dist/UI/Components/Pagination/Pagination.js +3 -3
  569. package/build/dist/UI/Components/Pagination/Pagination.js.map +1 -1
  570. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js +1 -1
  571. package/build/dist/UI/Components/ProgressButtons/ProgressButtonItem.js.map +1 -1
  572. package/build/dist/UI/Components/SideMenu/SideMenu.js +4 -1
  573. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  574. package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js +3 -1
  575. package/build/dist/UI/Components/StatusPage/ResourceGroupNavigator.js.map +1 -1
  576. package/build/dist/UI/Components/StatusPage/ResourceList.js +6 -6
  577. package/build/dist/UI/Components/StatusPage/ResourceList.js.map +1 -1
  578. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +1 -1
  579. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  580. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js +1 -1
  581. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetValueRow.js.map +1 -1
  582. package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js +1 -1
  583. package/build/dist/UI/Components/Workflow/ColumnEditor/ModelQueryBuilder.js.map +1 -1
  584. package/build/dist/UI/Components/Workflow/ComponentsModal.js +2 -2
  585. package/build/dist/UI/Components/Workflow/ComponentsModal.js.map +1 -1
  586. package/build/dist/UI/Components/Workflow/StepTraceViewer.js +1 -1
  587. package/build/dist/UI/Components/Workflow/StepTraceViewer.js.map +1 -1
  588. package/build/dist/UI/Utils/Navigation.js +66 -33
  589. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  590. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js +7 -0
  591. package/build/dist/UI/Utils/Telemetry/TelemetryEntityNames.js.map +1 -1
  592. package/build/dist/UI/Utils/TelemetryService.js +3 -2
  593. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  594. package/build/dist/Utils/LabelRuleImportExport.js +2 -0
  595. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
  596. package/build/dist/Utils/MetricUnitUtil.js +77 -13
  597. package/build/dist/Utils/MetricUnitUtil.js.map +1 -1
  598. package/build/dist/Utils/Monitor/MetricValueFormatter.js +58 -13
  599. package/build/dist/Utils/Monitor/MetricValueFormatter.js.map +1 -1
  600. package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js +161 -0
  601. package/build/dist/Utils/Monitor/PlatformMetricUnitUtil.js.map +1 -0
  602. package/build/dist/Utils/Monitor/PlatformResourceIdentity.js +323 -0
  603. package/build/dist/Utils/Monitor/PlatformResourceIdentity.js.map +1 -0
  604. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js +270 -0
  605. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostNamingDiagnosis.js.map +1 -0
  606. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js +23 -0
  607. package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js.map +1 -1
  608. package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js +61 -0
  609. package/build/dist/Utils/NetworkDiscovery/NetbiosNameUtil.js.map +1 -1
  610. package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js +178 -0
  611. package/build/dist/Utils/Telemetry/DatabaseServerEntityKeys.js.map +1 -0
  612. package/build/dist/Utils/Telemetry/EntityKey.js +133 -0
  613. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  614. package/build/dist/Utils/ValueFormatter.js +15 -0
  615. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  616. package/package.json +1 -1
  617. package/tsconfig.tests.json +7 -5
@@ -5,6 +5,8 @@ import EntityType from "../../../Types/Telemetry/EntityType";
5
5
  import ServiceType from "../../../Types/Telemetry/ServiceType";
6
6
  import { canonicalizeEntityValue, computeEntityKey, } from "../../../Utils/Telemetry/EntityKey";
7
7
  import { isLoopbackHost, normalizeHost, } from "../../../Utils/Telemetry/NetworkHost";
8
+ import { DATABASE_INSTANCE_NAME_ATTRIBUTE, DATABASE_NAMESPACE_ATTRIBUTE, NETWORK_SCOPED_NAME_SUFFIXES, formatDatabaseEndpoint, parseHostAndPort, } from "../../../Types/DatabaseServer/DatabaseEndpoint";
9
+ import { DATABASE_ADDRESS_ATTRIBUTES, DATABASE_PORT_ATTRIBUTES, DATABASE_SYSTEM_ATTRIBUTES, resolveDatabaseCallTarget, } from "../../../Types/DatabaseServer/DatabaseTelemetryResolver";
8
10
  export { isLoopbackHost, normalizeHost };
9
11
  /*
10
12
  * Service dependency discovery — the pure half of the
@@ -57,6 +59,142 @@ export function isUuid(value) {
57
59
  export function escapeSql(value) {
58
60
  return value.replace(/\\/g, "\\\\").replace(/'/g, "\\'");
59
61
  }
62
+ /*
63
+ * The SQL both span-table discovery queries read a database call with — the
64
+ * dependency query below and DatabaseEndpointDiscovery's — kept here, the
65
+ * lower of the two modules, so neither imports the other in a cycle.
66
+ * DatabaseEndpointDiscovery re-exports them.
67
+ */
68
+ // Stored span rows carry resource attributes under a `resource.` prefix.
69
+ export const CALLER_NAMESPACE_ATTRIBUTE = "resource.k8s.namespace.name";
70
+ export const CALLER_CLUSTER_ATTRIBUTE = "resource.k8s.cluster.name";
71
+ /**
72
+ * `multiIf(attributes['a'] != '', attributes['a'], …, '')` — the first
73
+ * attribute that is present and not the empty string, exactly the
74
+ * `firstPresent` rule of the ingest resolver.
75
+ */
76
+ export function firstNonEmptyAttributeSql(keys) {
77
+ const branches = keys.map((key) => {
78
+ const attribute = `attributes['${escapeSql(key)}']`;
79
+ return `${attribute} != '', ${attribute}`;
80
+ });
81
+ return `multiIf(${[...branches, "''"].join(", ")})`;
82
+ }
83
+ /**
84
+ * The SQL Server instance a span names beside its address, in SQL — the
85
+ * twin of readDatabaseInstanceName without its engine check (the resolver
86
+ * ignores the value for any other engine): `db.mssql.instance_name`, else
87
+ * the part of `db.namespace` before its first "|", else ''.
88
+ */
89
+ export function databaseInstanceSql() {
90
+ const instanceName = `attributes['${escapeSql(DATABASE_INSTANCE_NAME_ATTRIBUTE)}']`;
91
+ const namespace = `attributes['${escapeSql(DATABASE_NAMESPACE_ATTRIBUTE)}']`;
92
+ return `multiIf(${instanceName} != '', ${instanceName}, position(${namespace}, '|') > 0, splitByChar('|', ${namespace})[1], '')`;
93
+ }
94
+ /*
95
+ * Private IPv4 ranges (RFC 1918 and CGNAT 100.64/10, leading zeros
96
+ * tolerated), IPv4 link-local 169.254/16, IPv6 unique-local (fc00::/7) and
97
+ * link-local (fe80::/10) addresses and IPv4-mapped IPv6, at the start of the
98
+ * address or after a URL / userinfo / SQL Server `tcp:` / IPv6 bracket
99
+ * boundary. Matched against the LOWERCASED address. Written in the regex
100
+ * subset RE2 (ClickHouse `match`) and JavaScript agree on, so the tests can
101
+ * run the exact pattern the query runs.
102
+ *
103
+ * A superset on purpose: over-matching (a public IPv6 address with an
104
+ * `fc..:` group, say) only keeps the caller's cluster in the grouping,
105
+ * which the canonicalization then ignores.
106
+ */
107
+ export const PRIVATE_IP_ADDRESS_PATTERN = [
108
+ "(?:^|[/@:]|\\[)",
109
+ "(?:",
110
+ "0*10[.]",
111
+ "|0*192[.]0*168[.]",
112
+ "|0*172[.]0*(?:1[6-9]|2[0-9]|3[01])[.]",
113
+ "|0*100[.]0*(?:6[4-9]|[7-9][0-9]|1[01][0-9]|12[0-7])[.]",
114
+ "|0*169[.]0*254[.]",
115
+ "|f[cd][0-9a-f]{0,2}:",
116
+ "|fe[89ab][0-9a-f]:",
117
+ "|[0:]*:ffff:",
118
+ ")",
119
+ ].join("");
120
+ /*
121
+ * A plain `host[:port]`: hostname labels and an optional numeric port,
122
+ * nothing else. Only such an address is classified precisely; anything else
123
+ * keeps the whole caller context. RE2 and JavaScript agree on it.
124
+ */
125
+ export const PLAIN_HOST_ADDRESS_PATTERN = "^[a-z0-9_-]+(?:[.][a-z0-9_-]+)*(?::[0-9]*)?$";
126
+ // A label ending in `-<digits>`: a StatefulSet pod such as `mongo-0`.
127
+ export const ORDINAL_SUFFIX_PATTERN = "-[0-9]+$";
128
+ /*
129
+ * "Not blank" exactly as JavaScript's String.prototype.trim sees it: any
130
+ * character outside its whitespace set (ASCII whitespace, NBSP, the
131
+ * Unicode space separators, the line / paragraph separators and the BOM).
132
+ * RE2 syntax; the TypeScript side simply trims.
133
+ */
134
+ export const NON_BLANK_TEXT_PATTERN = "[^\\t\\n\\v\\f\\r \\x{A0}\\x{1680}\\x{2000}-\\x{200A}\\x{2028}\\x{2029}\\x{202F}\\x{205F}\\x{3000}\\x{FEFF}]";
135
+ /**
136
+ * The caller's Kubernetes context a database call keeps, over `addressSql`
137
+ * — the raw address the call named, decided on lowercased — shared by both
138
+ * span-table discovery queries. The context only changes the canonical
139
+ * endpoint of some addresses, so each column keeps it ONLY for those and is
140
+ * '' (or 0) otherwise — a thousand pods, namespaces or clusters calling one
141
+ * `orders.cjd8.eu-west-1.rds.amazonaws.com` all keep the same nothing:
142
+ *
143
+ * - anything that is not a plain `host[:port]` (a URL, a host list, JDBC
144
+ * properties, userinfo, a trailing dot, IPv6, `host\instance`, …) keeps
145
+ * the namespace AND the cluster: the host inside it could be anything;
146
+ * - a plain single-label host keeps both (it expands to
147
+ * `<name>.<namespace>.svc.cluster.local`);
148
+ * - a plain two-label host keeps the cluster and one flag, "the caller has
149
+ * a namespace", because from a pod `<service>.<namespace>` resolves
150
+ * through the cluster's DNS whichever namespace the pod is in — plus the
151
+ * namespace itself when the first label is a StatefulSet pod
152
+ * (`mongo-0.mongo-headless`, a member of the caller's own namespace);
153
+ * - Kubernetes Service DNS (a `svc` label), the private DNS zones
154
+ * (NETWORK_SCOPED_NAME_SUFFIXES) and private / link-local IPv4 keep the
155
+ * cluster — the hosts every cluster or network has its own copy of.
156
+ *
157
+ * The predicates are deliberately a superset of the canonicalization rules
158
+ * (keeping context canonicalization ignores costs a group, dropping context
159
+ * it needs would change the endpoint);
160
+ * DatabaseEndpointDiscovery.getDatabaseEndpointCallerContextNeeds is their
161
+ * TypeScript twin — keep them in step.
162
+ */
163
+ export function databaseCallerContextSql(addressSql) {
164
+ const address = `lower(${addressSql})`;
165
+ const hostPart = `splitByChar(':', ${address})[1]`;
166
+ const labels = `splitByChar('.', ${hostPart})`;
167
+ const labelCount = `length(${labels})`;
168
+ const plainAddress = `match(${address}, '${escapeSql(PLAIN_HOST_ADDRESS_PATTERN)}')`;
169
+ const namespaceAttribute = `attributes['${escapeSql(CALLER_NAMESPACE_ATTRIBUTE)}']`;
170
+ const clusterAttribute = `attributes['${escapeSql(CALLER_CLUSTER_ATTRIBUTE)}']`;
171
+ const networkScopedName = NETWORK_SCOPED_NAME_SUFFIXES.map((suffix) => {
172
+ return `endsWith(${hostPart}, '${escapeSql(suffix)}')`;
173
+ }).join(" OR ");
174
+ return {
175
+ callerNamespace: `if(
176
+ NOT ${plainAddress}
177
+ OR ${labelCount} = 1
178
+ OR (${labelCount} = 2 AND match(${labels}[1], '${escapeSql(ORDINAL_SUFFIX_PATTERN)}')),
179
+ ${namespaceAttribute},
180
+ ''
181
+ )`,
182
+ callerInKubernetes: `if(
183
+ ${plainAddress} AND ${labelCount} = 2,
184
+ match(${namespaceAttribute}, '${escapeSql(NON_BLANK_TEXT_PATTERN)}'),
185
+ 0
186
+ )`,
187
+ callerCluster: `if(
188
+ NOT ${plainAddress}
189
+ OR ${labelCount} <= 2
190
+ OR has(${labels}, 'svc')
191
+ OR ${networkScopedName}
192
+ OR match(${address}, '${escapeSql(PRIVATE_IP_ADDRESS_PATTERN)}'),
193
+ ${clusterAttribute},
194
+ ''
195
+ )`,
196
+ };
197
+ }
60
198
  const SPAN_TABLE = `oneuptime.${AnalyticsTableName.Span}`;
61
199
  const METRIC_TABLE = `oneuptime.${AnalyticsTableName.Metric}`;
62
200
  const ENTRY_KINDS_SQL = `('${SpanKind.Server}', '${SpanKind.Consumer}')`;
@@ -115,6 +253,12 @@ export function buildTraceLinkedDependencySql(window) {
115
253
  ${QUERY_SETTINGS}
116
254
  `;
117
255
  }
256
+ /*
257
+ * Cap on the distinct database servers (dbTargets) one client-span
258
+ * dependency row keeps. A row whose list is full may have been cut short,
259
+ * so it never names one server (see describeDependencyDatabaseServer).
260
+ */
261
+ export const MAX_DATABASE_TARGETS_PER_ROW = 16;
118
262
  /**
119
263
  * Source 2: CLIENT / PRODUCER spans with no client/server child — calls into
120
264
  * something that did not report a span of its own. Requiring the span to be
@@ -125,46 +269,85 @@ export function buildTraceLinkedDependencySql(window) {
125
269
  * The target is summarized in SQL to a handful of low-cardinality semconv
126
270
  * attributes (old and new names both) so the grouping stays bounded: the
127
271
  * address of an HTTP call falls back from `server.address` to the host of
128
- * the URL, never to the URL itself.
272
+ * the URL, never to the URL itself. Rows are grouped on exactly the columns
273
+ * a node is keyed by, so there is ONE row per (caller, node), and the row
274
+ * cap is shared fairly between databases, HTTP APIs, brokers and RPC peers.
275
+ *
276
+ * A database call also keeps what the ingest resolver
277
+ * (resolveDatabaseCallTarget) reads to find the database SERVER it called —
278
+ * the address, port and SQL Server instance with the resolver's precedence,
279
+ * and the caller's Kubernetes context where it can change the endpoint
280
+ * (databaseCallerContextSql) — so its node can say which server that is
281
+ * (see describeDependencyDatabaseServer). None of them is part of a node's
282
+ * identity, so they are AGGREGATED, never grouped on: `dbTargets` lists the
283
+ * distinct servers the row's calls named (at most
284
+ * MAX_DATABASE_TARGETS_PER_ROW). A database reached from a hundred
285
+ * namespaces, pods, IPs or ports is still one row.
129
286
  */
130
287
  export function buildClientSpanDependencySql(window) {
288
+ const databaseOnly = (sql, otherwise = "''") => {
289
+ return `if(dbSystem != '', ${sql}, ${otherwise})`;
290
+ };
291
+ const callerContext = databaseCallerContextSql("dbServerAddress");
131
292
  return `
132
293
  SELECT
133
- primaryEntityId AS callerServiceId,
134
- multiIf(attributes['db.system.name'] != '', attributes['db.system.name'], attributes['db.system']) AS dbSystem,
135
- multiIf(attributes['db.namespace'] != '', attributes['db.namespace'], attributes['db.name']) AS dbNamespace,
136
- attributes['messaging.system'] AS messagingSystem,
137
- attributes['peer.service'] AS peerService,
138
- attributes['rpc.system'] AS rpcSystem,
139
- attributes['rpc.service'] AS rpcService,
140
- multiIf(
141
- attributes['server.address'] != '', attributes['server.address'],
142
- attributes['net.peer.name'] != '', attributes['net.peer.name'],
143
- attributes['http.host'] != '', attributes['http.host'],
144
- attributes['url.full'] != '', domain(attributes['url.full']),
145
- attributes['http.url'] != '', domain(attributes['http.url']),
146
- ''
147
- ) AS serverAddress,
148
- if(attributes['http.request.method'] != '' OR attributes['http.method'] != '', 1, 0) AS isHttp,
294
+ callerServiceId,
295
+ dbSystem,
296
+ dbNamespace,
297
+ messagingSystem,
298
+ peerService,
299
+ rpcSystem,
300
+ rpcService,
301
+ serverAddress,
302
+ isHttp,
303
+ groupUniqArrayIf(${MAX_DATABASE_TARGETS_PER_ROW})([dbServerAddress, serverPort, dbInstance, callerNamespace, toString(callerInKubernetes), callerCluster], dbSystem != '') AS dbTargets,
149
304
  count() AS callCount,
150
305
  countIf(statusCode = 2) AS errorCount,
151
306
  avg(durationUnixNano) AS avgDurationNano
152
- FROM ${SPAN_TABLE}
153
- WHERE ${projectAndServiceFilter(window)}
154
- AND startTime >= ${window.startSql}
155
- AND startTime < ${window.endSql}
156
- AND kind IN ${OUTBOUND_KINDS_SQL}
157
- AND (traceId, spanId) NOT IN (
158
- SELECT traceId, parentSpanId
159
- FROM ${SPAN_TABLE}
160
- WHERE projectId = '${escapeSql(window.projectId)}'
161
- AND startTime >= ${window.startSql}
162
- AND startTime < ${window.endSql} + INTERVAL ${PARENT_LOOKBACK_MINUTES} MINUTE
163
- AND kind IN ${CALL_KINDS_SQL}
164
- AND parentSpanId IS NOT NULL
165
- AND parentSpanId != ''
166
- LIMIT ${window.maxEntrySpans}
167
- )
307
+ FROM
308
+ (
309
+ SELECT
310
+ primaryEntityId AS callerServiceId,
311
+ multiIf(attributes['db.system.name'] != '', attributes['db.system.name'], attributes['db.system']) AS dbSystem,
312
+ multiIf(attributes['db.namespace'] != '', attributes['db.namespace'], attributes['db.name']) AS dbNamespace,
313
+ attributes['messaging.system'] AS messagingSystem,
314
+ attributes['peer.service'] AS peerService,
315
+ attributes['rpc.system'] AS rpcSystem,
316
+ attributes['rpc.service'] AS rpcService,
317
+ multiIf(
318
+ attributes['server.address'] != '', attributes['server.address'],
319
+ attributes['net.peer.name'] != '', attributes['net.peer.name'],
320
+ attributes['http.host'] != '', attributes['http.host'],
321
+ attributes['url.full'] != '', domain(attributes['url.full']),
322
+ attributes['http.url'] != '', domain(attributes['http.url']),
323
+ ''
324
+ ) AS serverAddress,
325
+ if(attributes['http.request.method'] != '' OR attributes['http.method'] != '', 1, 0) AS isHttp,
326
+ ${databaseOnly(firstNonEmptyAttributeSql(DATABASE_ADDRESS_ATTRIBUTES))} AS dbServerAddress,
327
+ ${databaseOnly(firstNonEmptyAttributeSql(DATABASE_PORT_ATTRIBUTES))} AS serverPort,
328
+ ${databaseOnly(databaseInstanceSql())} AS dbInstance,
329
+ ${databaseOnly(callerContext.callerNamespace)} AS callerNamespace,
330
+ ${databaseOnly(callerContext.callerInKubernetes, "0")} AS callerInKubernetes,
331
+ ${databaseOnly(callerContext.callerCluster)} AS callerCluster,
332
+ statusCode,
333
+ durationUnixNano
334
+ FROM ${SPAN_TABLE}
335
+ WHERE ${projectAndServiceFilter(window)}
336
+ AND startTime >= ${window.startSql}
337
+ AND startTime < ${window.endSql}
338
+ AND kind IN ${OUTBOUND_KINDS_SQL}
339
+ AND (traceId, spanId) NOT IN (
340
+ SELECT traceId, parentSpanId
341
+ FROM ${SPAN_TABLE}
342
+ WHERE projectId = '${escapeSql(window.projectId)}'
343
+ AND startTime >= ${window.startSql}
344
+ AND startTime < ${window.endSql} + INTERVAL ${PARENT_LOOKBACK_MINUTES} MINUTE
345
+ AND kind IN ${CALL_KINDS_SQL}
346
+ AND parentSpanId IS NOT NULL
347
+ AND parentSpanId != ''
348
+ LIMIT ${window.maxEntrySpans}
349
+ )
350
+ )
168
351
  GROUP BY callerServiceId, dbSystem, dbNamespace, messagingSystem, peerService, rpcSystem, rpcService, serverAddress, isHttp
169
352
  ORDER BY callCount DESC
170
353
  LIMIT ${window.maxRows}
@@ -262,6 +445,214 @@ function nonEmpty(value) {
262
445
  const trimmed = (value || "").trim();
263
446
  return trimmed.length > 0 ? trimmed : null;
264
447
  }
448
+ /*
449
+ * What a Database dependency node says about the database SERVER its calls
450
+ * reached, for the Service Map's "Open database" link (ResolveTypedRowLink
451
+ * prefers these): the canonical endpoint ingest keyed the calls with
452
+ * (formatDatabaseEndpoint, `@cluster` included) and the port the calls
453
+ * named. DESCRIPTIVE only — a node stays keyed by what its spans said
454
+ * (engine, host, logical database), so these never change its identity.
455
+ * '' means the node's calls reached more than one server, or more than
456
+ * could be told apart (see describeDependencyDatabaseServer and
457
+ * mergeDependencyEntityDescriptions).
458
+ */
459
+ export const DATABASE_ENDPOINT_DESCRIPTIVE_ATTRIBUTE = "oneuptime.database.endpoint";
460
+ export const DATABASE_PORT_DESCRIPTIVE_ATTRIBUTE = "server.port";
461
+ const DIGITS_ONLY_REGEX = /^\d+$/;
462
+ function readPort(value) {
463
+ const text = typeof value === "number"
464
+ ? String(value)
465
+ : typeof value === "string"
466
+ ? value.trim()
467
+ : "";
468
+ if (!DIGITS_ONLY_REGEX.test(text)) {
469
+ return null;
470
+ }
471
+ const port = Number(text);
472
+ return port >= 1 && port <= 65535 ? port : null;
473
+ }
474
+ function readColumn(value) {
475
+ if (typeof value === "string") {
476
+ return value;
477
+ }
478
+ if (typeof value === "number" || typeof value === "boolean") {
479
+ return String(value);
480
+ }
481
+ return "";
482
+ }
483
+ function isFlagSet(value) {
484
+ return value === true || value === 1 || value === "1" || value === "true";
485
+ }
486
+ /**
487
+ * A row's `dbTargets`, read: every entry that is a list of columns, in the
488
+ * query's column order, a missing or malformed column read as none. Empty
489
+ * for a row that is not a database call, or that has no such column.
490
+ */
491
+ export function readDependencyDatabaseTargets(row) {
492
+ const entries = row && typeof row === "object" ? row.dbTargets : [];
493
+ if (!Array.isArray(entries)) {
494
+ return [];
495
+ }
496
+ const targets = [];
497
+ for (const entry of entries) {
498
+ if (!Array.isArray(entry)) {
499
+ continue;
500
+ }
501
+ const columns = entry;
502
+ targets.push({
503
+ address: readColumn(columns[0]),
504
+ port: readColumn(columns[1]),
505
+ instance: readColumn(columns[2]),
506
+ callerNamespace: readColumn(columns[3]),
507
+ callerInKubernetes: isFlagSet(columns[4]),
508
+ callerCluster: readColumn(columns[5]),
509
+ });
510
+ }
511
+ return targets;
512
+ }
513
+ /**
514
+ * The database server one target of a client-span dependency row named —
515
+ * exactly the endpoint ingest keyed its spans with: the target goes through
516
+ * resolveDatabaseCallTarget, the ingest resolver itself, with the caller
517
+ * context the query kept (the flag included), as DatabaseEndpointDiscovery
518
+ * does. Null when it names none: not a database call, or a loopback,
519
+ * host-relative or unreadable address.
520
+ */
521
+ export function resolveDependencyDatabaseEndpoint(data) {
522
+ var _a, _b;
523
+ if (!data || !data.target || typeof data.target !== "object") {
524
+ return null;
525
+ }
526
+ const target = data.target;
527
+ const attributes = {
528
+ [DATABASE_SYSTEM_ATTRIBUTES[0]]: data.dbSystem,
529
+ [DATABASE_ADDRESS_ATTRIBUTES[0]]: target.address,
530
+ [DATABASE_PORT_ATTRIBUTES[0]]: target.port,
531
+ [DATABASE_INSTANCE_NAME_ATTRIBUTE]: target.instance,
532
+ };
533
+ const caller = {
534
+ kubernetesNamespace: nonEmpty(target.callerNamespace),
535
+ kubernetesClusterName: nonEmpty(target.callerCluster),
536
+ hostName: null,
537
+ // Only the collector purpose reads it; a client call never does.
538
+ isEphemeral: true,
539
+ runsInKubernetes: target.callerInKubernetes === true,
540
+ };
541
+ const resolved = resolveDatabaseCallTarget({
542
+ getAttribute: (key) => {
543
+ return attributes[key];
544
+ },
545
+ caller: caller,
546
+ });
547
+ if (!resolved) {
548
+ return null;
549
+ }
550
+ // Named exactly as the resolver reads it: the port attribute, else the address's.
551
+ const address = parseHostAndPort(target.address);
552
+ return {
553
+ endpoint: formatDatabaseEndpoint(resolved.endpoint),
554
+ port: (_b = (_a = readPort(target.port)) !== null && _a !== void 0 ? _a : address === null || address === void 0 ? void 0 : address.port) !== null && _b !== void 0 ? _b : null,
555
+ };
556
+ }
557
+ /*
558
+ * Two descriptions of one node → one: the server is kept only while both
559
+ * name the same endpoint (and the same port, "none" included); any
560
+ * disagreement is '' — ambiguous — and stays so.
561
+ */
562
+ function combineDatabaseServers(first, second) {
563
+ if (!first || !second) {
564
+ return first || second;
565
+ }
566
+ return {
567
+ endpoint: first.endpoint === second.endpoint ? first.endpoint : "",
568
+ port: first.port === second.port ? first.port : "",
569
+ };
570
+ }
571
+ /**
572
+ * The database server a client-span dependency row's calls reached: each
573
+ * of its targets resolved (resolveDependencyDatabaseEndpoint) and combined
574
+ * like the sightings of a node (mergeDependencyEntityDescriptions) — a
575
+ * target that names no server contradicts nothing, targets that disagree
576
+ * leave '' (ambiguous). A row whose target list is full
577
+ * (MAX_DATABASE_TARGETS_PER_ROW) may have been cut short, so it is
578
+ * ambiguous whatever the targets it kept say. Null when the row names no
579
+ * server at all.
580
+ */
581
+ export function describeDependencyDatabaseServer(row) {
582
+ if (!row || typeof row !== "object" || !nonEmpty(row.dbSystem)) {
583
+ return null;
584
+ }
585
+ const targets = readDependencyDatabaseTargets(row);
586
+ if (targets.length === 0) {
587
+ return null;
588
+ }
589
+ if (Array.isArray(row.dbTargets) &&
590
+ row.dbTargets.length >= MAX_DATABASE_TARGETS_PER_ROW) {
591
+ return { endpoint: "", port: "" };
592
+ }
593
+ let server = null;
594
+ for (const target of targets) {
595
+ const resolved = resolveDependencyDatabaseEndpoint({
596
+ dbSystem: row.dbSystem,
597
+ target: target,
598
+ });
599
+ if (resolved) {
600
+ server = combineDatabaseServers(server, {
601
+ endpoint: resolved.endpoint,
602
+ port: resolved.port === null ? null : String(resolved.port),
603
+ });
604
+ }
605
+ }
606
+ return server;
607
+ }
608
+ function readDatabaseServerDescription(attributes) {
609
+ const endpoint = attributes[DATABASE_ENDPOINT_DESCRIPTIVE_ATTRIBUTE];
610
+ if (typeof endpoint !== "string") {
611
+ return null;
612
+ }
613
+ const port = attributes[DATABASE_PORT_DESCRIPTIVE_ATTRIBUTE];
614
+ return { endpoint: endpoint, port: typeof port === "string" ? port : null };
615
+ }
616
+ /**
617
+ * Two sightings of one dependency node in one run → one description. A
618
+ * node is keyed by what its callers' spans said (engine, host, logical
619
+ * database), so it can stand for more than one database server: two ports
620
+ * on one host, or a short Kubernetes name (`postgres`) that is another
621
+ * Service in each caller's namespace. The server is therefore described
622
+ * only while every sighting that names one names the same endpoint (and
623
+ * the same port, "none" included); sightings that disagree leave '' —
624
+ * ambiguous — which also overwrites what an earlier run stamped, since
625
+ * descriptive attributes merge key by key, last writer wins. The Service
626
+ * Map then never opens one of several databases as if it were the only
627
+ * one. A sighting that names no server (its address did not resolve)
628
+ * contradicts nothing. Every other attribute: the later sighting wins.
629
+ */
630
+ export function mergeDependencyEntityDescriptions(earlier, later) {
631
+ const before = earlier.descriptiveAttributes || {};
632
+ const after = later.descriptiveAttributes || {};
633
+ const merged = {};
634
+ for (const [key, value] of Object.entries(Object.assign(Object.assign({}, before), after))) {
635
+ if (key !== DATABASE_ENDPOINT_DESCRIPTIVE_ATTRIBUTE &&
636
+ key !== DATABASE_PORT_DESCRIPTIVE_ATTRIBUTE) {
637
+ merged[key] = value;
638
+ }
639
+ }
640
+ const server = combineDatabaseServers(readDatabaseServerDescription(before), readDatabaseServerDescription(after));
641
+ if (server) {
642
+ merged[DATABASE_ENDPOINT_DESCRIPTIVE_ATTRIBUTE] = server.endpoint;
643
+ if (server.port !== null) {
644
+ merged[DATABASE_PORT_DESCRIPTIVE_ATTRIBUTE] = server.port;
645
+ }
646
+ }
647
+ const result = Object.assign({}, later);
648
+ if (Object.keys(merged).length > 0) {
649
+ result.descriptiveAttributes = merged;
650
+ }
651
+ else {
652
+ delete result.descriptiveAttributes;
653
+ }
654
+ return result;
655
+ }
265
656
  function matchKnownService(names, knownServiceNames) {
266
657
  for (const name of names) {
267
658
  const canonical = canonicalizeEntityValue(name);
@@ -297,14 +688,25 @@ export function resolveClientSpanTarget(row, knownServiceNames) {
297
688
  identifyingAttributes["db.namespace"] =
298
689
  canonicalizeEntityValue(namespace);
299
690
  }
691
+ const descriptiveAttributes = {
692
+ "db.system.name": canonicalizeEntityValue(dbSystem),
693
+ };
694
+ // Which server the calls reached: descriptive, never identifying.
695
+ const server = describeDependencyDatabaseServer(row);
696
+ if (server) {
697
+ descriptiveAttributes[DATABASE_ENDPOINT_DESCRIPTIVE_ATTRIBUTE] =
698
+ server.endpoint;
699
+ if (server.port !== null) {
700
+ descriptiveAttributes[DATABASE_PORT_DESCRIPTIVE_ATTRIBUTE] =
701
+ server.port;
702
+ }
703
+ }
300
704
  return {
301
705
  kind: "dependency",
302
706
  entity: {
303
707
  entityType: EntityType.Database,
304
708
  identifyingAttributes,
305
- descriptiveAttributes: {
306
- "db.system.name": canonicalizeEntityValue(dbSystem),
307
- },
709
+ descriptiveAttributes,
308
710
  },
309
711
  };
310
712
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceDependencyDiscovery.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/ServiceDependencyDiscovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServiceDependencyDiscovery.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/ServiceDependencyDiscovery.ts"],"names":[],"mappings":"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"}
@@ -346,6 +346,18 @@ export default class TelemetryUtil {
346
346
  "oneuptime.kubernetes.cluster.name": data.clusterName,
347
347
  };
348
348
  }
349
+ /*
350
+ * Stamped on rows from a database's own telemetry (collector / Database
351
+ * Agent receiver batches), like oneuptime.host.id. A metric monitor
352
+ * series grouped by oneuptime.database.server.id links the incident or
353
+ * alert it opens to that database (see SeriesResourceLinker).
354
+ */
355
+ static getAttributesForDatabaseServerIdAndName(data) {
356
+ return {
357
+ "oneuptime.database.server.id": data.databaseServerId.toString(),
358
+ "oneuptime.database.server.name": data.databaseServerName,
359
+ };
360
+ }
349
361
  static getAttributes(data) {
350
362
  const { items } = data;
351
363
  let { prefixKeysWithString } = data;