@oneuptime/common 14.0.9 → 14.0.11

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 (1146) hide show
  1. package/Models/DatabaseModels/AIConversation.ts +127 -1
  2. package/Models/DatabaseModels/AutoRemediationSuggestion.ts +60 -0
  3. package/Models/DatabaseModels/CephCluster.ts +225 -0
  4. package/Models/DatabaseModels/CloudResource.ts +12 -0
  5. package/Models/DatabaseModels/DatabaseServer.ts +225 -0
  6. package/Models/DatabaseModels/DockerHost.ts +225 -0
  7. package/Models/DatabaseModels/DockerSwarmCluster.ts +225 -0
  8. package/Models/DatabaseModels/GlobalConfig.ts +1 -1
  9. package/Models/DatabaseModels/GlobalOidc.ts +0 -4
  10. package/Models/DatabaseModels/GlobalOidcProject.ts +0 -4
  11. package/Models/DatabaseModels/GlobalSso.ts +0 -4
  12. package/Models/DatabaseModels/GlobalSsoProject.ts +0 -4
  13. package/Models/DatabaseModels/Host.ts +225 -0
  14. package/Models/DatabaseModels/IncidentForm.ts +594 -0
  15. package/Models/DatabaseModels/IncidentFormSubmission.ts +283 -0
  16. package/Models/DatabaseModels/IncidentTemplate.ts +59 -0
  17. package/Models/DatabaseModels/Index.ts +16 -0
  18. package/Models/DatabaseModels/IoTFleet.ts +12 -0
  19. package/Models/DatabaseModels/KubernetesCluster.ts +12 -0
  20. package/Models/DatabaseModels/MessageQueue.ts +1102 -0
  21. package/Models/DatabaseModels/MessageQueueLabelRule.ts +553 -0
  22. package/Models/DatabaseModels/MessageQueueOwnerRule.ts +633 -0
  23. package/Models/DatabaseModels/MessageQueueOwnerTeam.ts +491 -0
  24. package/Models/DatabaseModels/MessageQueueOwnerUser.ts +490 -0
  25. package/Models/DatabaseModels/PodmanHost.ts +225 -0
  26. package/Models/DatabaseModels/Project.ts +59 -0
  27. package/Models/DatabaseModels/ProjectOidc.ts +0 -4
  28. package/Models/DatabaseModels/ProjectSso.ts +0 -4
  29. package/Models/DatabaseModels/ProxmoxCluster.ts +225 -0
  30. package/Models/DatabaseModels/ResourceAiAgent.ts +419 -0
  31. package/Models/DatabaseModels/RumApplication.ts +12 -0
  32. package/Models/DatabaseModels/RunnerJob.ts +144 -0
  33. package/Models/DatabaseModels/ServerlessFunction.ts +12 -0
  34. package/Models/DatabaseModels/Service.ts +12 -0
  35. package/Models/DatabaseModels/StatusPageOidc.ts +0 -4
  36. package/Models/DatabaseModels/StatusPageSso.ts +0 -4
  37. package/Models/DatabaseModels/TeamComplianceSetting.ts +47 -2
  38. package/Models/DatabaseModels/VMwareVCenter.ts +225 -0
  39. package/Server/API/AIChatAPI.ts +13 -114
  40. package/Server/API/AIInvestigationAPI.ts +3 -3
  41. package/Server/API/AIInvestigationConversationAPI.ts +266 -0
  42. package/Server/API/AutoRemediationAPI.ts +392 -1
  43. package/Server/API/IncidentFormAPI.ts +376 -0
  44. package/Server/API/ProjectOIDC.ts +16 -25
  45. package/Server/API/ProjectSSO.ts +16 -24
  46. package/Server/API/ResourceAiAccessAPI.ts +1669 -0
  47. package/Server/API/StatusPageAPI.ts +42 -77
  48. package/Server/Enterprise/EnterpriseEdition.ts +93 -28
  49. package/Server/Enterprise/EnterpriseFeature.ts +25 -3
  50. package/Server/Enterprise/EnterpriseLicenseSnapshot.ts +1 -1
  51. package/Server/Enterprise/EnterpriseServerModule.ts +4 -1
  52. package/Server/EnvironmentConfig.ts +1 -1
  53. package/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.ts +423 -0
  54. package/Server/Infrastructure/Postgres/SchemaMigrations/1796400000000-AddIncidentForms.ts +129 -0
  55. package/Server/Infrastructure/Postgres/SchemaMigrations/1796500000000-AddTeamComplianceRuleNotificationChannels.ts +52 -0
  56. package/Server/Infrastructure/Postgres/SchemaMigrations/1796600000000-AddAIInvestigationConversationAndTimeLimits.ts +75 -0
  57. package/Server/Infrastructure/Postgres/SchemaMigrations/1796700000000-AddMessageQueueTables.ts +477 -0
  58. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  59. package/Server/Infrastructure/Semaphore.ts +22 -0
  60. package/Server/Middleware/IncidentFormRateLimit.ts +847 -0
  61. package/Server/Middleware/TelemetryIngest.ts +15 -5
  62. package/Server/Middleware/UserAuthorization.ts +16 -38
  63. package/Server/Services/AIService.ts +10 -13
  64. package/Server/Services/AnalyticsDatabaseService.ts +45 -1
  65. package/Server/Services/AutoRemediationRuleEngineService.ts +940 -112
  66. package/Server/Services/CephClusterService.ts +109 -1
  67. package/Server/Services/DatabaseServerService.ts +116 -1
  68. package/Server/Services/DockerHostService.ts +109 -1
  69. package/Server/Services/DockerSwarmClusterService.ts +113 -1
  70. package/Server/Services/HostService.ts +126 -4
  71. package/Server/Services/IncidentCustomFieldService.ts +112 -2
  72. package/Server/Services/IncidentEpisodeMemberService.ts +24 -4
  73. package/Server/Services/IncidentEpisodeService.ts +10 -1
  74. package/Server/Services/IncidentFormService.ts +1566 -0
  75. package/Server/Services/IncidentFormSubmissionService.ts +97 -0
  76. package/Server/Services/IncidentGroupingEngineService.ts +45 -8
  77. package/Server/Services/IncidentService.ts +123 -5
  78. package/Server/Services/IncidentTemplateService.ts +22 -0
  79. package/Server/Services/Index.ts +14 -0
  80. package/Server/Services/MessageQueueLabelRuleEngineService.ts +321 -0
  81. package/Server/Services/MessageQueueLabelRuleService.ts +14 -0
  82. package/Server/Services/MessageQueueOwnerRuleEngineService.ts +412 -0
  83. package/Server/Services/MessageQueueOwnerRuleService.ts +14 -0
  84. package/Server/Services/MessageQueueOwnerTeamService.ts +62 -0
  85. package/Server/Services/MessageQueueOwnerUserService.ts +62 -0
  86. package/Server/Services/MessageQueueService.ts +1463 -0
  87. package/Server/Services/MetricRecordingRuleService.ts +47 -0
  88. package/Server/Services/OpenTelemetryIngestService.ts +37 -4
  89. package/Server/Services/PodmanHostService.ts +109 -1
  90. package/Server/Services/ProjectService.ts +0 -59
  91. package/Server/Services/ProxmoxClusterService.ts +110 -1
  92. package/Server/Services/ResourceAiAccessService.ts +1439 -0
  93. package/Server/Services/ResourceAiAgentJobService.ts +202 -0
  94. package/Server/Services/ResourceAiAgentService.ts +2432 -0
  95. package/Server/Services/RunnerJobService.ts +611 -4
  96. package/Server/Services/StatusPagePrivateUserService.ts +1 -4
  97. package/Server/Services/StatusPageService.ts +1 -51
  98. package/Server/Services/TeamComplianceSettingService.ts +163 -42
  99. package/Server/Services/TelemetryUsageBillingService.ts +28 -0
  100. package/Server/Services/TraceRecordingRuleService.ts +33 -0
  101. package/Server/Services/UserNotificationRuleService.ts +8 -1
  102. package/Server/Services/VMwareVCenterService.ts +110 -1
  103. package/Server/Services/WorkspaceNotificationSummaryService.ts +12 -3
  104. package/Server/Types/Database/Permissions/CreatePermission.ts +17 -3
  105. package/Server/Types/Database/Permissions/EditionPermission.ts +140 -38
  106. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +16 -0
  107. package/Server/Types/Database/Permissions/TablePermission.ts +3 -3
  108. package/Server/Types/Database/Permissions/UpdatePermission.ts +20 -6
  109. package/Server/Utils/AI/Chat/AgentContextCompactor.ts +200 -0
  110. package/Server/Utils/AI/Chat/ChatAgentRunner.ts +307 -48
  111. package/Server/Utils/AI/Chat/ChatRunCancellation.ts +156 -0
  112. package/Server/Utils/AI/Chat/ObservabilityAssistant.ts +78 -18
  113. package/Server/Utils/AI/Chat/ObservabilityChatPrompt.ts +1 -1
  114. package/Server/Utils/AI/Chat/ToolOutputPager.ts +322 -0
  115. package/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.ts +88 -30
  116. package/Server/Utils/AI/ClusterAccess/KubectlJobRunner.ts +13 -1
  117. package/Server/Utils/AI/CodeFix/CodeFixReadiness.ts +0 -32
  118. package/Server/Utils/AI/CodeFix/FixRunBudget.ts +27 -25
  119. package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +1442 -34
  120. package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +968 -34
  121. package/Server/Utils/AI/Remediation/RemediationPlanRunner.ts +25 -1
  122. package/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.ts +622 -0
  123. package/Server/Utils/AI/ResourceAccess/ResourceAccessContext.ts +271 -0
  124. package/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.ts +45 -0
  125. package/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.ts +964 -0
  126. package/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.ts +333 -0
  127. package/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.ts +882 -0
  128. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +125 -12
  129. package/Server/Utils/AI/SRE/AlertInvestigationRunner.ts +99 -15
  130. package/Server/Utils/AI/SRE/IncidentInvestigationRunner.ts +99 -15
  131. package/Server/Utils/AI/SRE/InvestigationQueue.ts +16 -19
  132. package/Server/Utils/AI/SRE/InvestigationThread.ts +646 -0
  133. package/Server/Utils/AI/SRE/InvestigationThreadService.ts +715 -0
  134. package/Server/Utils/AI/Toolbox/Serializer.ts +10 -3
  135. package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +396 -13
  136. package/Server/Utils/AutoRemediation/RemediationVerifier.ts +35 -2
  137. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +9 -1
  138. package/Server/Utils/EditionEnforcement.ts +19 -202
  139. package/Server/Utils/LLM/LLMService.ts +259 -63
  140. package/Server/Utils/RelaxedScimTeamLocksReport.ts +245 -0
  141. package/Server/Utils/Rules/RuleRun/RuleRunRegistry.ts +25 -0
  142. package/Server/Utils/SameOriginRequest.ts +203 -0
  143. package/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.ts +920 -0
  144. package/Server/Utils/SessionReplay/SessionReplayUsage.ts +84 -6
  145. package/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.ts +2 -0
  146. package/Server/Utils/Telemetry/EntityRegistry.ts +4 -1
  147. package/Server/Utils/Telemetry/MessageQueueDiscovery.ts +1402 -0
  148. package/Server/Utils/Telemetry/ResourceEntityFilter.ts +4 -1
  149. package/Server/Utils/VendorAssets.ts +3 -3
  150. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.ts +35 -15
  151. package/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.ts +33 -15
  152. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.ts +21 -1
  153. package/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.ts +301 -225
  154. package/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.ts +38 -16
  155. package/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.ts +389 -175
  156. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +376 -144
  157. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.ts +163 -0
  158. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.ts +396 -0
  159. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.ts +418 -0
  160. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.ts +152 -0
  161. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.ts +251 -0
  162. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.ts +214 -0
  163. package/Tests/App/Accounts/IncidentFormPage.test.tsx +2036 -0
  164. package/Tests/App/Accounts/IncidentFormServerMessages.test.ts +119 -0
  165. package/Tests/App/Accounts/IncidentFormUtils.test.ts +1157 -0
  166. package/Tests/App/Accounts/LoginPasskey.test.tsx +6 -4
  167. package/Tests/App/Accounts/LoginSso.test.tsx +724 -0
  168. package/Tests/App/AdminDashboard/AdminAuthenticationRequireSso.test.tsx +338 -0
  169. package/Tests/App/AdminDashboard/AdminAuthenticationSsoCardLocales.test.tsx +331 -0
  170. package/Tests/App/AdminDashboard/AdminEnterprisePluginPage.test.tsx +47 -33
  171. package/Tests/App/AdminDashboard/GlobalSsoOidcPages.test.tsx +1021 -0
  172. package/Tests/App/Dashboard/AffectedResourcesDisplay.test.tsx +876 -78
  173. package/Tests/App/Dashboard/AffectedResourcesSlo.test.tsx +20 -3
  174. package/Tests/App/Dashboard/CephProxmoxVMwareDocumentationCards.test.tsx +359 -0
  175. package/Tests/App/Dashboard/CephSetupGuide.test.ts +961 -0
  176. package/Tests/App/Dashboard/CloudDocumentationCard.test.tsx +381 -95
  177. package/Tests/App/Dashboard/CloudSetupGuide.test.ts +1463 -0
  178. package/Tests/App/Dashboard/ClusterAccessNotice.test.tsx +267 -12
  179. package/Tests/App/Dashboard/ContainerSetupGuideCards.test.tsx +345 -0
  180. package/Tests/App/Dashboard/CoreListEmptyStates.test.tsx +501 -0
  181. package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +0 -1
  182. package/Tests/App/Dashboard/DatabaseDocumentationCard.test.tsx +400 -0
  183. package/Tests/App/Dashboard/DatabaseDocumentationMarkdown.test.ts +23 -6
  184. package/Tests/App/Dashboard/DatabaseSetupGuide.test.ts +1869 -0
  185. package/Tests/App/Dashboard/DatabaseTelemetryScope.test.ts +44 -0
  186. package/Tests/App/Dashboard/DatabaseTelemetryTabs.test.tsx +50 -9
  187. package/Tests/App/Dashboard/DockerSetupGuide.test.ts +899 -0
  188. package/Tests/App/Dashboard/DockerSwarmSetupGuide.test.ts +964 -0
  189. package/Tests/App/Dashboard/EnterpriseFeatureUpgrade.test.tsx +141 -7
  190. package/Tests/App/Dashboard/EnterprisePluginPage.test.tsx +52 -39
  191. package/Tests/App/Dashboard/EventOverviewPages.test.tsx +7 -1
  192. package/Tests/App/Dashboard/GettingStartedTaskRoutes.test.tsx +331 -0
  193. package/Tests/App/Dashboard/HomeOverviewStatsFirstRun.test.tsx +925 -0
  194. package/Tests/App/Dashboard/HostDocumentationCard.test.tsx +225 -0
  195. package/Tests/App/Dashboard/HostSetupGuide.test.ts +1183 -0
  196. package/Tests/App/Dashboard/IdentityEnterpriseShells.test.tsx +69 -45
  197. package/Tests/App/Dashboard/IncidentCreateTemplateCustomFieldSettings.test.tsx +745 -0
  198. package/Tests/App/Dashboard/IncidentCreateTemplateOwners.test.tsx +414 -0
  199. package/Tests/App/Dashboard/IncidentCustomFieldCreateSettingsForm.test.ts +1042 -0
  200. package/Tests/App/Dashboard/IncidentCustomFieldSettingsCard.test.tsx +1816 -0
  201. package/Tests/App/Dashboard/IncidentFormPlan.test.ts +89 -0
  202. package/Tests/App/Dashboard/IncidentFormShareLinkCard.test.tsx +846 -0
  203. package/Tests/App/Dashboard/IncidentFormsPages.test.tsx +1324 -0
  204. package/Tests/App/Dashboard/IncidentTemplateCustomFieldSettings.test.tsx +630 -0
  205. package/Tests/App/Dashboard/IncidentsSideMenu.test.tsx +13 -0
  206. package/Tests/App/Dashboard/IncomingEmailMonitorLinkVerifyHint.test.tsx +104 -0
  207. package/Tests/App/Dashboard/InvestigationConversation.test.tsx +1107 -0
  208. package/Tests/App/Dashboard/InvestigationConversationData.test.ts +546 -0
  209. package/Tests/App/Dashboard/InvestigationEvidenceList.test.tsx +170 -5
  210. package/Tests/App/Dashboard/InvestigationInfrastructureTools.test.tsx +506 -0
  211. package/Tests/App/Dashboard/InvestigationNotStarted.test.tsx +207 -2
  212. package/Tests/App/Dashboard/InvestigationPanel.test.tsx +729 -34
  213. package/Tests/App/Dashboard/InvestigationPanelStatus.test.tsx +9 -21
  214. package/Tests/App/Dashboard/InvestigationReportView.test.tsx +274 -37
  215. package/Tests/App/Dashboard/InvestigationStatusBadge.test.tsx +130 -0
  216. package/Tests/App/Dashboard/IoTDocumentationCard.test.tsx +218 -0
  217. package/Tests/App/Dashboard/IoTSetupGuide.test.ts +1124 -0
  218. package/Tests/App/Dashboard/KubernetesClusterAiAccessSettings.test.ts +20 -6
  219. package/Tests/App/Dashboard/KubernetesClusterAiDocumentationMarkdown.test.ts +107 -83
  220. package/Tests/App/Dashboard/KubernetesSetupGuide.test.ts +787 -0
  221. package/Tests/App/Dashboard/MessageQueueBreadcrumbs.test.tsx +228 -0
  222. package/Tests/App/Dashboard/MessageQueueBrokerHealth.test.tsx +1538 -0
  223. package/Tests/App/Dashboard/MessageQueueBrokerHealthMetricChart.test.tsx +969 -0
  224. package/Tests/App/Dashboard/MessageQueueBrokerHealthReads.test.ts +889 -0
  225. package/Tests/App/Dashboard/MessageQueueBrokerMetricsReach.test.ts +236 -0
  226. package/Tests/App/Dashboard/MessageQueueDocumentationCard.test.tsx +479 -0
  227. package/Tests/App/Dashboard/MessageQueueListPages.test.tsx +1232 -0
  228. package/Tests/App/Dashboard/MessageQueueMetricDescriptions.test.ts +244 -0
  229. package/Tests/App/Dashboard/MessageQueueMonitorLink.test.ts +952 -0
  230. package/Tests/App/Dashboard/MessageQueueMonitorLinkMonitorCreate.test.tsx +859 -0
  231. package/Tests/App/Dashboard/MessageQueueOverview.test.tsx +1773 -0
  232. package/Tests/App/Dashboard/MessageQueueOverviewPresentation.test.ts +196 -0
  233. package/Tests/App/Dashboard/MessageQueuePresentation.test.ts +799 -0
  234. package/Tests/App/Dashboard/MessageQueueProducersConsumers.test.tsx +680 -0
  235. package/Tests/App/Dashboard/MessageQueueRoutes.test.tsx +383 -0
  236. package/Tests/App/Dashboard/MessageQueueRulePages.test.tsx +278 -0
  237. package/Tests/App/Dashboard/MessageQueueSetupGuide.test.ts +2778 -0
  238. package/Tests/App/Dashboard/MessageQueueSideMenus.test.tsx +273 -0
  239. package/Tests/App/Dashboard/MessageQueueSpanPopulations.test.ts +930 -0
  240. package/Tests/App/Dashboard/MessageQueueSpanStore.ts +351 -0
  241. package/Tests/App/Dashboard/MessageQueueTelemetryScope.test.ts +375 -0
  242. package/Tests/App/Dashboard/MessageQueueTelemetryScopeTabs.test.tsx +668 -0
  243. package/Tests/App/Dashboard/MessageQueueViewPages.test.tsx +685 -0
  244. package/Tests/App/Dashboard/MonitorAndHomeNotOperationalMenus.test.tsx +342 -0
  245. package/Tests/App/Dashboard/MonitorCreateFirstRunDefaults.test.tsx +623 -0
  246. package/Tests/App/Dashboard/MonitorCreateFromMonitorBackedDevice.test.tsx +442 -0
  247. package/Tests/App/Dashboard/MonitorLogsPageViewSummary.test.tsx +814 -0
  248. package/Tests/App/Dashboard/MonitorSetupCardBodies.test.tsx +246 -0
  249. package/Tests/App/Dashboard/NavigationSearchKeywords.test.tsx +8 -0
  250. package/Tests/App/Dashboard/OnboardingSsoEmptyState.test.tsx +27 -12
  251. package/Tests/App/Dashboard/PlanGatedPage.test.tsx +292 -0
  252. package/Tests/App/Dashboard/PodmanSetupGuide.test.ts +948 -0
  253. package/Tests/App/Dashboard/ProductOrientation.test.tsx +5 -4
  254. package/Tests/App/Dashboard/ProductSettingsSectionCollapsed.test.tsx +266 -0
  255. package/Tests/App/Dashboard/ProxmoxSetupGuide.test.ts +1318 -0
  256. package/Tests/App/Dashboard/RemediationSuggestionCardDescription.test.tsx +209 -0
  257. package/Tests/App/Dashboard/RemediationSuggestionCardResource.test.tsx +317 -0
  258. package/Tests/App/Dashboard/ResourceAiAccessSettingsUtil.test.ts +921 -0
  259. package/Tests/App/Dashboard/ResourceAiAgentAttentionServerParity.test.ts +555 -0
  260. package/Tests/App/Dashboard/ResourceAiAgentInstall.test.ts +860 -0
  261. package/Tests/App/Dashboard/ResourceAiAgentPage.test.tsx +2010 -0
  262. package/Tests/App/Dashboard/ResourceAiAgentStatus.test.ts +1455 -0
  263. package/Tests/App/Dashboard/ResourceAiInsightsPage.test.tsx +931 -0
  264. package/Tests/App/Dashboard/ResourceAiNavigation.test.tsx +575 -0
  265. package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +16 -0
  266. package/Tests/App/Dashboard/ResourceConnectionGuideCard.test.tsx +444 -0
  267. package/Tests/App/Dashboard/ResourceConnectionGuideOverviewsInfra.test.tsx +798 -0
  268. package/Tests/App/Dashboard/ResourceConnectionGuideOverviewsPlatforms.test.tsx +717 -0
  269. package/Tests/App/Dashboard/ResourceConnectionGuides.test.ts +981 -0
  270. package/Tests/App/Dashboard/ResourceConnectionState.test.ts +132 -0
  271. package/Tests/App/Dashboard/RumDocumentationCard.test.tsx +293 -0
  272. package/Tests/App/Dashboard/RumSessionReplayRetentionSettings.test.tsx +467 -0
  273. package/Tests/App/Dashboard/RumSetupGuide.test.ts +758 -0
  274. package/Tests/App/Dashboard/RunbookStepTypeMaps.test.ts +38 -7
  275. package/Tests/App/Dashboard/ScheduledMaintenanceOverviewPage.test.tsx +25 -0
  276. package/Tests/App/Dashboard/ServerlessDocumentationCard.test.tsx +254 -0
  277. package/Tests/App/Dashboard/ServerlessSetupGuide.test.ts +1074 -0
  278. package/Tests/App/Dashboard/SetupGuide.test.ts +246 -0
  279. package/Tests/App/Dashboard/SetupGuideCard.test.tsx +756 -0
  280. package/Tests/App/Dashboard/SloListSideMenu.test.tsx +120 -0
  281. package/Tests/App/Dashboard/SsoPages.test.tsx +833 -0
  282. package/Tests/App/Dashboard/TelemetryDocumentation.test.tsx +253 -0
  283. package/Tests/App/Dashboard/TelemetryRetentionShells.test.tsx +730 -0
  284. package/Tests/App/Dashboard/VMwareSetupGuide.test.ts +1033 -0
  285. package/Tests/App/StatusPage/StatusPageSsoEmptyState.test.tsx +87 -7
  286. package/Tests/Models/DatabaseModels/DatabaseServerModels.test.ts +61 -10
  287. package/Tests/Models/DatabaseModels/IncidentFormModel.test.ts +1250 -0
  288. package/Tests/Models/DatabaseModels/MessageQueueModels.test.ts +1983 -0
  289. package/Tests/Models/DatabaseModels/ResourceAiAccessColumns.test.ts +738 -0
  290. package/Tests/Models/DatabaseModels/ResourceAiAgentModel.test.ts +842 -0
  291. package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +4 -2
  292. package/Tests/Models/DatabaseModels/TeamComplianceSettingModel.test.ts +190 -14
  293. package/Tests/Models/IncidentTemplateCustomFieldSettingsColumn.test.ts +291 -0
  294. package/Tests/Server/API/AIInvestigationConversationAPI.test.ts +412 -0
  295. package/Tests/Server/API/AutoRemediationApproveResourceRound.test.ts +835 -0
  296. package/Tests/Server/API/GlobalConfigLicense.test.ts +38 -9
  297. package/Tests/Server/API/IncidentFormAPI.test.ts +942 -0
  298. package/Tests/Server/API/IncidentFormPublicRoutes.test.ts +1653 -0
  299. package/Tests/Server/API/KubernetesClusterAiAccessAPI.test.ts +2 -1
  300. package/Tests/Server/API/ResourceAiAccessAPI.test.ts +2730 -0
  301. package/Tests/Server/API/{SsoProviderListingsEdition.test.ts → SsoProviderListings.test.ts} +164 -110
  302. package/Tests/Server/Enterprise/EnterpriseEdition.test.ts +76 -54
  303. package/Tests/Server/Enterprise/EnterpriseFeatureActive.test.ts +125 -42
  304. package/Tests/Server/Enterprise/EnterpriseLicenseSnapshot.test.ts +36 -10
  305. package/Tests/Server/Enterprise/EnterpriseModelFeatureMap.test.ts +51 -9
  306. package/Tests/Server/Enterprise/FakeEnterpriseModule.ts +13 -8
  307. package/Tests/Server/Enterprise/SsoInCommunityEdition.test.ts +540 -0
  308. package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +3 -0
  309. package/Tests/Server/Infrastructure/Postgres/AddDatabaseServerTablesMigration.test.ts +60 -0
  310. package/Tests/Server/Infrastructure/Postgres/AddIncidentFormsMigration.test.ts +438 -0
  311. package/Tests/Server/Infrastructure/Postgres/AddResourceAiAgentsMigration.test.ts +659 -0
  312. package/Tests/Server/Infrastructure/Postgres/AddTeamComplianceRuleNotificationChannelsMigration.test.ts +255 -0
  313. package/Tests/Server/Infrastructure/Postgres/MessageQueueTablesMigration.test.ts +637 -0
  314. package/Tests/Server/Infrastructure/SemaphoreMutex.test.ts +31 -0
  315. package/Tests/Server/Middleware/IncidentFormRateLimit.test.ts +1630 -0
  316. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +63 -5
  317. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +103 -5
  318. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +19 -1
  319. package/Tests/Server/Middleware/UserAuthorization.test.ts +16 -17
  320. package/Tests/Server/Middleware/UserAuthorizationSsoEnforcement.test.ts +544 -0
  321. package/Tests/Server/Services/AIServiceDailyBudget.test.ts +37 -8
  322. package/Tests/Server/Services/AutoRemediationResourceRuleEngine.test.ts +1279 -0
  323. package/Tests/Server/Services/DatabaseServerService.test.ts +55 -0
  324. package/Tests/Server/Services/GroupTelemetryUsageExcludeNames.test.ts +299 -0
  325. package/Tests/Server/Services/HostServiceFindOrCreateMemo.test.ts +44 -0
  326. package/Tests/Server/Services/IncidentCreatedFeedTitle.test.ts +212 -0
  327. package/Tests/Server/Services/IncidentCustomFieldDeleteFormQuestions.test.ts +297 -0
  328. package/Tests/Server/Services/IncidentFormOwnersCreatedNotification.test.ts +497 -0
  329. package/Tests/Server/Services/IncidentFormPostgres.test.ts +958 -0
  330. package/Tests/Server/Services/IncidentFormPublicForm.test.ts +1260 -0
  331. package/Tests/Server/Services/IncidentFormPublicSubmission.test.ts +2520 -0
  332. package/Tests/Server/Services/IncidentFormRegistration.test.ts +159 -0
  333. package/Tests/Server/Services/IncidentFormService.test.ts +663 -0
  334. package/Tests/Server/Services/IncidentFormSubmissionService.test.ts +430 -0
  335. package/Tests/Server/Services/IncidentFormSubmissionTemplateBranch.test.ts +473 -0
  336. package/Tests/Server/Services/IncidentGroupingTemplateSubstitution.test.ts +81 -0
  337. package/Tests/Server/Services/IncidentTemplateCustomFieldSettings.test.ts +262 -0
  338. package/Tests/Server/Services/IncidentTemplateOwnersOnDeclare.test.ts +566 -0
  339. package/Tests/Server/Services/IncidentTitleMarkdownSinks.test.ts +640 -0
  340. package/Tests/Server/Services/LlmLogServiceTokenAggregateParams.test.ts +3 -3
  341. package/Tests/Server/Services/MessageQueueOwnerServices.test.ts +440 -0
  342. package/Tests/Server/Services/MessageQueueRegistries.test.ts +577 -0
  343. package/Tests/Server/Services/MessageQueueRuleEngines.test.ts +900 -0
  344. package/Tests/Server/Services/MessageQueueService.test.ts +2210 -0
  345. package/Tests/Server/Services/MessageQueueSqlPostgres.test.ts +1271 -0
  346. package/Tests/Server/Services/MonitorProbeServiceIntervalScheduling.test.ts +45 -6
  347. package/Tests/Server/Services/OpenTelemetryResourceRetentionMemo.test.ts +28 -1
  348. package/Tests/Server/Services/OpenTelemetryRetentionOverrideEdition.test.ts +474 -0
  349. package/Tests/Server/Services/OpenTelemetryServiceResolutionCache.test.ts +21 -0
  350. package/Tests/Server/Services/OwnerRowUniqueness.test.ts +3 -0
  351. package/Tests/Server/Services/ProjectServiceAuditLogLicense.test.ts +0 -1
  352. package/Tests/Server/Services/RecordingRuleReservedMetricName.test.ts +171 -0
  353. package/Tests/Server/Services/ResourceAiAccessChangeAuthorization.test.ts +256 -0
  354. package/Tests/Server/Services/ResourceAiAccessService.test.ts +1373 -0
  355. package/Tests/Server/Services/ResourceAiAgentJobService.test.ts +375 -0
  356. package/Tests/Server/Services/ResourceAiAgentServiceHelpers.test.ts +1114 -0
  357. package/Tests/Server/Services/ResourceAiAgentServiceLifecycle.test.ts +1050 -0
  358. package/Tests/Server/Services/ResourceAiAgentServiceRegister.test.ts +2251 -0
  359. package/Tests/Server/Services/ResourceAiSettingsCreate.test.ts +373 -0
  360. package/Tests/Server/Services/ResourceAiSettingsPermission.test.ts +1042 -0
  361. package/Tests/Server/Services/ResourceServiceDeleteCleansUpAi.test.ts +319 -0
  362. package/Tests/Server/Services/RuleRun/LabelRuleEnginesGroupBRun.test.ts +56 -6
  363. package/Tests/Server/Services/RuleRun/OwnerRuleEnginesGroupBRun.test.ts +30 -1
  364. package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +105 -0
  365. package/Tests/Server/Services/RunnerJobEnqueueResourceCommand.test.ts +986 -0
  366. package/Tests/Server/Services/RunnerJobResourceCommandLane.test.ts +211 -0
  367. package/Tests/Server/Services/RunnerJobResourceCommandTimeoutAndRedaction.test.ts +352 -0
  368. package/Tests/Server/Services/SsoRequirementReads.test.ts +454 -0
  369. package/Tests/Server/Services/SsoRequirementWrites.test.ts +529 -0
  370. package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +3 -3
  371. package/Tests/Server/Services/StatusPagePrivateUserInvitationPolicy.test.ts +107 -89
  372. package/Tests/Server/Services/TeamComplianceSettingPostgres.test.ts +1068 -176
  373. package/Tests/Server/Services/TeamComplianceSettingService.test.ts +1962 -200
  374. package/Tests/Server/Services/TelemetryUsageBillingSloExclusion.test.ts +218 -0
  375. package/Tests/Server/TestingUtils/Services/FakeRunnerJobCount.ts +145 -0
  376. package/Tests/Server/Types/Database/Permissions/EditionPermission.test.ts +654 -297
  377. package/Tests/Server/Types/Database/Permissions/RetentionOverrideColumns.test.ts +784 -0
  378. package/Tests/Server/Types/Database/Permissions/SsoScalePlanGate.test.ts +418 -0
  379. package/Tests/Server/Utils/AI/AIAlertGating.test.ts +0 -1
  380. package/Tests/Server/Utils/AI/AIInvestigationEngineRunLimits.test.ts +136 -0
  381. package/Tests/Server/Utils/AI/AIInvestigationQueue.test.ts +15 -14
  382. package/Tests/Server/Utils/AI/AgentContextCompactor.test.ts +351 -0
  383. package/Tests/Server/Utils/AI/ChatAgentRunnerSharedThread.test.ts +842 -0
  384. package/Tests/Server/Utils/AI/ChatRunCancellation.test.ts +195 -0
  385. package/Tests/Server/Utils/AI/CodeFixReadiness.test.ts +10 -57
  386. package/Tests/Server/Utils/AI/FixRunBudget.test.ts +20 -24
  387. package/Tests/Server/Utils/AI/Insights/InvestigationQueueInsightSubject.test.ts +7 -30
  388. package/Tests/Server/Utils/AI/InvestigationClusterAccessWiring.test.ts +225 -29
  389. package/Tests/Server/Utils/AI/InvestigationInfrastructureAccessWiring.test.ts +694 -0
  390. package/Tests/Server/Utils/AI/InvestigationInfrastructureReport.test.ts +721 -0
  391. package/Tests/Server/Utils/AI/InvestigationThread.test.ts +580 -0
  392. package/Tests/Server/Utils/AI/InvestigationThreadService.test.ts +801 -0
  393. package/Tests/Server/Utils/AI/KubectlInvestigationToolkit.test.ts +525 -43
  394. package/Tests/Server/Utils/AI/KubectlJobRunner.test.ts +4 -2
  395. package/Tests/Server/Utils/AI/LLMServiceUnreachableProvider.test.ts +435 -0
  396. package/Tests/Server/Utils/AI/ObservabilityAssistantLimits.test.ts +462 -0
  397. package/Tests/Server/Utils/AI/RemediationCommandTools.test.ts +94 -1
  398. package/Tests/Server/Utils/AI/RemediationCommandToolsResource.test.ts +1530 -0
  399. package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +14 -25
  400. package/Tests/Server/Utils/AI/RemediationExecutionRunnerResourceMode.test.ts +1251 -0
  401. package/Tests/Server/Utils/AI/RemediationPlanRunner.test.ts +117 -0
  402. package/Tests/Server/Utils/AI/RemediationResourceCopyParity.test.ts +463 -0
  403. package/Tests/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.test.ts +1004 -0
  404. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAccessContext.test.ts +266 -0
  405. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.test.ts +1220 -0
  406. package/Tests/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.test.ts +569 -0
  407. package/Tests/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.test.ts +834 -0
  408. package/Tests/Server/Utils/AI/ToolOutputPager.test.ts +382 -0
  409. package/Tests/Server/Utils/AI/ToolResultSerializer.test.ts +23 -4
  410. package/Tests/Server/Utils/AI/Toolbox/LogTools.test.ts +25 -6
  411. package/Tests/Server/Utils/AI/Toolbox/Serializer.test.ts +14 -3
  412. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorResource.test.ts +717 -0
  413. package/Tests/Server/Utils/AutoRemediation/RemediationVerifierResourceFollowUp.test.ts +338 -0
  414. package/Tests/Server/Utils/EditionEnforcement.test.ts +107 -147
  415. package/Tests/Server/Utils/Monitor/Criteria/SessionReplayBudgetTemplateCriteria.test.ts +422 -0
  416. package/Tests/Server/Utils/{CommunityEditionSsoReport.test.ts → RelaxedScimTeamLocksReport.test.ts} +212 -208
  417. package/Tests/Server/Utils/SameOriginRequest.test.ts +372 -0
  418. package/Tests/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.test.ts +1647 -0
  419. package/Tests/Server/Utils/SessionReplay/SessionReplayUsage.test.ts +143 -1
  420. package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +20 -0
  421. package/Tests/Server/Utils/Telemetry/MessageQueueDiscovery.test.ts +2590 -0
  422. package/Tests/Server/Utils/Telemetry/MessageQueueSpanQueryTwin.ts +246 -0
  423. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +23 -0
  424. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +33 -3
  425. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsAccountNotLinked.test.ts +1093 -0
  426. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.test.ts +1049 -0
  427. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.test.ts +1676 -0
  428. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCards.test.ts +2884 -0
  429. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.test.ts +2490 -0
  430. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmit.test.ts +2293 -0
  431. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateSubmitServerTimezone.test.ts +386 -0
  432. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.test.ts +1477 -0
  433. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.test.ts +1967 -0
  434. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsStripHtmlTags.test.ts +92 -0
  435. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsSubmittedFormRemoval.test.ts +1819 -0
  436. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.test.ts +1033 -0
  437. package/Tests/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezoneServerZone.test.ts +610 -0
  438. package/Tests/Server/Utils/Workspace/MicrosoftTeamsBotMessageHandling.test.ts +2610 -0
  439. package/Tests/Server/Utils/Workspace/MicrosoftTeamsCreateCommandsEndToEnd.test.ts +4672 -0
  440. package/Tests/Server/Utils/Workspace/WorkspaceCreateProjectReferences.test.ts +190 -65
  441. package/Tests/Types/AI/AIAgentRunLimits.test.ts +255 -0
  442. package/Tests/Types/AutoRemediation/AiRemediationCommandPlan.test.ts +10 -4
  443. package/Tests/Types/AutoRemediation/AiRemediationCommandPlanResourceCommand.test.ts +305 -0
  444. package/Tests/Types/Code/JsonSyntax.test.ts +1300 -0
  445. package/Tests/Types/CustomField/CustomFieldCreateSettings.test.ts +1113 -0
  446. package/Tests/Types/CustomField/CustomFieldMappingCatalog.test.ts +91 -0
  447. package/Tests/Types/CustomField/CustomFieldValueValidator.test.ts +30 -0
  448. package/Tests/Types/Incident/IncidentFormIpAllowlist.test.ts +227 -0
  449. package/Tests/Types/Incident/IncidentFormPublic.test.ts +1916 -0
  450. package/Tests/Types/MessageQueue/MessageQueueEntityKey.test.ts +916 -0
  451. package/Tests/Types/MessageQueue/MessageQueueIdentity.test.ts +567 -0
  452. package/Tests/Types/MessageQueue/MessageQueueManualIdentity.test.ts +686 -0
  453. package/Tests/Types/MessageQueue/MessageQueueMetricCatalog.test.ts +1726 -0
  454. package/Tests/Types/MessageQueue/MessageQueueMetricResolution.test.ts +1758 -0
  455. package/Tests/Types/MessageQueue/MessagingInstrumentationFixtures.test.ts +4686 -0
  456. package/Tests/Types/MessageQueue/MessagingSystem.test.ts +840 -0
  457. package/Tests/Types/MessageQueue/MessagingTelemetryFixtures.ts +3287 -0
  458. package/Tests/Types/MessageQueue/MessagingTelemetryResolver.test.ts +2966 -0
  459. package/Tests/Types/Monitor/MessageQueueAlertTemplates.test.ts +5401 -0
  460. package/Tests/Types/Monitor/MetricEngineFold.ts +154 -0
  461. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +277 -13
  462. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +113 -0
  463. package/Tests/Types/Monitor/RumAlertTemplates.test.ts +773 -2
  464. package/Tests/Types/ResourceAiAgent/AiResourceType.test.ts +419 -0
  465. package/Tests/Types/ResourceAiAgent/ResourceAiAccess.test.ts +519 -0
  466. package/Tests/Types/Runbook/RunbookStepType.test.ts +147 -8
  467. package/Tests/Types/Team/ComplianceRule.test.ts +588 -37
  468. package/Tests/Types/Team/TeamComplianceStatus.test.ts +64 -11
  469. package/Tests/Types/XML.test.ts +51 -0
  470. package/Tests/UI/Components/CodeEditor/CodeEditor.test.tsx +2362 -0
  471. package/Tests/UI/Components/CodeEditor/CodeEditorCommands.test.ts +810 -0
  472. package/Tests/UI/Components/CodeEditor/CodeEditorHighlight.test.ts +338 -0
  473. package/Tests/UI/Components/CodeEditor/CodeEditorLanguages.test.ts +222 -0
  474. package/Tests/UI/Components/CodeEditor/CodeEditorStyles.test.ts +807 -0
  475. package/Tests/UI/Components/CodeEditor/NoMonaco.test.ts +245 -0
  476. package/Tests/UI/Components/CodeEditor/YamlEditor.test.tsx +729 -0
  477. package/Tests/UI/Components/CopyTextButton.test.tsx +76 -0
  478. package/Tests/UI/Components/EditionLabelLapseCopy.ts +51 -14
  479. package/Tests/UI/Components/EditionLabelLicenseStatus.test.tsx +131 -23
  480. package/Tests/UI/Components/ErrorMessageAction.test.tsx +142 -0
  481. package/Tests/UI/Components/FacetSidebarInScope.test.tsx +459 -0
  482. package/Tests/UI/Components/FacetValuesInScope.test.ts +270 -0
  483. package/Tests/UI/Components/Forms/FormFieldCodeEditors.test.tsx +294 -0
  484. package/Tests/UI/Components/Forms/FormFieldMarkdown.test.tsx +126 -0
  485. package/Tests/UI/Components/Forms/FormFieldYaml.test.tsx +22 -75
  486. package/Tests/UI/Components/Forms/ModelFormOnBeforeCreateMiscData.test.tsx +254 -0
  487. package/Tests/UI/Components/Icon.test.tsx +32 -0
  488. package/Tests/UI/Components/Input.test.tsx +31 -0
  489. package/Tests/UI/Components/LockedFilterChipScope.test.tsx +501 -0
  490. package/Tests/UI/Components/MarkdownConverters.test.ts +253 -1
  491. package/Tests/UI/Components/MarkdownEditor.test.tsx +2785 -2
  492. package/Tests/UI/Components/MarkdownEditorHistory.test.ts +243 -0
  493. package/Tests/UI/Components/MarkdownListEditing.test.ts +1118 -0
  494. package/Tests/UI/Components/MarkdownPaste.test.ts +1180 -0
  495. package/Tests/UI/Components/MarkdownViewerCopy.test.tsx +466 -0
  496. package/Tests/UI/Components/MarkdownVisualEditing.test.ts +1089 -0
  497. package/Tests/UI/Components/ModelTable/BaseModelTableEmptyStateAction.test.tsx +623 -0
  498. package/Tests/UI/Components/ResetObjectID.test.tsx +282 -0
  499. package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +3 -3
  500. package/Tests/UI/Components/Table/EmptyTableMessage.test.ts +439 -0
  501. package/Tests/UI/Components/Table/TableEmptyState.test.tsx +352 -0
  502. package/Tests/UI/Components/TableRowMobileTitles.test.tsx +78 -0
  503. package/Tests/UI/Components/TextArea.test.tsx +19 -0
  504. package/Tests/UI/Components/Workflow/ModelColumnEditor.render.test.tsx +12 -29
  505. package/Tests/UI/Components/fixtures/MarkdownPasteFixtures.ts +460 -0
  506. package/Tests/UI/EsbuildConfig.test.ts +115 -39
  507. package/Tests/UI/EsbuildEnterpriseAlias.test.ts +4 -4
  508. package/Tests/UI/Monitor/MonitorLogSummaryRender.test.tsx +377 -0
  509. package/Tests/UI/Rum/RecordingHealthDashboard.test.tsx +769 -1
  510. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +81 -1
  511. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +17 -0
  512. package/Tests/Utils/AiRemediation/Resource/CephCommandPolicy.test.ts +1653 -0
  513. package/Tests/Utils/AiRemediation/Resource/CephOutputRedaction.test.ts +204 -0
  514. package/Tests/Utils/AiRemediation/Resource/DatabaseCommandPolicy.test.ts +1077 -0
  515. package/Tests/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.test.ts +558 -0
  516. package/Tests/Utils/AiRemediation/Resource/DatabaseQueryRedactor.test.ts +834 -0
  517. package/Tests/Utils/AiRemediation/Resource/DockerCliGrammar.test.ts +747 -0
  518. package/Tests/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.test.ts +1259 -0
  519. package/Tests/Utils/AiRemediation/Resource/DockerOutputRedaction.test.ts +386 -0
  520. package/Tests/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.test.ts +782 -0
  521. package/Tests/Utils/AiRemediation/Resource/GovcCommandPolicy.test.ts +2259 -0
  522. package/Tests/Utils/AiRemediation/Resource/HostCommandPolicy.test.ts +2019 -0
  523. package/Tests/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.test.ts +2497 -0
  524. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicy.test.ts +1305 -0
  525. package/Tests/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.test.ts +585 -0
  526. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactor.test.ts +334 -0
  527. package/Tests/Utils/AiRemediation/Resource/ResourceOutputRedactorCopyParity.test.ts +98 -0
  528. package/Tests/Utils/AiRemediation/Resource/ResourcePolicyImportClosure.test.ts +391 -0
  529. package/Tests/Utils/AiRemediation/ResourceAiAgentPolicyCopyParity.test.ts +497 -0
  530. package/Tests/Utils/LabelRuleImportExport.test.ts +5 -0
  531. package/Tests/Utils/Markdown/DashboardMarkdownRenderer.ts +81 -0
  532. package/Tests/Utils/Markdown/UntrustedMarkdown.test.ts +1339 -0
  533. package/Tests/Utils/Monitor/MonitorLogSummaryUtil.test.ts +862 -0
  534. package/Tests/Utils/SessionReplay/SessionReplayBudgetMetricType.test.ts +383 -0
  535. package/Types/AI/AIAgentRunLimits.ts +146 -0
  536. package/Types/AI/ResourceAiAccessApi.ts +140 -0
  537. package/Types/AI/ResourceAiAccessPermissions.ts +126 -0
  538. package/Types/AutoRemediation/AiRemediationCommandPlan.ts +183 -2
  539. package/Types/Code/CodeType.ts +2 -0
  540. package/Types/Code/JsonSyntax.ts +923 -0
  541. package/Types/CustomField/CustomFieldCreateSettings.ts +549 -0
  542. package/Types/CustomField/CustomFieldMappingCatalog.ts +77 -0
  543. package/Types/CustomField/CustomFieldValueValidator.ts +10 -7
  544. package/Types/EnterpriseLicense/EnterpriseLicensePeriods.ts +1 -1
  545. package/Types/Icon/IconProp.ts +2 -0
  546. package/Types/Incident/IncidentFormIpAllowlist.ts +206 -0
  547. package/Types/Incident/IncidentFormPublic.ts +1145 -0
  548. package/Types/Kubernetes/KubernetesClusterAiAccess.ts +10 -3
  549. package/Types/MessageQueue/MessageQueueIdentity.ts +256 -0
  550. package/Types/MessageQueue/MessageQueueManualIdentity.ts +325 -0
  551. package/Types/MessageQueue/MessageQueueMetricCatalog.ts +1357 -0
  552. package/Types/MessageQueue/MessagingSystem.ts +518 -0
  553. package/Types/MessageQueue/MessagingTelemetryResolver.ts +2311 -0
  554. package/Types/Monitor/MessageQueueAlertTemplates.ts +2128 -0
  555. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +55 -22
  556. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +35 -3
  557. package/Types/Monitor/RumAlertTemplates.ts +351 -4
  558. package/Types/Permission.ts +310 -0
  559. package/Types/ResourceAiAgent/AiResourceType.ts +310 -0
  560. package/Types/ResourceAiAgent/ResourceAiAccess.ts +580 -0
  561. package/Types/Rules/RuleCriteriaFieldRegistry.ts +12 -0
  562. package/Types/Rules/RuleRun.ts +4 -0
  563. package/Types/Rum/SessionReplayBudgetMetricType.ts +47 -0
  564. package/Types/Runbook/RunbookStepType.ts +29 -0
  565. package/Types/Team/ComplianceNotificationChannel.ts +4 -3
  566. package/Types/Team/ComplianceRule.ts +71 -18
  567. package/Types/Team/ComplianceRuleType.ts +2 -2
  568. package/Types/Team/TeamComplianceStatus.ts +6 -2
  569. package/Types/Telemetry/EntityType.ts +16 -0
  570. package/Types/Telemetry/LockedFilterDetail.ts +22 -0
  571. package/Types/Telemetry/TelemetryIngestSurface.ts +14 -2
  572. package/Types/XML.ts +26 -0
  573. package/UI/Components/CodeEditor/CodeEditor.css +379 -0
  574. package/UI/Components/CodeEditor/CodeEditor.tsx +1128 -294
  575. package/UI/Components/CodeEditor/CodeEditorCommands.ts +774 -0
  576. package/UI/Components/CodeEditor/CodeEditorHighlight.ts +106 -0
  577. package/UI/Components/CodeEditor/CodeEditorLanguages.ts +164 -0
  578. package/UI/Components/CodeEditor/YamlEditor.tsx +28 -326
  579. package/UI/Components/CopyTextButton/CopyTextButton.tsx +5 -1
  580. package/UI/Components/CustomFields/CustomFieldModelFormFields.tsx +6 -25
  581. package/UI/Components/EditionLabel/EditionLabel.tsx +14 -13
  582. package/UI/Components/ErrorMessage/ErrorMessage.tsx +11 -1
  583. package/UI/Components/Forms/Fields/FormField.tsx +8 -0
  584. package/UI/Components/Forms/Types/Field.ts +8 -0
  585. package/UI/Components/Icon/Icon.tsx +18 -0
  586. package/UI/Components/Input/Input.tsx +11 -4
  587. package/UI/Components/LogsViewer/LogsViewer.tsx +4 -0
  588. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +21 -3
  589. package/UI/Components/Markdown.tsx/MarkdownConverters.ts +0 -0
  590. package/UI/Components/Markdown.tsx/MarkdownEditor.tsx +877 -79
  591. package/UI/Components/Markdown.tsx/MarkdownEditorHistory.ts +284 -0
  592. package/UI/Components/Markdown.tsx/MarkdownListEditing.ts +1362 -0
  593. package/UI/Components/Markdown.tsx/MarkdownPaste.ts +1326 -0
  594. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +106 -10
  595. package/UI/Components/Markdown.tsx/MarkdownVisualEditing.ts +1032 -0
  596. package/UI/Components/ModelTable/BaseModelTable.tsx +85 -7
  597. package/UI/Components/ResetObjectID/ResetObjectID.tsx +35 -9
  598. package/UI/Components/Table/EmptyTableMessage.ts +81 -0
  599. package/UI/Components/Table/Table.tsx +50 -21
  600. package/UI/Components/Table/TableRow.tsx +9 -1
  601. package/UI/Components/TelemetryViewer/FacetVisibility.ts +97 -2
  602. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +13 -0
  603. package/UI/Components/TelemetryViewer/components/LockedFilterChip.tsx +214 -7
  604. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +21 -3
  605. package/UI/Components/TextArea/TextArea.tsx +9 -2
  606. package/UI/Components/Workflow/ModelFieldPicker.tsx +10 -12
  607. package/UI/Styles/Theme.css +8 -0
  608. package/UI/esbuild-config.js +2 -32
  609. package/Utils/AI/InvestigationReport.ts +121 -15
  610. package/Utils/AiRemediation/Resource/CephCommandPolicy.ts +1936 -0
  611. package/Utils/AiRemediation/Resource/DatabaseCommandPolicy.ts +166 -0
  612. package/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.ts +1532 -0
  613. package/Utils/AiRemediation/Resource/DatabaseQueryRedactor.ts +1394 -0
  614. package/Utils/AiRemediation/Resource/DockerCliGrammar.ts +1839 -0
  615. package/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.ts +490 -0
  616. package/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.ts +687 -0
  617. package/Utils/AiRemediation/Resource/GovcCommandPolicy.ts +2096 -0
  618. package/Utils/AiRemediation/Resource/HostCommandPolicy.ts +2982 -0
  619. package/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.ts +1679 -0
  620. package/Utils/AiRemediation/Resource/ResourceCommandPolicy.ts +851 -0
  621. package/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.ts +593 -0
  622. package/Utils/AiRemediation/Resource/ResourceOutputRedactor.ts +2812 -0
  623. package/Utils/LabelRuleImportExport.ts +2 -0
  624. package/Utils/Markdown/UntrustedMarkdown.ts +1513 -0
  625. package/Utils/Monitor/IncomingEmailMonitorRequestUtil.ts +41 -0
  626. package/Utils/Monitor/MonitorLogSummaryUtil.ts +212 -0
  627. package/Utils/SessionReplay/SessionReplayBudgetMetricType.ts +184 -0
  628. package/Utils/Telemetry/EntityKey.ts +48 -0
  629. package/build/dist/Models/DatabaseModels/AIConversation.js +125 -1
  630. package/build/dist/Models/DatabaseModels/AIConversation.js.map +1 -1
  631. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js +62 -0
  632. package/build/dist/Models/DatabaseModels/AutoRemediationSuggestion.js.map +1 -1
  633. package/build/dist/Models/DatabaseModels/CephCluster.js +231 -0
  634. package/build/dist/Models/DatabaseModels/CephCluster.js.map +1 -1
  635. package/build/dist/Models/DatabaseModels/CloudResource.js +12 -0
  636. package/build/dist/Models/DatabaseModels/CloudResource.js.map +1 -1
  637. package/build/dist/Models/DatabaseModels/DatabaseServer.js +231 -0
  638. package/build/dist/Models/DatabaseModels/DatabaseServer.js.map +1 -1
  639. package/build/dist/Models/DatabaseModels/DockerHost.js +231 -0
  640. package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
  641. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js +231 -0
  642. package/build/dist/Models/DatabaseModels/DockerSwarmCluster.js.map +1 -1
  643. package/build/dist/Models/DatabaseModels/GlobalConfig.js +1 -1
  644. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  645. package/build/dist/Models/DatabaseModels/GlobalOidc.js +0 -4
  646. package/build/dist/Models/DatabaseModels/GlobalOidc.js.map +1 -1
  647. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js +0 -4
  648. package/build/dist/Models/DatabaseModels/GlobalOidcProject.js.map +1 -1
  649. package/build/dist/Models/DatabaseModels/GlobalSso.js +0 -4
  650. package/build/dist/Models/DatabaseModels/GlobalSso.js.map +1 -1
  651. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js +0 -4
  652. package/build/dist/Models/DatabaseModels/GlobalSsoProject.js.map +1 -1
  653. package/build/dist/Models/DatabaseModels/Host.js +231 -0
  654. package/build/dist/Models/DatabaseModels/Host.js.map +1 -1
  655. package/build/dist/Models/DatabaseModels/IncidentForm.js +605 -0
  656. package/build/dist/Models/DatabaseModels/IncidentForm.js.map +1 -0
  657. package/build/dist/Models/DatabaseModels/IncidentFormSubmission.js +299 -0
  658. package/build/dist/Models/DatabaseModels/IncidentFormSubmission.js.map +1 -0
  659. package/build/dist/Models/DatabaseModels/IncidentTemplate.js +60 -0
  660. package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
  661. package/build/dist/Models/DatabaseModels/Index.js +16 -0
  662. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  663. package/build/dist/Models/DatabaseModels/IoTFleet.js +12 -0
  664. package/build/dist/Models/DatabaseModels/IoTFleet.js.map +1 -1
  665. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +12 -0
  666. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  667. package/build/dist/Models/DatabaseModels/MessageQueue.js +1106 -0
  668. package/build/dist/Models/DatabaseModels/MessageQueue.js.map +1 -0
  669. package/build/dist/Models/DatabaseModels/MessageQueueLabelRule.js +562 -0
  670. package/build/dist/Models/DatabaseModels/MessageQueueLabelRule.js.map +1 -0
  671. package/build/dist/Models/DatabaseModels/MessageQueueOwnerRule.js +643 -0
  672. package/build/dist/Models/DatabaseModels/MessageQueueOwnerRule.js.map +1 -0
  673. package/build/dist/Models/DatabaseModels/MessageQueueOwnerTeam.js +506 -0
  674. package/build/dist/Models/DatabaseModels/MessageQueueOwnerTeam.js.map +1 -0
  675. package/build/dist/Models/DatabaseModels/MessageQueueOwnerUser.js +505 -0
  676. package/build/dist/Models/DatabaseModels/MessageQueueOwnerUser.js.map +1 -0
  677. package/build/dist/Models/DatabaseModels/PodmanHost.js +231 -0
  678. package/build/dist/Models/DatabaseModels/PodmanHost.js.map +1 -1
  679. package/build/dist/Models/DatabaseModels/Project.js +61 -0
  680. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  681. package/build/dist/Models/DatabaseModels/ProjectOidc.js +0 -4
  682. package/build/dist/Models/DatabaseModels/ProjectOidc.js.map +1 -1
  683. package/build/dist/Models/DatabaseModels/ProjectSso.js +0 -4
  684. package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -1
  685. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js +231 -0
  686. package/build/dist/Models/DatabaseModels/ProxmoxCluster.js.map +1 -1
  687. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js +439 -0
  688. package/build/dist/Models/DatabaseModels/ResourceAiAgent.js.map +1 -0
  689. package/build/dist/Models/DatabaseModels/RumApplication.js +12 -0
  690. package/build/dist/Models/DatabaseModels/RumApplication.js.map +1 -1
  691. package/build/dist/Models/DatabaseModels/RunnerJob.js +145 -0
  692. package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
  693. package/build/dist/Models/DatabaseModels/ServerlessFunction.js +12 -0
  694. package/build/dist/Models/DatabaseModels/ServerlessFunction.js.map +1 -1
  695. package/build/dist/Models/DatabaseModels/Service.js +12 -0
  696. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  697. package/build/dist/Models/DatabaseModels/StatusPageOidc.js +0 -4
  698. package/build/dist/Models/DatabaseModels/StatusPageOidc.js.map +1 -1
  699. package/build/dist/Models/DatabaseModels/StatusPageSso.js +0 -4
  700. package/build/dist/Models/DatabaseModels/StatusPageSso.js.map +1 -1
  701. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js +49 -3
  702. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js.map +1 -1
  703. package/build/dist/Models/DatabaseModels/VMwareVCenter.js +231 -0
  704. package/build/dist/Models/DatabaseModels/VMwareVCenter.js.map +1 -1
  705. package/build/dist/Server/API/AIChatAPI.js +9 -103
  706. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  707. package/build/dist/Server/API/AIInvestigationAPI.js +3 -3
  708. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  709. package/build/dist/Server/API/AIInvestigationConversationAPI.js +162 -0
  710. package/build/dist/Server/API/AIInvestigationConversationAPI.js.map +1 -0
  711. package/build/dist/Server/API/AutoRemediationAPI.js +231 -1
  712. package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
  713. package/build/dist/Server/API/IncidentFormAPI.js +245 -0
  714. package/build/dist/Server/API/IncidentFormAPI.js.map +1 -0
  715. package/build/dist/Server/API/ProjectOIDC.js +16 -24
  716. package/build/dist/Server/API/ProjectOIDC.js.map +1 -1
  717. package/build/dist/Server/API/ProjectSSO.js +16 -24
  718. package/build/dist/Server/API/ProjectSSO.js.map +1 -1
  719. package/build/dist/Server/API/ResourceAiAccessAPI.js +1119 -0
  720. package/build/dist/Server/API/ResourceAiAccessAPI.js.map +1 -0
  721. package/build/dist/Server/API/StatusPageAPI.js +42 -75
  722. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  723. package/build/dist/Server/Enterprise/EnterpriseEdition.js +79 -25
  724. package/build/dist/Server/Enterprise/EnterpriseEdition.js.map +1 -1
  725. package/build/dist/Server/Enterprise/EnterpriseFeature.js +24 -3
  726. package/build/dist/Server/Enterprise/EnterpriseFeature.js.map +1 -1
  727. package/build/dist/Server/Enterprise/EnterpriseLicenseSnapshot.js +1 -1
  728. package/build/dist/Server/Enterprise/EnterpriseServerModule.js.map +1 -1
  729. package/build/dist/Server/EnvironmentConfig.js +1 -1
  730. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js +168 -0
  731. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796300000000-AddResourceAiAgents.js.map +1 -0
  732. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796400000000-AddIncidentForms.js +63 -0
  733. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796400000000-AddIncidentForms.js.map +1 -0
  734. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796500000000-AddTeamComplianceRuleNotificationChannels.js +41 -0
  735. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796500000000-AddTeamComplianceRuleNotificationChannels.js.map +1 -0
  736. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796600000000-AddAIInvestigationConversationAndTimeLimits.js +40 -0
  737. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796600000000-AddAIInvestigationConversationAndTimeLimits.js.map +1 -0
  738. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796700000000-AddMessageQueueTables.js +183 -0
  739. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796700000000-AddMessageQueueTables.js.map +1 -0
  740. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  741. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  742. package/build/dist/Server/Infrastructure/Semaphore.js +6 -0
  743. package/build/dist/Server/Infrastructure/Semaphore.js.map +1 -1
  744. package/build/dist/Server/Middleware/IncidentFormRateLimit.js +559 -0
  745. package/build/dist/Server/Middleware/IncidentFormRateLimit.js.map +1 -0
  746. package/build/dist/Server/Middleware/TelemetryIngest.js +12 -5
  747. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  748. package/build/dist/Server/Middleware/UserAuthorization.js +11 -30
  749. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  750. package/build/dist/Server/Services/AIService.js +10 -13
  751. package/build/dist/Server/Services/AIService.js.map +1 -1
  752. package/build/dist/Server/Services/AnalyticsDatabaseService.js +26 -1
  753. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  754. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +601 -3
  755. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
  756. package/build/dist/Server/Services/CephClusterService.js +104 -0
  757. package/build/dist/Server/Services/CephClusterService.js.map +1 -1
  758. package/build/dist/Server/Services/DatabaseServerService.js +99 -0
  759. package/build/dist/Server/Services/DatabaseServerService.js.map +1 -1
  760. package/build/dist/Server/Services/DockerHostService.js +104 -0
  761. package/build/dist/Server/Services/DockerHostService.js.map +1 -1
  762. package/build/dist/Server/Services/DockerSwarmClusterService.js +104 -0
  763. package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
  764. package/build/dist/Server/Services/HostService.js +114 -2
  765. package/build/dist/Server/Services/HostService.js.map +1 -1
  766. package/build/dist/Server/Services/IncidentCustomFieldService.js +83 -0
  767. package/build/dist/Server/Services/IncidentCustomFieldService.js.map +1 -1
  768. package/build/dist/Server/Services/IncidentEpisodeMemberService.js +8 -4
  769. package/build/dist/Server/Services/IncidentEpisodeMemberService.js.map +1 -1
  770. package/build/dist/Server/Services/IncidentEpisodeService.js +10 -1
  771. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
  772. package/build/dist/Server/Services/IncidentFormService.js +1202 -0
  773. package/build/dist/Server/Services/IncidentFormService.js.map +1 -0
  774. package/build/dist/Server/Services/IncidentFormSubmissionService.js +91 -0
  775. package/build/dist/Server/Services/IncidentFormSubmissionService.js.map +1 -0
  776. package/build/dist/Server/Services/IncidentGroupingEngineService.js +20 -8
  777. package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
  778. package/build/dist/Server/Services/IncidentService.js +106 -4
  779. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  780. package/build/dist/Server/Services/IncidentTemplateService.js +18 -0
  781. package/build/dist/Server/Services/IncidentTemplateService.js.map +1 -1
  782. package/build/dist/Server/Services/Index.js +14 -0
  783. package/build/dist/Server/Services/Index.js.map +1 -1
  784. package/build/dist/Server/Services/MessageQueueLabelRuleEngineService.js +262 -0
  785. package/build/dist/Server/Services/MessageQueueLabelRuleEngineService.js.map +1 -0
  786. package/build/dist/Server/Services/MessageQueueLabelRuleService.js +13 -0
  787. package/build/dist/Server/Services/MessageQueueLabelRuleService.js.map +1 -0
  788. package/build/dist/Server/Services/MessageQueueOwnerRuleEngineService.js +334 -0
  789. package/build/dist/Server/Services/MessageQueueOwnerRuleEngineService.js.map +1 -0
  790. package/build/dist/Server/Services/MessageQueueOwnerRuleService.js +13 -0
  791. package/build/dist/Server/Services/MessageQueueOwnerRuleService.js.map +1 -0
  792. package/build/dist/Server/Services/MessageQueueOwnerTeamService.js +62 -0
  793. package/build/dist/Server/Services/MessageQueueOwnerTeamService.js.map +1 -0
  794. package/build/dist/Server/Services/MessageQueueOwnerUserService.js +62 -0
  795. package/build/dist/Server/Services/MessageQueueOwnerUserService.js.map +1 -0
  796. package/build/dist/Server/Services/MessageQueueService.js +1140 -0
  797. package/build/dist/Server/Services/MessageQueueService.js.map +1 -0
  798. package/build/dist/Server/Services/MetricRecordingRuleService.js +46 -0
  799. package/build/dist/Server/Services/MetricRecordingRuleService.js.map +1 -1
  800. package/build/dist/Server/Services/OpenTelemetryIngestService.js +25 -4
  801. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  802. package/build/dist/Server/Services/PodmanHostService.js +104 -0
  803. package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
  804. package/build/dist/Server/Services/ProjectService.js +0 -54
  805. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  806. package/build/dist/Server/Services/ProxmoxClusterService.js +104 -0
  807. package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
  808. package/build/dist/Server/Services/ResourceAiAccessService.js +1028 -0
  809. package/build/dist/Server/Services/ResourceAiAccessService.js.map +1 -0
  810. package/build/dist/Server/Services/ResourceAiAgentJobService.js +173 -0
  811. package/build/dist/Server/Services/ResourceAiAgentJobService.js.map +1 -0
  812. package/build/dist/Server/Services/ResourceAiAgentService.js +1687 -0
  813. package/build/dist/Server/Services/ResourceAiAgentService.js.map +1 -0
  814. package/build/dist/Server/Services/RunnerJobService.js +344 -5
  815. package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
  816. package/build/dist/Server/Services/StatusPagePrivateUserService.js +1 -4
  817. package/build/dist/Server/Services/StatusPagePrivateUserService.js.map +1 -1
  818. package/build/dist/Server/Services/StatusPageService.js +0 -46
  819. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  820. package/build/dist/Server/Services/TeamComplianceSettingService.js +120 -31
  821. package/build/dist/Server/Services/TeamComplianceSettingService.js.map +1 -1
  822. package/build/dist/Server/Services/TelemetryUsageBillingService.js +26 -0
  823. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  824. package/build/dist/Server/Services/TraceRecordingRuleService.js +37 -0
  825. package/build/dist/Server/Services/TraceRecordingRuleService.js.map +1 -1
  826. package/build/dist/Server/Services/UserNotificationRuleService.js +8 -1
  827. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  828. package/build/dist/Server/Services/VMwareVCenterService.js +104 -0
  829. package/build/dist/Server/Services/VMwareVCenterService.js.map +1 -1
  830. package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js +12 -3
  831. package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js.map +1 -1
  832. package/build/dist/Server/Types/Database/Permissions/CreatePermission.js +6 -3
  833. package/build/dist/Server/Types/Database/Permissions/CreatePermission.js.map +1 -1
  834. package/build/dist/Server/Types/Database/Permissions/EditionPermission.js +109 -37
  835. package/build/dist/Server/Types/Database/Permissions/EditionPermission.js.map +1 -1
  836. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +16 -0
  837. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  838. package/build/dist/Server/Types/Database/Permissions/TablePermission.js +3 -3
  839. package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js +9 -6
  840. package/build/dist/Server/Types/Database/Permissions/UpdatePermission.js.map +1 -1
  841. package/build/dist/Server/Utils/AI/Chat/AgentContextCompactor.js +128 -0
  842. package/build/dist/Server/Utils/AI/Chat/AgentContextCompactor.js.map +1 -0
  843. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js +192 -50
  844. package/build/dist/Server/Utils/AI/Chat/ChatAgentRunner.js.map +1 -1
  845. package/build/dist/Server/Utils/AI/Chat/ChatRunCancellation.js +133 -0
  846. package/build/dist/Server/Utils/AI/Chat/ChatRunCancellation.js.map +1 -0
  847. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js +53 -13
  848. package/build/dist/Server/Utils/AI/Chat/ObservabilityAssistant.js.map +1 -1
  849. package/build/dist/Server/Utils/AI/Chat/ObservabilityChatPrompt.js +1 -1
  850. package/build/dist/Server/Utils/AI/Chat/ToolOutputPager.js +206 -0
  851. package/build/dist/Server/Utils/AI/Chat/ToolOutputPager.js.map +1 -0
  852. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js +53 -26
  853. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js.map +1 -1
  854. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js +4 -2
  855. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js.map +1 -1
  856. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js +1 -29
  857. package/build/dist/Server/Utils/AI/CodeFix/CodeFixReadiness.js.map +1 -1
  858. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js +24 -24
  859. package/build/dist/Server/Utils/AI/CodeFix/FixRunBudget.js.map +1 -1
  860. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +1036 -32
  861. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
  862. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +661 -41
  863. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
  864. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js +21 -1
  865. package/build/dist/Server/Utils/AI/Remediation/RemediationPlanRunner.js.map +1 -1
  866. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js +354 -0
  867. package/build/dist/Server/Utils/AI/ResourceAccess/InfrastructureInvestigationToolkit.js.map +1 -0
  868. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js +160 -0
  869. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessContext.js.map +1 -0
  870. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js +33 -0
  871. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAccessToolNames.js.map +1 -0
  872. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js +640 -0
  873. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiAccessSettings.js.map +1 -0
  874. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js +226 -0
  875. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceAiDeleteCleanup.js.map +1 -0
  876. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js +602 -0
  877. package/build/dist/Server/Utils/AI/ResourceAccess/ResourceCommandJobRunner.js.map +1 -0
  878. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +90 -14
  879. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  880. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js +73 -10
  881. package/build/dist/Server/Utils/AI/SRE/AlertInvestigationRunner.js.map +1 -1
  882. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js +73 -10
  883. package/build/dist/Server/Utils/AI/SRE/IncidentInvestigationRunner.js.map +1 -1
  884. package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js +15 -18
  885. package/build/dist/Server/Utils/AI/SRE/InvestigationQueue.js.map +1 -1
  886. package/build/dist/Server/Utils/AI/SRE/InvestigationThread.js +412 -0
  887. package/build/dist/Server/Utils/AI/SRE/InvestigationThread.js.map +1 -0
  888. package/build/dist/Server/Utils/AI/SRE/InvestigationThreadService.js +495 -0
  889. package/build/dist/Server/Utils/AI/SRE/InvestigationThreadService.js.map +1 -0
  890. package/build/dist/Server/Utils/AI/Toolbox/Serializer.js +10 -3
  891. package/build/dist/Server/Utils/AI/Toolbox/Serializer.js.map +1 -1
  892. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +290 -13
  893. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
  894. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js +29 -1
  895. package/build/dist/Server/Utils/AutoRemediation/RemediationVerifier.js.map +1 -1
  896. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +9 -1
  897. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
  898. package/build/dist/Server/Utils/EditionEnforcement.js +20 -158
  899. package/build/dist/Server/Utils/EditionEnforcement.js.map +1 -1
  900. package/build/dist/Server/Utils/LLM/LLMService.js +193 -54
  901. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  902. package/build/dist/Server/Utils/RelaxedScimTeamLocksReport.js +160 -0
  903. package/build/dist/Server/Utils/RelaxedScimTeamLocksReport.js.map +1 -0
  904. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js +25 -0
  905. package/build/dist/Server/Utils/Rules/RuleRun/RuleRunRegistry.js.map +1 -1
  906. package/build/dist/Server/Utils/SameOriginRequest.js +151 -0
  907. package/build/dist/Server/Utils/SameOriginRequest.js.map +1 -0
  908. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js +627 -0
  909. package/build/dist/Server/Utils/SessionReplay/SessionReplayBudgetMetrics.js.map +1 -0
  910. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js +60 -5
  911. package/build/dist/Server/Utils/SessionReplay/SessionReplayUsage.js.map +1 -1
  912. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js +2 -0
  913. package/build/dist/Server/Utils/TeamMember/ProjectLeaveResourceCleanup.js.map +1 -1
  914. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +4 -1
  915. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
  916. package/build/dist/Server/Utils/Telemetry/MessageQueueDiscovery.js +1015 -0
  917. package/build/dist/Server/Utils/Telemetry/MessageQueueDiscovery.js.map +1 -0
  918. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +4 -1
  919. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -1
  920. package/build/dist/Server/Utils/VendorAssets.js +3 -3
  921. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js +19 -15
  922. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Alert.js.map +1 -1
  923. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js +19 -15
  924. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/AlertEpisode.js.map +1 -1
  925. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js +17 -1
  926. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Auth.js.map +1 -1
  927. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js +186 -210
  928. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/Incident.js.map +1 -1
  929. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js +22 -16
  930. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/IncidentEpisode.js.map +1 -1
  931. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js +233 -167
  932. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/Actions/ScheduledMaintenance.js.map +1 -1
  933. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +273 -111
  934. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  935. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js +129 -0
  936. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsActivityDeduplicator.js.map +1 -0
  937. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js +266 -0
  938. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCardChoices.js.map +1 -0
  939. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js +258 -0
  940. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsCreateCommands.js.map +1 -0
  941. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js +104 -0
  942. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsMessageSize.js.map +1 -0
  943. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js +183 -0
  944. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsReplies.js.map +1 -0
  945. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js +123 -0
  946. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeamsTimezone.js.map +1 -0
  947. package/build/dist/Types/AI/AIAgentRunLimits.js +91 -0
  948. package/build/dist/Types/AI/AIAgentRunLimits.js.map +1 -0
  949. package/build/dist/Types/AI/ResourceAiAccessApi.js +30 -0
  950. package/build/dist/Types/AI/ResourceAiAccessApi.js.map +1 -0
  951. package/build/dist/Types/AI/ResourceAiAccessPermissions.js +98 -0
  952. package/build/dist/Types/AI/ResourceAiAccessPermissions.js.map +1 -0
  953. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +116 -29
  954. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -1
  955. package/build/dist/Types/Code/CodeType.js +2 -0
  956. package/build/dist/Types/Code/CodeType.js.map +1 -1
  957. package/build/dist/Types/Code/JsonSyntax.js +604 -0
  958. package/build/dist/Types/Code/JsonSyntax.js.map +1 -0
  959. package/build/dist/Types/CustomField/CustomFieldCreateSettings.js +310 -0
  960. package/build/dist/Types/CustomField/CustomFieldCreateSettings.js.map +1 -0
  961. package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js +38 -0
  962. package/build/dist/Types/CustomField/CustomFieldMappingCatalog.js.map +1 -1
  963. package/build/dist/Types/CustomField/CustomFieldValueValidator.js +10 -7
  964. package/build/dist/Types/CustomField/CustomFieldValueValidator.js.map +1 -1
  965. package/build/dist/Types/EnterpriseLicense/EnterpriseLicensePeriods.js +1 -1
  966. package/build/dist/Types/Icon/IconProp.js +2 -0
  967. package/build/dist/Types/Icon/IconProp.js.map +1 -1
  968. package/build/dist/Types/Incident/IncidentFormIpAllowlist.js +119 -0
  969. package/build/dist/Types/Incident/IncidentFormIpAllowlist.js.map +1 -0
  970. package/build/dist/Types/Incident/IncidentFormPublic.js +678 -0
  971. package/build/dist/Types/Incident/IncidentFormPublic.js.map +1 -0
  972. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js +10 -3
  973. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js.map +1 -1
  974. package/build/dist/Types/MessageQueue/MessageQueueIdentity.js +184 -0
  975. package/build/dist/Types/MessageQueue/MessageQueueIdentity.js.map +1 -0
  976. package/build/dist/Types/MessageQueue/MessageQueueManualIdentity.js +190 -0
  977. package/build/dist/Types/MessageQueue/MessageQueueManualIdentity.js.map +1 -0
  978. package/build/dist/Types/MessageQueue/MessageQueueMetricCatalog.js +1057 -0
  979. package/build/dist/Types/MessageQueue/MessageQueueMetricCatalog.js.map +1 -0
  980. package/build/dist/Types/MessageQueue/MessagingSystem.js +394 -0
  981. package/build/dist/Types/MessageQueue/MessagingSystem.js.map +1 -0
  982. package/build/dist/Types/MessageQueue/MessagingTelemetryResolver.js +1768 -0
  983. package/build/dist/Types/MessageQueue/MessagingTelemetryResolver.js.map +1 -0
  984. package/build/dist/Types/Monitor/MessageQueueAlertTemplates.js +1207 -0
  985. package/build/dist/Types/Monitor/MessageQueueAlertTemplates.js.map +1 -0
  986. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +47 -21
  987. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  988. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +5 -0
  989. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  990. package/build/dist/Types/Monitor/RumAlertTemplates.js +199 -3
  991. package/build/dist/Types/Monitor/RumAlertTemplates.js.map +1 -1
  992. package/build/dist/Types/Permission.js +274 -0
  993. package/build/dist/Types/Permission.js.map +1 -1
  994. package/build/dist/Types/ResourceAiAgent/AiResourceType.js +242 -0
  995. package/build/dist/Types/ResourceAiAgent/AiResourceType.js.map +1 -0
  996. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js +281 -0
  997. package/build/dist/Types/ResourceAiAgent/ResourceAiAccess.js.map +1 -0
  998. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +12 -0
  999. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -1
  1000. package/build/dist/Types/Rules/RuleRun.js +4 -0
  1001. package/build/dist/Types/Rules/RuleRun.js.map +1 -1
  1002. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js +45 -0
  1003. package/build/dist/Types/Rum/SessionReplayBudgetMetricType.js.map +1 -0
  1004. package/build/dist/Types/Runbook/RunbookStepType.js +27 -0
  1005. package/build/dist/Types/Runbook/RunbookStepType.js.map +1 -1
  1006. package/build/dist/Types/Team/ComplianceNotificationChannel.js +4 -3
  1007. package/build/dist/Types/Team/ComplianceNotificationChannel.js.map +1 -1
  1008. package/build/dist/Types/Team/ComplianceRule.js +48 -14
  1009. package/build/dist/Types/Team/ComplianceRule.js.map +1 -1
  1010. package/build/dist/Types/Team/ComplianceRuleType.js +2 -2
  1011. package/build/dist/Types/Telemetry/EntityType.js +16 -0
  1012. package/build/dist/Types/Telemetry/EntityType.js.map +1 -1
  1013. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +13 -2
  1014. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -1
  1015. package/build/dist/Types/XML.js +23 -0
  1016. package/build/dist/Types/XML.js.map +1 -1
  1017. package/build/dist/UI/Components/CodeEditor/CodeEditor.js +641 -266
  1018. package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
  1019. package/build/dist/UI/Components/CodeEditor/CodeEditorCommands.js +464 -0
  1020. package/build/dist/UI/Components/CodeEditor/CodeEditorCommands.js.map +1 -0
  1021. package/build/dist/UI/Components/CodeEditor/CodeEditorHighlight.js +69 -0
  1022. package/build/dist/UI/Components/CodeEditor/CodeEditorHighlight.js.map +1 -0
  1023. package/build/dist/UI/Components/CodeEditor/CodeEditorLanguages.js +108 -0
  1024. package/build/dist/UI/Components/CodeEditor/CodeEditorLanguages.js.map +1 -0
  1025. package/build/dist/UI/Components/CodeEditor/YamlEditor.js +14 -186
  1026. package/build/dist/UI/Components/CodeEditor/YamlEditor.js.map +1 -1
  1027. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js +5 -1
  1028. package/build/dist/UI/Components/CopyTextButton/CopyTextButton.js.map +1 -1
  1029. package/build/dist/UI/Components/CustomFields/CustomFieldModelFormFields.js +5 -14
  1030. package/build/dist/UI/Components/CustomFields/CustomFieldModelFormFields.js.map +1 -1
  1031. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +14 -13
  1032. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  1033. package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js +1 -1
  1034. package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js.map +1 -1
  1035. package/build/dist/UI/Components/Forms/Fields/FormField.js +8 -3
  1036. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  1037. package/build/dist/UI/Components/Icon/Icon.js +8 -0
  1038. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  1039. package/build/dist/UI/Components/Input/Input.js +11 -3
  1040. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  1041. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +2 -1
  1042. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  1043. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +14 -4
  1044. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  1045. package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js +0 -0
  1046. package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js.map +1 -1
  1047. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js +710 -65
  1048. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditor.js.map +1 -1
  1049. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditorHistory.js +238 -0
  1050. package/build/dist/UI/Components/Markdown.tsx/MarkdownEditorHistory.js.map +1 -0
  1051. package/build/dist/UI/Components/Markdown.tsx/MarkdownListEditing.js +1028 -0
  1052. package/build/dist/UI/Components/Markdown.tsx/MarkdownListEditing.js.map +1 -0
  1053. package/build/dist/UI/Components/Markdown.tsx/MarkdownPaste.js +1088 -0
  1054. package/build/dist/UI/Components/Markdown.tsx/MarkdownPaste.js.map +1 -0
  1055. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +70 -10
  1056. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  1057. package/build/dist/UI/Components/Markdown.tsx/MarkdownVisualEditing.js +887 -0
  1058. package/build/dist/UI/Components/Markdown.tsx/MarkdownVisualEditing.js.map +1 -0
  1059. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +57 -6
  1060. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  1061. package/build/dist/UI/Components/ResetObjectID/ResetObjectID.js +7 -5
  1062. package/build/dist/UI/Components/ResetObjectID/ResetObjectID.js.map +1 -1
  1063. package/build/dist/UI/Components/Table/EmptyTableMessage.js +51 -0
  1064. package/build/dist/UI/Components/Table/EmptyTableMessage.js.map +1 -0
  1065. package/build/dist/UI/Components/Table/Table.js +30 -11
  1066. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  1067. package/build/dist/UI/Components/Table/TableRow.js +9 -2
  1068. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  1069. package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js +63 -1
  1070. package/build/dist/UI/Components/TelemetryViewer/FacetVisibility.js.map +1 -1
  1071. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +4 -2
  1072. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  1073. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js +91 -10
  1074. package/build/dist/UI/Components/TelemetryViewer/components/LockedFilterChip.js.map +1 -1
  1075. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +14 -4
  1076. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  1077. package/build/dist/UI/Components/TextArea/TextArea.js +9 -3
  1078. package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
  1079. package/build/dist/UI/Components/Workflow/ModelFieldPicker.js +1 -2
  1080. package/build/dist/UI/Components/Workflow/ModelFieldPicker.js.map +1 -1
  1081. package/build/dist/Utils/AI/InvestigationReport.js +71 -11
  1082. package/build/dist/Utils/AI/InvestigationReport.js.map +1 -1
  1083. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js +1462 -0
  1084. package/build/dist/Utils/AiRemediation/Resource/CephCommandPolicy.js.map +1 -0
  1085. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js +122 -0
  1086. package/build/dist/Utils/AiRemediation/Resource/DatabaseCommandPolicy.js.map +1 -0
  1087. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js +1139 -0
  1088. package/build/dist/Utils/AiRemediation/Resource/DatabaseDiagnosticCatalog.js.map +1 -0
  1089. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js +1060 -0
  1090. package/build/dist/Utils/AiRemediation/Resource/DatabaseQueryRedactor.js.map +1 -0
  1091. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js +1301 -0
  1092. package/build/dist/Utils/AiRemediation/Resource/DockerCliGrammar.js.map +1 -0
  1093. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js +370 -0
  1094. package/build/dist/Utils/AiRemediation/Resource/DockerEngineCommandPolicy.js.map +1 -0
  1095. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js +498 -0
  1096. package/build/dist/Utils/AiRemediation/Resource/DockerSwarmCommandPolicy.js.map +1 -0
  1097. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js +1565 -0
  1098. package/build/dist/Utils/AiRemediation/Resource/GovcCommandPolicy.js.map +1 -0
  1099. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js +2206 -0
  1100. package/build/dist/Utils/AiRemediation/Resource/HostCommandPolicy.js.map +1 -0
  1101. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js +1129 -0
  1102. package/build/dist/Utils/AiRemediation/Resource/ProxmoxCommandPolicy.js.map +1 -0
  1103. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js +565 -0
  1104. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicy.js.map +1 -0
  1105. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js +408 -0
  1106. package/build/dist/Utils/AiRemediation/Resource/ResourceCommandPolicyCore.js.map +1 -0
  1107. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js +1910 -0
  1108. package/build/dist/Utils/AiRemediation/Resource/ResourceOutputRedactor.js.map +1 -0
  1109. package/build/dist/Utils/LabelRuleImportExport.js +2 -0
  1110. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
  1111. package/build/dist/Utils/Markdown/UntrustedMarkdown.js +988 -0
  1112. package/build/dist/Utils/Markdown/UntrustedMarkdown.js.map +1 -0
  1113. package/build/dist/Utils/Monitor/IncomingEmailMonitorRequestUtil.js +34 -0
  1114. package/build/dist/Utils/Monitor/IncomingEmailMonitorRequestUtil.js.map +1 -0
  1115. package/build/dist/Utils/Monitor/MonitorLogSummaryUtil.js +148 -0
  1116. package/build/dist/Utils/Monitor/MonitorLogSummaryUtil.js.map +1 -0
  1117. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js +160 -0
  1118. package/build/dist/Utils/SessionReplay/SessionReplayBudgetMetricType.js.map +1 -0
  1119. package/build/dist/Utils/Telemetry/EntityKey.js +36 -0
  1120. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -1
  1121. package/package.json +1 -3
  1122. package/Server/Utils/CommunityEditionSsoReport.ts +0 -361
  1123. package/Tests/App/Accounts/LoginSsoEdition.test.tsx +0 -616
  1124. package/Tests/App/AdminDashboard/AdminAuthenticationSsoEdition.test.tsx +0 -217
  1125. package/Tests/App/AdminDashboard/GlobalSSOEnterpriseShells.test.tsx +0 -271
  1126. package/Tests/App/Dashboard/CloudDocumentationMarkdown.test.ts +0 -215
  1127. package/Tests/App/Dashboard/TelemetryResourceRetentionSettings.test.tsx +0 -784
  1128. package/Tests/Server/Middleware/UserAuthorizationEditionEnforcement.test.ts +0 -518
  1129. package/Tests/Server/Services/SsoRequirementReadMasking.test.ts +0 -419
  1130. package/Tests/Server/Services/SsoRequirementWriteGuard.test.ts +0 -769
  1131. package/Tests/UI/Components/CodeEditor.test.tsx +0 -638
  1132. package/Tests/UI/Components/MonacoLoader.test.ts +0 -67
  1133. package/Tests/UI/Components/MonacoRuntime.test.ts +0 -121
  1134. package/Tests/UI/Components/Telemetry/TelemetryRetentionConfigForm.test.tsx +0 -329
  1135. package/Tests/UI/Components/YamlEditor.test.tsx +0 -847
  1136. package/UI/Components/CodeEditor/MonacoLoader.ts +0 -36
  1137. package/UI/Components/Telemetry/TelemetryRetentionConfigForm.tsx +0 -319
  1138. package/UI/Components/Telemetry/TelemetryRetentionConfigSummary.tsx +0 -223
  1139. package/build/dist/Server/Utils/CommunityEditionSsoReport.js +0 -223
  1140. package/build/dist/Server/Utils/CommunityEditionSsoReport.js.map +0 -1
  1141. package/build/dist/UI/Components/CodeEditor/MonacoLoader.js +0 -34
  1142. package/build/dist/UI/Components/CodeEditor/MonacoLoader.js.map +0 -1
  1143. package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js +0 -171
  1144. package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js.map +0 -1
  1145. package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigSummary.js +0 -119
  1146. package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigSummary.js.map +0 -1
@@ -0,0 +1,1357 @@
1
+ import AggregationType from "../BaseDatabase/AggregationType";
2
+ import { normalizeMessagingSystem } from "./MessagingSystem";
3
+
4
+ /*
5
+ * The curated broker health metrics a queue's page charts, per messaging
6
+ * system, from the sources MessagingSystem names: collector-contrib 0.161.0
7
+ * receivers (kafka_metrics, rabbitmq, azure_monitor, aws_cloudwatch /
8
+ * awsfirehose, googlecloudmonitoring), Prometheus scrapes of the Pulsar and
9
+ * RocketMQ brokers, and the OpenTelemetry JMX Scraper for ActiveMQ. Every
10
+ * name and attribute key was read from the receiver's source or seen
11
+ * arriving from a real broker (see the research notes in each system's
12
+ * comment). Names are lowercase, exactly as ingest stores them; attribute
13
+ * keys are the STORED keys — datapoint attributes bare, resource attributes
14
+ * with the `resource.` prefix, a kvlist flattened to `<key>.<nestedKey>`
15
+ * (CloudWatch's `Dimensions.QueueName`).
16
+ *
17
+ * An entry is also how a datapoint FINDS its queue — the broker metrics
18
+ * carry no `messaging.system`, so the name alone says which system reports
19
+ * it (resolveMessagingMetricDatapoint):
20
+ *
21
+ * - `requiredAttributes` must all match, case-insensitively, before the
22
+ * entry applies: the same Azure Monitor name (`azure_incomingmessages_total`)
23
+ * is emitted for Service Bus AND Event Hubs, told apart only by the
24
+ * resource `type` attribute; a CloudWatch Metric Stream in JSON format
25
+ * sends bare names (`numberofmessagessent`) whose namespace survives
26
+ * only as `resource.service.name`;
27
+ * - `destinationAttributes` hold the destination, first non-empty wins —
28
+ * spellings of one key (Azure's dimension keys arrive lowercased, but
29
+ * its docs spell them PascalCase) or of one metric across naming
30
+ * generations (the JMX Scraper's `messaging.destination.name` and its
31
+ * legacy `destination`);
32
+ * - `scopeAttributes` hold the broker scope of a namespace-scoped system:
33
+ * Azure Monitor's per-resource `name` is the namespace.
34
+ *
35
+ * `kind` decides how a metric is drawn:
36
+ * - "gauge" — a value at a point in time. That includes the per-period
37
+ * counts cloud monitoring reports (Azure's `*_total`, CloudWatch's
38
+ * NumberOfMessagesSent, Pub/Sub's DELTA counts): each point is already
39
+ * the count for its minute or period, not a running total, so it is
40
+ * summed within a bucket (aggregation Sum), never turned into a rate.
41
+ * - "counter" — a cumulative running total (rabbitmq.message.published,
42
+ * Kafka offsets, Pulsar's `*_total`, which Pulsar declares as a gauge
43
+ * but whose value only grows). The dashboard charts its per-second
44
+ * rate, and alert templates never threshold one.
45
+ *
46
+ * Series combine the way DatabaseServerMetricCatalog's do: `aggregation`
47
+ * folds the samples of ONE series inside a bucket, then `seriesCombine`
48
+ * folds the series of that bucket into the one value a tile shows — "sum"
49
+ * for parts of a whole (a RabbitMQ queue's ready and unacknowledged
50
+ * messages, a Pulsar topic's partitions), "max" for the worst one (the
51
+ * consumer group furthest behind; also for a cloud metric whose only extra
52
+ * series are the same queue reported twice, by two collectors), "avg" for
53
+ * ratios. Gauges are grouped by `seriesKeys`; a counter is grouped by its
54
+ * whole attribute set, turned into a rate per series, and the rates summed
55
+ * — so counters always use aggregation Max and seriesCombine "sum", and
56
+ * carry no seriesKeys.
57
+ */
58
+
59
+ export type MessageQueueSignal =
60
+ | "backlog"
61
+ | "deadLetter"
62
+ | "consumerLag"
63
+ | "published"
64
+ | "consumed"
65
+ | "errors"
66
+ | "throttled"
67
+ | "oldestMessageAge"
68
+ | "consumers";
69
+
70
+ export type MessageQueueMetricKind = "gauge" | "counter";
71
+
72
+ export type MessageQueueMetricAggregation =
73
+ | AggregationType.Avg
74
+ | AggregationType.Sum
75
+ | AggregationType.Max
76
+ | AggregationType.Min;
77
+
78
+ export type MessageQueueMetricSeriesCombine = "sum" | "max" | "avg";
79
+
80
+ export interface MessageQueueMetricDescriptor {
81
+ // The canonical system this metric belongs to (MESSAGING_SYSTEMS).
82
+ system: string;
83
+ // Lowercase, exactly as stored (ingest lowercases metric names).
84
+ metricName: string;
85
+ // Unique per system.
86
+ title: string;
87
+ // Full sentence(s) ending in ".".
88
+ description: string;
89
+ // Display unit: "messages", "s", "ms", "requests", "consumers".
90
+ unit: string;
91
+ signal: MessageQueueSignal;
92
+ kind: MessageQueueMetricKind;
93
+ // How the samples of ONE series combine inside a time bucket.
94
+ aggregation: MessageQueueMetricAggregation;
95
+ // How the series of a bucket combine into the queue's value.
96
+ seriesCombine: MessageQueueMetricSeriesCombine;
97
+ /*
98
+ * Stored keys holding the destination, first non-empty wins (resource
99
+ * keys WITH the `resource.` prefix).
100
+ */
101
+ destinationAttributes: ReadonlyArray<string>;
102
+ // Stored keys holding the broker scope (Azure: the namespace, `name`).
103
+ scopeAttributes?: ReadonlyArray<string> | undefined;
104
+ /*
105
+ * Stored key → accepted values, compared case-insensitively; every key
106
+ * must be present with one of its values for the entry to apply.
107
+ */
108
+ requiredAttributes?:
109
+ | Readonly<Record<string, ReadonlyArray<string>>>
110
+ | undefined;
111
+ /*
112
+ * Gauges only: attribute keys whose values are separate series (combined
113
+ * by seriesCombine) rather than samples of one — RabbitMQ's `state`, a
114
+ * Kafka consumer `group`.
115
+ */
116
+ seriesKeys?: ReadonlyArray<string> | undefined;
117
+ /*
118
+ * Stored keys that mark a finer-grained REPEAT of the metric: a datapoint
119
+ * carrying any of them (non-blank) belongs to no queue, because a coarser
120
+ * series of the same queue already counts it and adding both would count
121
+ * every message twice. Pulsar writes pulsar_out_messages_total once per
122
+ * subscription and, with exposeConsumerLevelMetricsInPrometheus=true,
123
+ * again per consumer (labels `consumer_name`, `consumer_id`; TopicStats
124
+ * writeConsumerMetric). The resolver drops such a datapoint, so a chart
125
+ * scoped by the queue's entity key sums the coarser series alone.
126
+ */
127
+ excludeSeriesWithAttributes?: ReadonlyArray<string> | undefined;
128
+ /*
129
+ * The component that emits it, as MessagingBrokerMetricsSource names it:
130
+ * a receiver, "prometheus", or the external scraper.
131
+ */
132
+ receiver: string;
133
+ // Whether that component emits it without extra configuration.
134
+ enabledByDefault: boolean;
135
+ }
136
+
137
+ // ---- Apache Kafka — collector `kafka_metrics` receiver ------------------
138
+ /*
139
+ * Datapoint attributes `group`, `topic` (the topic NAME) and `partition`
140
+ * (an int), from receiver/kafkametricsreceiver generated_metrics.go
141
+ * @v0.161.0 and a live capture against Kafka 4.1.0. Lag and offsets are
142
+ * reported only for partitions a group has committed on.
143
+ */
144
+ const KAFKA_RECEIVER: string = "kafka_metrics";
145
+ const KAFKA_TOPIC_KEYS: ReadonlyArray<string> = ["topic"];
146
+
147
+ // ---- RabbitMQ — collector `rabbitmq` receiver ----------------------------
148
+ /*
149
+ * One resource per queue: `rabbitmq.queue.name`, `rabbitmq.vhost.name`,
150
+ * `rabbitmq.node.name` (stored with the `resource.` prefix);
151
+ * rabbitmq.message.current splits by the datapoint attribute `state`
152
+ * (ready | unacknowledged). The message_stats counters are ABSENT, not 0,
153
+ * until the activity they count first happens.
154
+ */
155
+ const RABBITMQ_RECEIVER: string = "rabbitmq";
156
+ const RABBITMQ_QUEUE_KEYS: ReadonlyArray<string> = [
157
+ "resource.rabbitmq.queue.name",
158
+ ];
159
+
160
+ // ---- Apache ActiveMQ — the OpenTelemetry JMX Scraper ----------------------
161
+ /*
162
+ * Two naming generations of the scraper's bundled `activemq` rules:
163
+ * 1.53.0-alpha and later (and the Java agent from 2.23.0) name the
164
+ * destination `messaging.destination.name`, with `activemq.destination.type`
165
+ * and `activemq.broker.name`; 1.52.0 and earlier (or
166
+ * OTEL_JMX_TARGET_SOURCE=legacy) name it `destination`, with `broker`, and
167
+ * spell two metrics differently (activemq.message.current,
168
+ * activemq.message.wait_time.avg in ms). Both captured live against
169
+ * ActiveMQ Classic 6.2.0. Names shared by both generations list both keys.
170
+ */
171
+ const JMX_SCRAPER: string = "OpenTelemetry JMX Scraper";
172
+ const ACTIVEMQ_DESTINATION_KEYS: ReadonlyArray<string> = [
173
+ "messaging.destination.name",
174
+ ];
175
+ const ACTIVEMQ_LEGACY_DESTINATION_KEYS: ReadonlyArray<string> = ["destination"];
176
+ const ACTIVEMQ_ANY_DESTINATION_KEYS: ReadonlyArray<string> = [
177
+ "messaging.destination.name",
178
+ "destination",
179
+ ];
180
+
181
+ // ---- Azure Service Bus / Event Hubs — collector `azure_monitor` receiver --
182
+ /*
183
+ * Metric names are `azure_<metric>_<aggregation>`, lowercased; every point
184
+ * is a double Gauge per PT1M bucket (a `_total` is that minute's sum, not a
185
+ * running total). Datapoint attributes: `type` (the resource type, whose
186
+ * casing varies — Microsoft.ServiceBus/Namespaces in ARM responses), `name`
187
+ * (the namespace) and `metadata_<dimension>` per split dimension. Azure
188
+ * returns dimension names lowercased (`metadata_entityname`), but that was
189
+ * inferred rather than captured, so the documented PascalCase spelling is
190
+ * accepted too. The EntityName value `-NamespaceOnlyMetric-` is not a queue
191
+ * (MessagingTelemetryResolver drops it).
192
+ */
193
+ const AZURE_MONITOR: string = "azure_monitor";
194
+ const AZURE_ENTITY_KEYS: ReadonlyArray<string> = [
195
+ "metadata_entityname",
196
+ "metadata_EntityName",
197
+ ];
198
+ const AZURE_NAMESPACE_KEYS: ReadonlyArray<string> = ["name"];
199
+ const SERVICE_BUS_NAMESPACE_TYPE: Readonly<
200
+ Record<string, ReadonlyArray<string>>
201
+ > = { type: ["microsoft.servicebus/namespaces"] };
202
+ const EVENT_HUBS_NAMESPACE_TYPE: Readonly<
203
+ Record<string, ReadonlyArray<string>>
204
+ > = { type: ["microsoft.eventhub/namespaces"] };
205
+ const AZURE_OPERATION_RESULT_KEYS: ReadonlyArray<string> = [
206
+ "metadata_operationresult",
207
+ "metadata_OperationResult",
208
+ ];
209
+ const AZURE_THROTTLE_KEYS: ReadonlyArray<string> = [
210
+ ...AZURE_OPERATION_RESULT_KEYS,
211
+ "metadata_messagingerrorsubcode",
212
+ "metadata_MessagingErrorSubCode",
213
+ ];
214
+
215
+ // ---- Amazon SQS / SNS — collector `aws_cloudwatch` or `awsfirehose` --------
216
+ /*
217
+ * Two shapes of the same CloudWatch metric. The `aws_cloudwatch` receiver
218
+ * and a Metric Stream in OpenTelemetry 1.0 format name it
219
+ * `amazonaws.com/AWS/SQS/<Metric>` with the dimensions in a kvlist
220
+ * (`Dimensions.QueueName` once flattened); a Metric Stream in JSON format
221
+ * sends the bare `<Metric>` with a plain `QueueName` attribute, and says
222
+ * which service it is only through `resource.service.name` ("SQS"). Points
223
+ * are Summaries holding one CloudWatch period: Avg reads CloudWatch's
224
+ * Average, Sum its Sum. Configure the pull receiver without `stats`, which
225
+ * would split each metric into one series per statistic.
226
+ */
227
+ const CLOUDWATCH_PULL: string = "aws_cloudwatch";
228
+ const CLOUDWATCH_STREAM: string = "awsfirehose";
229
+ const SQS_METRIC_PREFIX: string = "amazonaws.com/aws/sqs/";
230
+ const SNS_METRIC_PREFIX: string = "amazonaws.com/aws/sns/";
231
+ const SQS_JSON_SERVICE: Readonly<Record<string, ReadonlyArray<string>>> = {
232
+ "resource.service.name": ["sqs"],
233
+ };
234
+ const SNS_JSON_SERVICE: Readonly<Record<string, ReadonlyArray<string>>> = {
235
+ "resource.service.name": ["sns"],
236
+ };
237
+ const JSON_STREAM_TITLE_SUFFIX: string = " (JSON stream)";
238
+
239
+ // ---- Google Cloud Pub/Sub — collector `googlecloudmonitoring` receiver ----
240
+ /*
241
+ * The name is the Cloud Monitoring metric type verbatim; the monitored
242
+ * resource's labels (`subscription_id` / `topic_id`, `project_id`) are
243
+ * RESOURCE attributes, the metric's labels (`response_code`,
244
+ * `delivery_type`, …) datapoint attributes from collector v0.137.0 (resource
245
+ * attributes in v0.116.0–v0.136.x, hence both spellings as series keys).
246
+ * The receiver only reads the metric types listed in its `metrics_list`.
247
+ */
248
+ const CLOUD_MONITORING: string = "googlecloudmonitoring";
249
+ const PUBSUB_SUBSCRIPTION_KEYS: ReadonlyArray<string> = [
250
+ "resource.subscription_id",
251
+ ];
252
+ const PUBSUB_TOPIC_KEYS: ReadonlyArray<string> = ["resource.topic_id"];
253
+
254
+ // ---- Apache Pulsar / Apache RocketMQ — collector `prometheus` receiver ----
255
+ /*
256
+ * Prometheus labels arrive as datapoint attributes. Pulsar labels topic
257
+ * series `cluster`, `namespace`, `topic` (the full
258
+ * persistent://tenant/namespace/topic, `-partition-N` per partition) and
259
+ * subscription series add `subscription` — captured live from Pulsar 4.2.4.
260
+ * RocketMQ 5 brokers (metricsExporterType=PROM) label lag series `topic`,
261
+ * `consumer_group`, `is_retry`, `is_system`.
262
+ */
263
+ const PROMETHEUS: string = "prometheus";
264
+ const PULSAR_TOPIC_KEYS: ReadonlyArray<string> = ["topic"];
265
+ const PULSAR_TOPIC_SERIES_KEYS: ReadonlyArray<string> = [
266
+ "cluster",
267
+ "topic",
268
+ "partition",
269
+ ];
270
+ // The labels only Pulsar's consumer-level series carry.
271
+ const PULSAR_CONSUMER_KEYS: ReadonlyArray<string> = [
272
+ "consumer_name",
273
+ "consumer_id",
274
+ ];
275
+ const ROCKETMQ_TOPIC_KEYS: ReadonlyArray<string> = ["topic"];
276
+
277
+ function sqsMetric(data: {
278
+ cloudWatchName: string;
279
+ title: string;
280
+ description: string;
281
+ unit: string;
282
+ signal: MessageQueueSignal;
283
+ aggregation: MessageQueueMetricAggregation;
284
+ }): Array<MessageQueueMetricDescriptor> {
285
+ return awsMetricPair({
286
+ ...data,
287
+ system: "aws_sqs",
288
+ prefix: SQS_METRIC_PREFIX,
289
+ dimension: "QueueName",
290
+ jsonService: SQS_JSON_SERVICE,
291
+ });
292
+ }
293
+
294
+ function snsMetric(data: {
295
+ cloudWatchName: string;
296
+ title: string;
297
+ description: string;
298
+ unit: string;
299
+ signal: MessageQueueSignal;
300
+ aggregation: MessageQueueMetricAggregation;
301
+ }): Array<MessageQueueMetricDescriptor> {
302
+ return awsMetricPair({
303
+ ...data,
304
+ system: "aws.sns",
305
+ prefix: SNS_METRIC_PREFIX,
306
+ dimension: "TopicName",
307
+ jsonService: SNS_JSON_SERVICE,
308
+ });
309
+ }
310
+
311
+ // The same CloudWatch metric in both shapes (see CLOUDWATCH_PULL above).
312
+ function awsMetricPair(data: {
313
+ system: string;
314
+ prefix: string;
315
+ dimension: string;
316
+ jsonService: Readonly<Record<string, ReadonlyArray<string>>>;
317
+ cloudWatchName: string;
318
+ title: string;
319
+ description: string;
320
+ unit: string;
321
+ signal: MessageQueueSignal;
322
+ aggregation: MessageQueueMetricAggregation;
323
+ }): Array<MessageQueueMetricDescriptor> {
324
+ const name: string = data.cloudWatchName.toLowerCase();
325
+ const common: {
326
+ system: string;
327
+ description: string;
328
+ unit: string;
329
+ signal: MessageQueueSignal;
330
+ kind: MessageQueueMetricKind;
331
+ aggregation: MessageQueueMetricAggregation;
332
+ seriesCombine: MessageQueueMetricSeriesCombine;
333
+ enabledByDefault: boolean;
334
+ } = {
335
+ system: data.system,
336
+ description: data.description,
337
+ unit: data.unit,
338
+ signal: data.signal,
339
+ kind: "gauge",
340
+ aggregation: data.aggregation,
341
+ // One series per queue; a second one is the same queue reported twice.
342
+ seriesCombine: "max",
343
+ enabledByDefault: true,
344
+ };
345
+ return [
346
+ {
347
+ ...common,
348
+ metricName: `${data.prefix}${name}`,
349
+ title: data.title,
350
+ destinationAttributes: [`Dimensions.${data.dimension}`],
351
+ receiver: CLOUDWATCH_PULL,
352
+ },
353
+ {
354
+ ...common,
355
+ metricName: name,
356
+ title: `${data.title}${JSON_STREAM_TITLE_SUFFIX}`,
357
+ destinationAttributes: [data.dimension],
358
+ requiredAttributes: data.jsonService,
359
+ receiver: CLOUDWATCH_STREAM,
360
+ },
361
+ ];
362
+ }
363
+
364
+ export const MESSAGE_QUEUE_METRICS: ReadonlyArray<MessageQueueMetricDescriptor> =
365
+ [
366
+ // Apache Kafka.
367
+ {
368
+ system: "kafka",
369
+ metricName: "kafka.consumer_group.lag_sum",
370
+ title: "Consumer lag",
371
+ description:
372
+ "Messages a consumer group has not yet committed on this topic, added up across its partitions. With several consumer groups, the one furthest behind is shown; a group appears only once it has committed an offset on the topic.",
373
+ unit: "messages",
374
+ signal: "consumerLag",
375
+ kind: "gauge",
376
+ aggregation: AggregationType.Max,
377
+ seriesCombine: "max",
378
+ destinationAttributes: KAFKA_TOPIC_KEYS,
379
+ seriesKeys: ["group"],
380
+ receiver: KAFKA_RECEIVER,
381
+ enabledByDefault: true,
382
+ },
383
+ {
384
+ system: "kafka",
385
+ metricName: "kafka.consumer_group.lag",
386
+ title: "Partition lag",
387
+ description:
388
+ "Messages not yet committed on the single partition furthest behind, across every consumer group reading this topic. A high value next to a low consumer lag points at one stuck partition.",
389
+ unit: "messages",
390
+ signal: "consumerLag",
391
+ kind: "gauge",
392
+ aggregation: AggregationType.Max,
393
+ seriesCombine: "max",
394
+ destinationAttributes: KAFKA_TOPIC_KEYS,
395
+ seriesKeys: ["group", "partition"],
396
+ receiver: KAFKA_RECEIVER,
397
+ enabledByDefault: true,
398
+ },
399
+ {
400
+ system: "kafka",
401
+ metricName: "kafka.consumer_group.offset_sum",
402
+ title: "Consumed",
403
+ description:
404
+ "Messages consumed per second: the growth of the offsets consumer groups commit on this topic, added up across partitions and consumer groups.",
405
+ unit: "messages",
406
+ signal: "consumed",
407
+ kind: "counter",
408
+ aggregation: AggregationType.Max,
409
+ seriesCombine: "sum",
410
+ destinationAttributes: KAFKA_TOPIC_KEYS,
411
+ receiver: KAFKA_RECEIVER,
412
+ enabledByDefault: true,
413
+ },
414
+ {
415
+ system: "kafka",
416
+ metricName: "kafka.partition.current_offset",
417
+ title: "Produced",
418
+ description:
419
+ "Messages produced per second: the growth of each partition's log-end offset, added up across the topic's partitions.",
420
+ unit: "messages",
421
+ signal: "published",
422
+ kind: "counter",
423
+ aggregation: AggregationType.Max,
424
+ seriesCombine: "sum",
425
+ destinationAttributes: KAFKA_TOPIC_KEYS,
426
+ receiver: KAFKA_RECEIVER,
427
+ enabledByDefault: true,
428
+ },
429
+
430
+ // RabbitMQ.
431
+ {
432
+ system: "rabbitmq",
433
+ metricName: "rabbitmq.message.current",
434
+ title: "Queue depth",
435
+ description:
436
+ "Messages in the queue: those ready for delivery plus those delivered but not yet acknowledged (the receiver's two `state` series, added up).",
437
+ unit: "messages",
438
+ signal: "backlog",
439
+ kind: "gauge",
440
+ aggregation: AggregationType.Avg,
441
+ seriesCombine: "sum",
442
+ destinationAttributes: RABBITMQ_QUEUE_KEYS,
443
+ seriesKeys: ["state"],
444
+ receiver: RABBITMQ_RECEIVER,
445
+ enabledByDefault: true,
446
+ },
447
+ {
448
+ system: "rabbitmq",
449
+ metricName: "rabbitmq.message.published",
450
+ title: "Published",
451
+ description:
452
+ "Messages published to the queue per second. The receiver reports it once the queue has seen its first publish.",
453
+ unit: "messages",
454
+ signal: "published",
455
+ kind: "counter",
456
+ aggregation: AggregationType.Max,
457
+ seriesCombine: "sum",
458
+ destinationAttributes: RABBITMQ_QUEUE_KEYS,
459
+ receiver: RABBITMQ_RECEIVER,
460
+ enabledByDefault: true,
461
+ },
462
+ {
463
+ system: "rabbitmq",
464
+ metricName: "rabbitmq.message.delivered",
465
+ title: "Delivered",
466
+ description:
467
+ "Messages the broker pushed to consumers per second; messages fetched with `basic.get` are not counted.",
468
+ unit: "messages",
469
+ signal: "consumed",
470
+ kind: "counter",
471
+ aggregation: AggregationType.Max,
472
+ seriesCombine: "sum",
473
+ destinationAttributes: RABBITMQ_QUEUE_KEYS,
474
+ receiver: RABBITMQ_RECEIVER,
475
+ enabledByDefault: true,
476
+ },
477
+ {
478
+ system: "rabbitmq",
479
+ metricName: "rabbitmq.message.acknowledged",
480
+ title: "Acknowledged",
481
+ description: "Messages consumers acknowledged per second.",
482
+ unit: "messages",
483
+ signal: "consumed",
484
+ kind: "counter",
485
+ aggregation: AggregationType.Max,
486
+ seriesCombine: "sum",
487
+ destinationAttributes: RABBITMQ_QUEUE_KEYS,
488
+ receiver: RABBITMQ_RECEIVER,
489
+ enabledByDefault: true,
490
+ },
491
+ {
492
+ system: "rabbitmq",
493
+ metricName: "rabbitmq.message.dropped",
494
+ title: "Dropped",
495
+ description:
496
+ "Messages the broker dropped as unroutable, per second (the queue's `drop_unroutable` statistic).",
497
+ unit: "messages",
498
+ signal: "errors",
499
+ kind: "counter",
500
+ aggregation: AggregationType.Max,
501
+ seriesCombine: "sum",
502
+ destinationAttributes: RABBITMQ_QUEUE_KEYS,
503
+ receiver: RABBITMQ_RECEIVER,
504
+ enabledByDefault: true,
505
+ },
506
+ {
507
+ system: "rabbitmq",
508
+ metricName: "rabbitmq.consumer.count",
509
+ title: "Consumers",
510
+ description:
511
+ "Consumers attached to the queue; with none, nothing is draining it.",
512
+ unit: "consumers",
513
+ signal: "consumers",
514
+ kind: "gauge",
515
+ aggregation: AggregationType.Min,
516
+ seriesCombine: "sum",
517
+ destinationAttributes: RABBITMQ_QUEUE_KEYS,
518
+ receiver: RABBITMQ_RECEIVER,
519
+ enabledByDefault: true,
520
+ },
521
+
522
+ // Apache ActiveMQ.
523
+ {
524
+ system: "activemq",
525
+ metricName: "activemq.message.queue.size",
526
+ title: "Queue size",
527
+ description:
528
+ "Messages waiting on the destination to be consumed, added up across brokers.",
529
+ unit: "messages",
530
+ signal: "backlog",
531
+ kind: "gauge",
532
+ aggregation: AggregationType.Avg,
533
+ seriesCombine: "sum",
534
+ destinationAttributes: ACTIVEMQ_DESTINATION_KEYS,
535
+ seriesKeys: ["activemq.broker.name", "activemq.destination.type"],
536
+ receiver: JMX_SCRAPER,
537
+ enabledByDefault: true,
538
+ },
539
+ {
540
+ system: "activemq",
541
+ metricName: "activemq.message.current",
542
+ title: "Queue size (legacy names)",
543
+ description:
544
+ "Messages waiting on the destination to be consumed, added up across brokers, as the JMX Scraper names it in its legacy rules (version 1.52 and older, or OTEL_JMX_TARGET_SOURCE=legacy).",
545
+ unit: "messages",
546
+ signal: "backlog",
547
+ kind: "gauge",
548
+ aggregation: AggregationType.Avg,
549
+ seriesCombine: "sum",
550
+ destinationAttributes: ACTIVEMQ_LEGACY_DESTINATION_KEYS,
551
+ seriesKeys: ["broker"],
552
+ receiver: JMX_SCRAPER,
553
+ enabledByDefault: true,
554
+ },
555
+ {
556
+ system: "activemq",
557
+ metricName: "activemq.message.enqueued",
558
+ title: "Enqueued",
559
+ description: "Messages sent to the destination per second.",
560
+ unit: "messages",
561
+ signal: "published",
562
+ kind: "counter",
563
+ aggregation: AggregationType.Max,
564
+ seriesCombine: "sum",
565
+ destinationAttributes: ACTIVEMQ_ANY_DESTINATION_KEYS,
566
+ receiver: JMX_SCRAPER,
567
+ enabledByDefault: true,
568
+ },
569
+ {
570
+ system: "activemq",
571
+ metricName: "activemq.message.dequeued",
572
+ title: "Dequeued",
573
+ description:
574
+ "Messages acknowledged and removed from the destination per second.",
575
+ unit: "messages",
576
+ signal: "consumed",
577
+ kind: "counter",
578
+ aggregation: AggregationType.Max,
579
+ seriesCombine: "sum",
580
+ destinationAttributes: ACTIVEMQ_ANY_DESTINATION_KEYS,
581
+ receiver: JMX_SCRAPER,
582
+ enabledByDefault: true,
583
+ },
584
+ {
585
+ system: "activemq",
586
+ metricName: "activemq.message.expired",
587
+ title: "Expired",
588
+ description:
589
+ "Messages that expired before they were delivered, per second.",
590
+ unit: "messages",
591
+ signal: "errors",
592
+ kind: "counter",
593
+ aggregation: AggregationType.Max,
594
+ seriesCombine: "sum",
595
+ destinationAttributes: ACTIVEMQ_ANY_DESTINATION_KEYS,
596
+ receiver: JMX_SCRAPER,
597
+ enabledByDefault: true,
598
+ },
599
+ {
600
+ system: "activemq",
601
+ metricName: "activemq.consumer.count",
602
+ title: "Consumers",
603
+ description:
604
+ "Consumers subscribed to the destination, added up across brokers; with none, nothing is draining it.",
605
+ unit: "consumers",
606
+ signal: "consumers",
607
+ kind: "gauge",
608
+ aggregation: AggregationType.Min,
609
+ seriesCombine: "sum",
610
+ destinationAttributes: ACTIVEMQ_ANY_DESTINATION_KEYS,
611
+ seriesKeys: [
612
+ "activemq.broker.name",
613
+ "activemq.destination.type",
614
+ "broker",
615
+ ],
616
+ receiver: JMX_SCRAPER,
617
+ enabledByDefault: true,
618
+ },
619
+ {
620
+ system: "activemq",
621
+ metricName: "activemq.message.enqueue.average_duration",
622
+ title: "Average time in queue",
623
+ description:
624
+ "The average time a message waited on the destination before it was consumed, a running average the broker keeps (AverageEnqueueTime). It is an average, not the age of the oldest waiting message.",
625
+ unit: "s",
626
+ signal: "oldestMessageAge",
627
+ kind: "gauge",
628
+ aggregation: AggregationType.Max,
629
+ seriesCombine: "max",
630
+ destinationAttributes: ACTIVEMQ_DESTINATION_KEYS,
631
+ receiver: JMX_SCRAPER,
632
+ enabledByDefault: true,
633
+ },
634
+ {
635
+ system: "activemq",
636
+ metricName: "activemq.message.wait_time.avg",
637
+ title: "Average time in queue (legacy names)",
638
+ description:
639
+ "The average time a message waited on the destination before it was consumed (AverageEnqueueTime), in milliseconds, as the JMX Scraper names it in its legacy rules. It is an average, not the age of the oldest waiting message.",
640
+ unit: "ms",
641
+ signal: "oldestMessageAge",
642
+ kind: "gauge",
643
+ aggregation: AggregationType.Max,
644
+ seriesCombine: "max",
645
+ destinationAttributes: ACTIVEMQ_LEGACY_DESTINATION_KEYS,
646
+ receiver: JMX_SCRAPER,
647
+ enabledByDefault: true,
648
+ },
649
+
650
+ // Azure Service Bus.
651
+ {
652
+ system: "servicebus",
653
+ metricName: "azure_activemessages_average",
654
+ title: "Active messages",
655
+ description:
656
+ "Messages ready for delivery in the queue or topic (Azure Monitor's ActiveMessages, averaged over each minute). A topic's count covers all of its subscriptions.",
657
+ unit: "messages",
658
+ signal: "backlog",
659
+ kind: "gauge",
660
+ aggregation: AggregationType.Max,
661
+ seriesCombine: "max",
662
+ destinationAttributes: AZURE_ENTITY_KEYS,
663
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
664
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
665
+ receiver: AZURE_MONITOR,
666
+ enabledByDefault: true,
667
+ },
668
+ {
669
+ system: "servicebus",
670
+ metricName: "azure_deadletteredmessages_average",
671
+ title: "Dead-lettered messages",
672
+ description:
673
+ "Messages in the dead-letter sub-queue (Azure Monitor's DeadletteredMessages, averaged over each minute).",
674
+ unit: "messages",
675
+ signal: "deadLetter",
676
+ kind: "gauge",
677
+ aggregation: AggregationType.Max,
678
+ seriesCombine: "max",
679
+ destinationAttributes: AZURE_ENTITY_KEYS,
680
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
681
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
682
+ receiver: AZURE_MONITOR,
683
+ enabledByDefault: true,
684
+ },
685
+ {
686
+ system: "servicebus",
687
+ metricName: "azure_incomingmessages_total",
688
+ title: "Incoming messages",
689
+ description:
690
+ "Messages sent to the queue or topic, counted per minute by Azure Monitor (IncomingMessages), including messages auto-forwarded into it.",
691
+ unit: "messages",
692
+ signal: "published",
693
+ kind: "gauge",
694
+ aggregation: AggregationType.Sum,
695
+ seriesCombine: "sum",
696
+ destinationAttributes: AZURE_ENTITY_KEYS,
697
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
698
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
699
+ receiver: AZURE_MONITOR,
700
+ enabledByDefault: true,
701
+ },
702
+ {
703
+ system: "servicebus",
704
+ metricName: "azure_outgoingmessages_total",
705
+ title: "Outgoing messages",
706
+ description:
707
+ "Messages received from the queue or topic, counted per minute by Azure Monitor (OutgoingMessages).",
708
+ unit: "messages",
709
+ signal: "consumed",
710
+ kind: "gauge",
711
+ aggregation: AggregationType.Sum,
712
+ seriesCombine: "sum",
713
+ destinationAttributes: AZURE_ENTITY_KEYS,
714
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
715
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
716
+ receiver: AZURE_MONITOR,
717
+ enabledByDefault: true,
718
+ },
719
+ {
720
+ system: "servicebus",
721
+ metricName: "azure_completemessage_total",
722
+ title: "Completed messages",
723
+ description:
724
+ "Messages consumers completed (settled), counted per minute by Azure Monitor (CompleteMessage).",
725
+ unit: "messages",
726
+ signal: "consumed",
727
+ kind: "gauge",
728
+ aggregation: AggregationType.Sum,
729
+ seriesCombine: "sum",
730
+ destinationAttributes: AZURE_ENTITY_KEYS,
731
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
732
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
733
+ receiver: AZURE_MONITOR,
734
+ enabledByDefault: true,
735
+ },
736
+ {
737
+ system: "servicebus",
738
+ metricName: "azure_abandonmessage_total",
739
+ title: "Abandoned messages",
740
+ description:
741
+ "Messages consumers abandoned, counted per minute by Azure Monitor (AbandonMessage). Each one goes back to the queue to be retried, usually after its processing failed.",
742
+ unit: "messages",
743
+ signal: "errors",
744
+ kind: "gauge",
745
+ aggregation: AggregationType.Sum,
746
+ seriesCombine: "sum",
747
+ destinationAttributes: AZURE_ENTITY_KEYS,
748
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
749
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
750
+ receiver: AZURE_MONITOR,
751
+ enabledByDefault: true,
752
+ },
753
+ {
754
+ system: "servicebus",
755
+ metricName: "azure_servererrors_total",
756
+ title: "Server errors",
757
+ description:
758
+ "Requests that failed because of a Service Bus error, counted per minute by Azure Monitor (ServerErrors) and added up across operation results.",
759
+ unit: "requests",
760
+ signal: "errors",
761
+ kind: "gauge",
762
+ aggregation: AggregationType.Sum,
763
+ seriesCombine: "sum",
764
+ destinationAttributes: AZURE_ENTITY_KEYS,
765
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
766
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
767
+ seriesKeys: AZURE_OPERATION_RESULT_KEYS,
768
+ receiver: AZURE_MONITOR,
769
+ enabledByDefault: true,
770
+ },
771
+ {
772
+ system: "servicebus",
773
+ metricName: "azure_usererrors_total",
774
+ title: "User errors",
775
+ description:
776
+ "Requests that failed because of the client, such as a lost message lock or a bad request, counted per minute by Azure Monitor (UserErrors) and added up across operation results.",
777
+ unit: "requests",
778
+ signal: "errors",
779
+ kind: "gauge",
780
+ aggregation: AggregationType.Sum,
781
+ seriesCombine: "sum",
782
+ destinationAttributes: AZURE_ENTITY_KEYS,
783
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
784
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
785
+ seriesKeys: AZURE_OPERATION_RESULT_KEYS,
786
+ receiver: AZURE_MONITOR,
787
+ enabledByDefault: true,
788
+ },
789
+ {
790
+ system: "servicebus",
791
+ metricName: "azure_throttledrequests_total",
792
+ title: "Throttled requests",
793
+ description:
794
+ "Requests Service Bus rejected because the namespace ran out of capacity, counted per minute by Azure Monitor (ThrottledRequests).",
795
+ unit: "requests",
796
+ signal: "throttled",
797
+ kind: "gauge",
798
+ aggregation: AggregationType.Sum,
799
+ seriesCombine: "sum",
800
+ destinationAttributes: AZURE_ENTITY_KEYS,
801
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
802
+ requiredAttributes: SERVICE_BUS_NAMESPACE_TYPE,
803
+ seriesKeys: AZURE_THROTTLE_KEYS,
804
+ receiver: AZURE_MONITOR,
805
+ enabledByDefault: true,
806
+ },
807
+
808
+ // Azure Event Hubs.
809
+ {
810
+ system: "eventhubs",
811
+ metricName: "azure_incomingmessages_total",
812
+ title: "Incoming messages",
813
+ description:
814
+ "Events sent to the event hub, counted per minute by Azure Monitor (IncomingMessages).",
815
+ unit: "messages",
816
+ signal: "published",
817
+ kind: "gauge",
818
+ aggregation: AggregationType.Sum,
819
+ seriesCombine: "sum",
820
+ destinationAttributes: AZURE_ENTITY_KEYS,
821
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
822
+ requiredAttributes: EVENT_HUBS_NAMESPACE_TYPE,
823
+ receiver: AZURE_MONITOR,
824
+ enabledByDefault: true,
825
+ },
826
+ {
827
+ system: "eventhubs",
828
+ metricName: "azure_outgoingmessages_total",
829
+ title: "Outgoing messages",
830
+ description:
831
+ "Events read from the event hub, counted per minute by Azure Monitor (OutgoingMessages) across every consumer group.",
832
+ unit: "messages",
833
+ signal: "consumed",
834
+ kind: "gauge",
835
+ aggregation: AggregationType.Sum,
836
+ seriesCombine: "sum",
837
+ destinationAttributes: AZURE_ENTITY_KEYS,
838
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
839
+ requiredAttributes: EVENT_HUBS_NAMESPACE_TYPE,
840
+ receiver: AZURE_MONITOR,
841
+ enabledByDefault: true,
842
+ },
843
+ {
844
+ system: "eventhubs",
845
+ metricName: "azure_servererrors_total",
846
+ title: "Server errors",
847
+ description:
848
+ "Requests that failed because of an Event Hubs error, counted per minute by Azure Monitor (ServerErrors) and added up across operation results.",
849
+ unit: "requests",
850
+ signal: "errors",
851
+ kind: "gauge",
852
+ aggregation: AggregationType.Sum,
853
+ seriesCombine: "sum",
854
+ destinationAttributes: AZURE_ENTITY_KEYS,
855
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
856
+ requiredAttributes: EVENT_HUBS_NAMESPACE_TYPE,
857
+ seriesKeys: AZURE_OPERATION_RESULT_KEYS,
858
+ receiver: AZURE_MONITOR,
859
+ enabledByDefault: true,
860
+ },
861
+ {
862
+ system: "eventhubs",
863
+ metricName: "azure_usererrors_total",
864
+ title: "User errors",
865
+ description:
866
+ "Requests that failed because of the client, counted per minute by Azure Monitor (UserErrors) and added up across operation results.",
867
+ unit: "requests",
868
+ signal: "errors",
869
+ kind: "gauge",
870
+ aggregation: AggregationType.Sum,
871
+ seriesCombine: "sum",
872
+ destinationAttributes: AZURE_ENTITY_KEYS,
873
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
874
+ requiredAttributes: EVENT_HUBS_NAMESPACE_TYPE,
875
+ seriesKeys: AZURE_OPERATION_RESULT_KEYS,
876
+ receiver: AZURE_MONITOR,
877
+ enabledByDefault: true,
878
+ },
879
+ {
880
+ system: "eventhubs",
881
+ metricName: "azure_quotaexceedederrors_total",
882
+ title: "Quota exceeded errors",
883
+ description:
884
+ "Requests that failed because the namespace hit a quota, counted per minute by Azure Monitor (QuotaExceededErrors) and added up across operation results.",
885
+ unit: "requests",
886
+ signal: "errors",
887
+ kind: "gauge",
888
+ aggregation: AggregationType.Sum,
889
+ seriesCombine: "sum",
890
+ destinationAttributes: AZURE_ENTITY_KEYS,
891
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
892
+ requiredAttributes: EVENT_HUBS_NAMESPACE_TYPE,
893
+ seriesKeys: AZURE_OPERATION_RESULT_KEYS,
894
+ receiver: AZURE_MONITOR,
895
+ enabledByDefault: true,
896
+ },
897
+ {
898
+ system: "eventhubs",
899
+ metricName: "azure_throttledrequests_total",
900
+ title: "Throttled requests",
901
+ description:
902
+ "Requests Event Hubs rejected because the namespace ran out of throughput, counted per minute by Azure Monitor (ThrottledRequests).",
903
+ unit: "requests",
904
+ signal: "throttled",
905
+ kind: "gauge",
906
+ aggregation: AggregationType.Sum,
907
+ seriesCombine: "sum",
908
+ destinationAttributes: AZURE_ENTITY_KEYS,
909
+ scopeAttributes: AZURE_NAMESPACE_KEYS,
910
+ requiredAttributes: EVENT_HUBS_NAMESPACE_TYPE,
911
+ seriesKeys: AZURE_OPERATION_RESULT_KEYS,
912
+ receiver: AZURE_MONITOR,
913
+ enabledByDefault: true,
914
+ },
915
+
916
+ // Amazon SQS.
917
+ ...sqsMetric({
918
+ cloudWatchName: "ApproximateNumberOfMessagesVisible",
919
+ title: "Messages visible",
920
+ description:
921
+ "Messages available for retrieval from the queue (ApproximateNumberOfMessagesVisible, CloudWatch's Average for each period).",
922
+ unit: "messages",
923
+ signal: "backlog",
924
+ aggregation: AggregationType.Avg,
925
+ }),
926
+ ...sqsMetric({
927
+ cloudWatchName: "ApproximateAgeOfOldestMessage",
928
+ title: "Oldest message age",
929
+ description:
930
+ "Age of the oldest message in the queue (ApproximateAgeOfOldestMessage). CloudWatch reports it only while the queue holds a message.",
931
+ unit: "s",
932
+ signal: "oldestMessageAge",
933
+ aggregation: AggregationType.Max,
934
+ }),
935
+ ...sqsMetric({
936
+ cloudWatchName: "ApproximateNumberOfMessagesNotVisible",
937
+ title: "Messages in flight",
938
+ description:
939
+ "Messages a consumer has received but not yet deleted or returned to the queue (ApproximateNumberOfMessagesNotVisible).",
940
+ unit: "messages",
941
+ signal: "backlog",
942
+ aggregation: AggregationType.Avg,
943
+ }),
944
+ ...sqsMetric({
945
+ cloudWatchName: "NumberOfMessagesSent",
946
+ title: "Messages sent",
947
+ description:
948
+ "Messages sent to the queue in each CloudWatch period (NumberOfMessagesSent, its Sum).",
949
+ unit: "messages",
950
+ signal: "published",
951
+ aggregation: AggregationType.Sum,
952
+ }),
953
+ ...sqsMetric({
954
+ cloudWatchName: "NumberOfMessagesReceived",
955
+ title: "Messages received",
956
+ description:
957
+ "Messages ReceiveMessage calls returned in each CloudWatch period (NumberOfMessagesReceived); a redelivered message counts again.",
958
+ unit: "messages",
959
+ signal: "consumed",
960
+ aggregation: AggregationType.Sum,
961
+ }),
962
+ ...sqsMetric({
963
+ cloudWatchName: "NumberOfMessagesDeleted",
964
+ title: "Messages deleted",
965
+ description:
966
+ "Messages deleted from the queue — that is, processed — in each CloudWatch period (NumberOfMessagesDeleted).",
967
+ unit: "messages",
968
+ signal: "consumed",
969
+ aggregation: AggregationType.Sum,
970
+ }),
971
+
972
+ // Amazon SNS.
973
+ ...snsMetric({
974
+ cloudWatchName: "NumberOfMessagesPublished",
975
+ title: "Messages published",
976
+ description:
977
+ "Messages published to the topic in each CloudWatch period (NumberOfMessagesPublished).",
978
+ unit: "messages",
979
+ signal: "published",
980
+ aggregation: AggregationType.Sum,
981
+ }),
982
+ ...snsMetric({
983
+ cloudWatchName: "NumberOfNotificationsDelivered",
984
+ title: "Notifications delivered",
985
+ description:
986
+ "Notifications the topic delivered to its subscriptions in each CloudWatch period (NumberOfNotificationsDelivered).",
987
+ unit: "messages",
988
+ signal: "consumed",
989
+ aggregation: AggregationType.Sum,
990
+ }),
991
+ ...snsMetric({
992
+ cloudWatchName: "NumberOfNotificationsFailed",
993
+ title: "Notifications failed",
994
+ description:
995
+ "Deliveries to subscriptions that failed in each CloudWatch period (NumberOfNotificationsFailed); for HTTP/S endpoints every failed attempt, retries included, counts.",
996
+ unit: "messages",
997
+ signal: "errors",
998
+ aggregation: AggregationType.Sum,
999
+ }),
1000
+ ...snsMetric({
1001
+ cloudWatchName: "NumberOfNotificationsRedrivenToDlq",
1002
+ title: "Redriven to dead-letter queue",
1003
+ description:
1004
+ "Notifications moved to a subscription's dead-letter queue in each CloudWatch period (NumberOfNotificationsRedrivenToDlq).",
1005
+ unit: "messages",
1006
+ signal: "deadLetter",
1007
+ aggregation: AggregationType.Sum,
1008
+ }),
1009
+
1010
+ // Google Cloud Pub/Sub.
1011
+ {
1012
+ system: "gcp_pubsub",
1013
+ metricName: "pubsub.googleapis.com/subscription/num_undelivered_messages",
1014
+ title: "Undelivered messages",
1015
+ description:
1016
+ "Messages the subscription has not yet acknowledged (num_undelivered_messages), sampled every minute by Cloud Monitoring.",
1017
+ unit: "messages",
1018
+ signal: "backlog",
1019
+ kind: "gauge",
1020
+ aggregation: AggregationType.Max,
1021
+ seriesCombine: "max",
1022
+ destinationAttributes: PUBSUB_SUBSCRIPTION_KEYS,
1023
+ receiver: CLOUD_MONITORING,
1024
+ enabledByDefault: false,
1025
+ },
1026
+ {
1027
+ system: "gcp_pubsub",
1028
+ metricName:
1029
+ "pubsub.googleapis.com/subscription/oldest_unacked_message_age",
1030
+ title: "Oldest unacked message age",
1031
+ description:
1032
+ "Age of the oldest message the subscription has not yet acknowledged (oldest_unacked_message_age).",
1033
+ unit: "s",
1034
+ signal: "oldestMessageAge",
1035
+ kind: "gauge",
1036
+ aggregation: AggregationType.Max,
1037
+ seriesCombine: "max",
1038
+ destinationAttributes: PUBSUB_SUBSCRIPTION_KEYS,
1039
+ receiver: CLOUD_MONITORING,
1040
+ enabledByDefault: false,
1041
+ },
1042
+ {
1043
+ system: "gcp_pubsub",
1044
+ metricName:
1045
+ "pubsub.googleapis.com/subscription/dead_letter_message_count",
1046
+ title: "Dead-lettered messages",
1047
+ description:
1048
+ "Messages the subscription forwarded to its dead-letter topic in each sample period (dead_letter_message_count).",
1049
+ unit: "messages",
1050
+ signal: "deadLetter",
1051
+ kind: "gauge",
1052
+ aggregation: AggregationType.Sum,
1053
+ seriesCombine: "sum",
1054
+ destinationAttributes: PUBSUB_SUBSCRIPTION_KEYS,
1055
+ seriesKeys: ["response_code", "resource.response_code"],
1056
+ receiver: CLOUD_MONITORING,
1057
+ enabledByDefault: false,
1058
+ },
1059
+ {
1060
+ system: "gcp_pubsub",
1061
+ metricName: "pubsub.googleapis.com/subscription/ack_message_count",
1062
+ title: "Acknowledged messages",
1063
+ description:
1064
+ "Messages acknowledged on the subscription in each sample period (ack_message_count), added up across delivery types.",
1065
+ unit: "messages",
1066
+ signal: "consumed",
1067
+ kind: "gauge",
1068
+ aggregation: AggregationType.Sum,
1069
+ seriesCombine: "sum",
1070
+ destinationAttributes: PUBSUB_SUBSCRIPTION_KEYS,
1071
+ seriesKeys: ["delivery_type", "resource.delivery_type"],
1072
+ receiver: CLOUD_MONITORING,
1073
+ enabledByDefault: false,
1074
+ },
1075
+ {
1076
+ system: "gcp_pubsub",
1077
+ metricName: "pubsub.googleapis.com/topic/send_request_count",
1078
+ title: "Publish requests",
1079
+ description:
1080
+ "Publish requests sent to the topic in each sample period (send_request_count). A request can carry several messages, so this counts requests, not messages.",
1081
+ unit: "requests",
1082
+ signal: "published",
1083
+ kind: "gauge",
1084
+ aggregation: AggregationType.Sum,
1085
+ seriesCombine: "sum",
1086
+ destinationAttributes: PUBSUB_TOPIC_KEYS,
1087
+ seriesKeys: [
1088
+ "response_class",
1089
+ "response_code",
1090
+ "resource.response_class",
1091
+ "resource.response_code",
1092
+ ],
1093
+ receiver: CLOUD_MONITORING,
1094
+ enabledByDefault: false,
1095
+ },
1096
+
1097
+ // Apache Pulsar.
1098
+ {
1099
+ system: "pulsar",
1100
+ metricName: "pulsar_msg_backlog",
1101
+ title: "Backlog",
1102
+ description:
1103
+ "Entries backlogged on the topic across its subscriptions, added up across the topic's partitions. Pulsar counts a batch of messages as one entry.",
1104
+ unit: "messages",
1105
+ signal: "backlog",
1106
+ kind: "gauge",
1107
+ aggregation: AggregationType.Avg,
1108
+ seriesCombine: "sum",
1109
+ destinationAttributes: PULSAR_TOPIC_KEYS,
1110
+ seriesKeys: PULSAR_TOPIC_SERIES_KEYS,
1111
+ receiver: PROMETHEUS,
1112
+ enabledByDefault: true,
1113
+ },
1114
+ {
1115
+ system: "pulsar",
1116
+ metricName: "pulsar_subscription_back_log",
1117
+ title: "Subscription backlog",
1118
+ description:
1119
+ "Entries not yet acknowledged on the subscription furthest behind, for its busiest partition. Pulsar counts a batch of messages as one entry.",
1120
+ unit: "messages",
1121
+ signal: "consumerLag",
1122
+ kind: "gauge",
1123
+ aggregation: AggregationType.Max,
1124
+ seriesCombine: "max",
1125
+ destinationAttributes: PULSAR_TOPIC_KEYS,
1126
+ seriesKeys: [...PULSAR_TOPIC_SERIES_KEYS, "subscription"],
1127
+ receiver: PROMETHEUS,
1128
+ enabledByDefault: true,
1129
+ },
1130
+ {
1131
+ system: "pulsar",
1132
+ metricName: "pulsar_storage_backlog_age_seconds",
1133
+ title: "Backlog age",
1134
+ description:
1135
+ "Age of the oldest unacknowledged entry in the topic's backlog, for the partition furthest behind; -1 while the broker cannot tell.",
1136
+ unit: "s",
1137
+ signal: "oldestMessageAge",
1138
+ kind: "gauge",
1139
+ aggregation: AggregationType.Max,
1140
+ seriesCombine: "max",
1141
+ destinationAttributes: PULSAR_TOPIC_KEYS,
1142
+ seriesKeys: PULSAR_TOPIC_SERIES_KEYS,
1143
+ receiver: PROMETHEUS,
1144
+ enabledByDefault: true,
1145
+ },
1146
+ {
1147
+ system: "pulsar",
1148
+ metricName: "pulsar_in_messages_total",
1149
+ title: "Messages in",
1150
+ description:
1151
+ "Messages published to the topic per second, added up across its partitions. Pulsar exposes the running total as a gauge; the chart shows its rate.",
1152
+ unit: "messages",
1153
+ signal: "published",
1154
+ kind: "counter",
1155
+ aggregation: AggregationType.Max,
1156
+ seriesCombine: "sum",
1157
+ destinationAttributes: PULSAR_TOPIC_KEYS,
1158
+ receiver: PROMETHEUS,
1159
+ enabledByDefault: true,
1160
+ },
1161
+ {
1162
+ system: "pulsar",
1163
+ metricName: "pulsar_out_messages_total",
1164
+ title: "Messages out",
1165
+ description:
1166
+ "Messages dispatched to the topic's subscriptions per second, added up across partitions and subscriptions. The per-consumer copies Pulsar adds when consumer-level metrics are on are left out, so no message is counted twice.",
1167
+ unit: "messages",
1168
+ signal: "consumed",
1169
+ kind: "counter",
1170
+ aggregation: AggregationType.Max,
1171
+ seriesCombine: "sum",
1172
+ destinationAttributes: PULSAR_TOPIC_KEYS,
1173
+ excludeSeriesWithAttributes: PULSAR_CONSUMER_KEYS,
1174
+ receiver: PROMETHEUS,
1175
+ enabledByDefault: true,
1176
+ },
1177
+
1178
+ // Apache RocketMQ.
1179
+ {
1180
+ system: "rocketmq",
1181
+ metricName: "rocketmq_consumer_lag_messages",
1182
+ title: "Consumer lag",
1183
+ description:
1184
+ "Messages a consumer group has not yet consumed on this topic. With several consumer groups or brokers, the largest value is shown.",
1185
+ unit: "messages",
1186
+ signal: "consumerLag",
1187
+ kind: "gauge",
1188
+ aggregation: AggregationType.Max,
1189
+ seriesCombine: "max",
1190
+ destinationAttributes: ROCKETMQ_TOPIC_KEYS,
1191
+ seriesKeys: ["consumer_group", "is_retry"],
1192
+ receiver: PROMETHEUS,
1193
+ enabledByDefault: true,
1194
+ },
1195
+ {
1196
+ system: "rocketmq",
1197
+ metricName: "rocketmq_consumer_ready_messages",
1198
+ title: "Ready messages",
1199
+ description:
1200
+ "Messages ready for a consumer group to pull from this topic. With several consumer groups or brokers, the largest value is shown.",
1201
+ unit: "messages",
1202
+ signal: "backlog",
1203
+ kind: "gauge",
1204
+ aggregation: AggregationType.Max,
1205
+ seriesCombine: "max",
1206
+ destinationAttributes: ROCKETMQ_TOPIC_KEYS,
1207
+ seriesKeys: ["consumer_group", "is_retry"],
1208
+ receiver: PROMETHEUS,
1209
+ enabledByDefault: true,
1210
+ },
1211
+ {
1212
+ system: "rocketmq",
1213
+ metricName: "rocketmq_send_to_dlq_messages_total",
1214
+ title: "Sent to dead-letter queue",
1215
+ description:
1216
+ "Messages moved to a consumer group's dead-letter queue after running out of retries, per second, counted under the topic they came from.",
1217
+ unit: "messages",
1218
+ signal: "deadLetter",
1219
+ kind: "counter",
1220
+ aggregation: AggregationType.Max,
1221
+ seriesCombine: "sum",
1222
+ destinationAttributes: ROCKETMQ_TOPIC_KEYS,
1223
+ receiver: PROMETHEUS,
1224
+ enabledByDefault: true,
1225
+ },
1226
+ {
1227
+ system: "rocketmq",
1228
+ metricName: "rocketmq_messages_in_total",
1229
+ title: "Messages in",
1230
+ description: "Messages produced to the topic per second.",
1231
+ unit: "messages",
1232
+ signal: "published",
1233
+ kind: "counter",
1234
+ aggregation: AggregationType.Max,
1235
+ seriesCombine: "sum",
1236
+ destinationAttributes: ROCKETMQ_TOPIC_KEYS,
1237
+ receiver: PROMETHEUS,
1238
+ enabledByDefault: true,
1239
+ },
1240
+ ];
1241
+
1242
+ /*
1243
+ * Messaging SDK metrics that name a destination but no `messaging.system`,
1244
+ * so only their name says which system reports them. The Azure SDK for
1245
+ * Java's Service Bus meter (ServiceBusMeter) stamps the namespace host, the
1246
+ * entity and the subscription alone — azure-core-metrics-opentelemetry
1247
+ * renames hostName, entityName and subscriptionName to `server.address`,
1248
+ * `messaging.destination.name` and `messaging.servicebus.subscription_name`
1249
+ * — plus an outcome. (Its Event Hubs sibling does set `messaging.system`.)
1250
+ */
1251
+ export const MESSAGING_SDK_METRIC_SYSTEMS: ReadonlyMap<string, string> =
1252
+ new Map<string, string>([
1253
+ ["messaging.servicebus.messages.sent", "servicebus"],
1254
+ ["messaging.servicebus.receiver.lag", "servicebus"],
1255
+ ["messaging.servicebus.settlement.request.duration", "servicebus"],
1256
+ ["messaging.servicebus.settlement.sequence_number", "servicebus"],
1257
+ ]);
1258
+
1259
+ /*
1260
+ * The messaging CLIENT metrics — what instrumented applications report
1261
+ * about their own sends and receives: the OpenTelemetry semantic-convention
1262
+ * ones, current (1.28 and later) and deprecated, and the SDK metrics above.
1263
+ * They are not curated per system: each datapoint names its own destination
1264
+ * (and, but for the SDK metrics above, its own `messaging.system`), so it
1265
+ * resolves like a span (resolveMessagingMetricDatapoint). The deprecated
1266
+ * names are still what the Java agent's default mode and the Azure SDK for
1267
+ * Java emit. Ingest and the discovery cron select datapoints by this set.
1268
+ */
1269
+ export const MESSAGING_CLIENT_METRIC_NAMES: ReadonlySet<string> =
1270
+ new Set<string>([
1271
+ "messaging.client.sent.messages",
1272
+ "messaging.client.consumed.messages",
1273
+ "messaging.client.operation.duration",
1274
+ "messaging.process.duration",
1275
+ "messaging.publish.duration",
1276
+ "messaging.receive.duration",
1277
+ "messaging.publish.messages",
1278
+ "messaging.receive.messages",
1279
+ "messaging.process.messages",
1280
+ "messaging.client.published.messages",
1281
+ ...Array.from(MESSAGING_SDK_METRIC_SYSTEMS.keys()),
1282
+ ]);
1283
+
1284
+ // metric name → its entries (one per system that emits the name).
1285
+ const DESCRIPTORS_BY_NAME: ReadonlyMap<
1286
+ string,
1287
+ ReadonlyArray<MessageQueueMetricDescriptor>
1288
+ > = ((): Map<string, Array<MessageQueueMetricDescriptor>> => {
1289
+ const map: Map<string, Array<MessageQueueMetricDescriptor>> = new Map<
1290
+ string,
1291
+ Array<MessageQueueMetricDescriptor>
1292
+ >();
1293
+ for (const descriptor of MESSAGE_QUEUE_METRICS) {
1294
+ const existing: Array<MessageQueueMetricDescriptor> | undefined = map.get(
1295
+ descriptor.metricName,
1296
+ );
1297
+ if (existing) {
1298
+ existing.push(descriptor);
1299
+ } else {
1300
+ map.set(descriptor.metricName, [descriptor]);
1301
+ }
1302
+ }
1303
+ return map;
1304
+ })();
1305
+
1306
+ // Every curated broker metric name, as stored.
1307
+ export const MESSAGE_QUEUE_BROKER_METRIC_NAMES: ReadonlySet<string> =
1308
+ new Set<string>(DESCRIPTORS_BY_NAME.keys());
1309
+
1310
+ const NO_DESCRIPTORS: ReadonlyArray<MessageQueueMetricDescriptor> = [];
1311
+
1312
+ /**
1313
+ * The curated metrics for a system, in display order (aliases accepted:
1314
+ * "AmazonSQS" gets Amazon SQS's). Empty for a system without a curated set
1315
+ * — the queue page then shows where its broker metrics come from instead.
1316
+ */
1317
+ export function getMessageQueueMetricsForSystem(
1318
+ system: string | null | undefined,
1319
+ ): ReadonlyArray<MessageQueueMetricDescriptor> {
1320
+ const normalized: string | null = normalizeMessagingSystem(system);
1321
+ if (!normalized) {
1322
+ return NO_DESCRIPTORS;
1323
+ }
1324
+ return MESSAGE_QUEUE_METRICS.filter(
1325
+ (descriptor: MessageQueueMetricDescriptor): boolean => {
1326
+ return descriptor.system === normalized;
1327
+ },
1328
+ );
1329
+ }
1330
+
1331
+ /**
1332
+ * Every entry for a metric name — several when systems share it (Azure
1333
+ * Monitor names Service Bus's and Event Hubs' metrics alike; their
1334
+ * `requiredAttributes` tell them apart). Trimmed and lowercased first, as
1335
+ * ingest stores names; empty for a name the catalog does not curate. A Map
1336
+ * lookup, so "constructor" finds nothing.
1337
+ */
1338
+ export function getMessageQueueMetricDescriptorsByName(
1339
+ metricName: string,
1340
+ ): ReadonlyArray<MessageQueueMetricDescriptor> {
1341
+ if (typeof metricName !== "string") {
1342
+ return NO_DESCRIPTORS;
1343
+ }
1344
+ return (
1345
+ DESCRIPTORS_BY_NAME.get(metricName.trim().toLowerCase()) || NO_DESCRIPTORS
1346
+ );
1347
+ }
1348
+
1349
+ /**
1350
+ * A stable id for an entry — `${system}:${metricName}`. A name alone is not
1351
+ * unique: Service Bus and Event Hubs share Azure Monitor's.
1352
+ */
1353
+ export function getMessageQueueMetricId(
1354
+ descriptor: MessageQueueMetricDescriptor,
1355
+ ): string {
1356
+ return `${descriptor.system}:${descriptor.metricName}`;
1357
+ }