@marinoscar/platform-web 0.0.0-stage → 0.1.0-next.3

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 (356) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/LICENSE +21 -0
  3. package/README.md +96 -2
  4. package/dist/core/api-client.d.ts +112 -0
  5. package/dist/core/api-client.d.ts.map +1 -0
  6. package/dist/core/api-client.js +24 -0
  7. package/dist/core/api-client.js.map +1 -0
  8. package/dist/core/host.d.ts +74 -0
  9. package/dist/core/host.d.ts.map +1 -0
  10. package/dist/core/host.js +84 -0
  11. package/dist/core/host.js.map +1 -0
  12. package/dist/core/index.d.ts +7 -0
  13. package/dist/core/index.d.ts.map +1 -0
  14. package/dist/core/index.js +5 -0
  15. package/dist/core/index.js.map +1 -0
  16. package/dist/core/settings-page.d.ts +47 -0
  17. package/dist/core/settings-page.d.ts.map +1 -0
  18. package/dist/core/settings-page.js +5 -0
  19. package/dist/core/settings-page.js.map +1 -0
  20. package/dist/core/viewer.d.ts +14 -0
  21. package/dist/core/viewer.d.ts.map +1 -0
  22. package/dist/core/viewer.js +4 -0
  23. package/dist/core/viewer.js.map +1 -0
  24. package/dist/doctor/headless/categories.d.ts +31 -0
  25. package/dist/doctor/headless/categories.d.ts.map +1 -0
  26. package/dist/doctor/headless/categories.js +41 -0
  27. package/dist/doctor/headless/categories.js.map +1 -0
  28. package/dist/doctor/headless/client.d.ts +33 -0
  29. package/dist/doctor/headless/client.d.ts.map +1 -0
  30. package/dist/doctor/headless/client.js +31 -0
  31. package/dist/doctor/headless/client.js.map +1 -0
  32. package/dist/doctor/headless/contract.d.ts +18 -0
  33. package/dist/doctor/headless/contract.d.ts.map +1 -0
  34. package/dist/doctor/headless/contract.js +15 -0
  35. package/dist/doctor/headless/contract.js.map +1 -0
  36. package/dist/doctor/headless/index.d.ts +12 -0
  37. package/dist/doctor/headless/index.d.ts.map +1 -0
  38. package/dist/doctor/headless/index.js +8 -0
  39. package/dist/doctor/headless/index.js.map +1 -0
  40. package/dist/doctor/headless/use-doctor.d.ts +36 -0
  41. package/dist/doctor/headless/use-doctor.d.ts.map +1 -0
  42. package/dist/doctor/headless/use-doctor.js +80 -0
  43. package/dist/doctor/headless/use-doctor.js.map +1 -0
  44. package/dist/doctor/headless/use-support-bundle-download.d.ts +68 -0
  45. package/dist/doctor/headless/use-support-bundle-download.d.ts.map +1 -0
  46. package/dist/doctor/headless/use-support-bundle-download.js +135 -0
  47. package/dist/doctor/headless/use-support-bundle-download.js.map +1 -0
  48. package/dist/doctor/internal/relative-time.d.ts +2 -0
  49. package/dist/doctor/internal/relative-time.d.ts.map +1 -0
  50. package/dist/doctor/internal/relative-time.js +29 -0
  51. package/dist/doctor/internal/relative-time.js.map +1 -0
  52. package/dist/doctor/internal/status-colors.d.ts +5 -0
  53. package/dist/doctor/internal/status-colors.d.ts.map +1 -0
  54. package/dist/doctor/internal/status-colors.js +29 -0
  55. package/dist/doctor/internal/status-colors.js.map +1 -0
  56. package/dist/doctor/internal/use-is-mounted.d.ts +2 -0
  57. package/dist/doctor/internal/use-is-mounted.d.ts.map +1 -0
  58. package/dist/doctor/internal/use-is-mounted.js +15 -0
  59. package/dist/doctor/internal/use-is-mounted.js.map +1 -0
  60. package/dist/doctor/ui/check-row.d.ts +54 -0
  61. package/dist/doctor/ui/check-row.d.ts.map +1 -0
  62. package/dist/doctor/ui/check-row.js +100 -0
  63. package/dist/doctor/ui/check-row.js.map +1 -0
  64. package/dist/doctor/ui/copy.d.ts +3 -0
  65. package/dist/doctor/ui/copy.d.ts.map +1 -0
  66. package/dist/doctor/ui/copy.js +6 -0
  67. package/dist/doctor/ui/copy.js.map +1 -0
  68. package/dist/doctor/ui/doctor-page.d.ts +50 -0
  69. package/dist/doctor/ui/doctor-page.d.ts.map +1 -0
  70. package/dist/doctor/ui/doctor-page.js +152 -0
  71. package/dist/doctor/ui/doctor-page.js.map +1 -0
  72. package/dist/doctor/ui/index.d.ts +8 -0
  73. package/dist/doctor/ui/index.d.ts.map +1 -0
  74. package/dist/doctor/ui/index.js +7 -0
  75. package/dist/doctor/ui/index.js.map +1 -0
  76. package/dist/doctor/ui/settings-page.d.ts +20 -0
  77. package/dist/doctor/ui/settings-page.d.ts.map +1 -0
  78. package/dist/doctor/ui/settings-page.js +32 -0
  79. package/dist/doctor/ui/settings-page.js.map +1 -0
  80. package/dist/doctor/ui/support-bundle-button.d.ts +37 -0
  81. package/dist/doctor/ui/support-bundle-button.d.ts.map +1 -0
  82. package/dist/doctor/ui/support-bundle-button.js +39 -0
  83. package/dist/doctor/ui/support-bundle-button.js.map +1 -0
  84. package/dist/index.d.ts +11 -0
  85. package/dist/index.d.ts.map +1 -0
  86. package/dist/index.js +11 -0
  87. package/dist/index.js.map +1 -0
  88. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts +106 -0
  89. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts.map +1 -0
  90. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js +58 -0
  91. package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js.map +1 -0
  92. package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts +43 -0
  93. package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts.map +1 -0
  94. package/dist/telemetry/headless/context/TelemetryConfigProvider.js +24 -0
  95. package/dist/telemetry/headless/context/TelemetryConfigProvider.js.map +1 -0
  96. package/dist/telemetry/headless/context/telemetryConfig.d.ts +68 -0
  97. package/dist/telemetry/headless/context/telemetryConfig.d.ts.map +1 -0
  98. package/dist/telemetry/headless/context/telemetryConfig.js +119 -0
  99. package/dist/telemetry/headless/context/telemetryConfig.js.map +1 -0
  100. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts +35 -0
  101. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts.map +1 -0
  102. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js +44 -0
  103. package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js.map +1 -0
  104. package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts +40 -0
  105. package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts.map +1 -0
  106. package/dist/telemetry/headless/hooks/useTelemetryAdmin.js +111 -0
  107. package/dist/telemetry/headless/hooks/useTelemetryAdmin.js.map +1 -0
  108. package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts +120 -0
  109. package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts.map +1 -0
  110. package/dist/telemetry/headless/hooks/useTelemetryAssistant.js +185 -0
  111. package/dist/telemetry/headless/hooks/useTelemetryAssistant.js.map +1 -0
  112. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts +12 -0
  113. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts.map +1 -0
  114. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js +36 -0
  115. package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js.map +1 -0
  116. package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts +46 -0
  117. package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts.map +1 -0
  118. package/dist/telemetry/headless/hooks/useTelemetryConnection.js +133 -0
  119. package/dist/telemetry/headless/hooks/useTelemetryConnection.js.map +1 -0
  120. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +147 -0
  121. package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts.map +1 -0
  122. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js +231 -0
  123. package/dist/telemetry/headless/hooks/useTelemetryDashboard.js.map +1 -0
  124. package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts +95 -0
  125. package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts.map +1 -0
  126. package/dist/telemetry/headless/hooks/useTelemetryExplorer.js +197 -0
  127. package/dist/telemetry/headless/hooks/useTelemetryExplorer.js.map +1 -0
  128. package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts +69 -0
  129. package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts.map +1 -0
  130. package/dist/telemetry/headless/hooks/useTelemetryStack.js +129 -0
  131. package/dist/telemetry/headless/hooks/useTelemetryStack.js.map +1 -0
  132. package/dist/telemetry/headless/index.d.ts +34 -0
  133. package/dist/telemetry/headless/index.d.ts.map +1 -0
  134. package/dist/telemetry/headless/index.js +34 -0
  135. package/dist/telemetry/headless/index.js.map +1 -0
  136. package/dist/telemetry/headless/lib/assistantExport.d.ts +12 -0
  137. package/dist/telemetry/headless/lib/assistantExport.d.ts.map +1 -0
  138. package/dist/telemetry/headless/lib/assistantExport.js +116 -0
  139. package/dist/telemetry/headless/lib/assistantExport.js.map +1 -0
  140. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts +91 -0
  141. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts.map +1 -0
  142. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js +246 -0
  143. package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js.map +1 -0
  144. package/dist/telemetry/headless/lib/dashboardState.d.ts +58 -0
  145. package/dist/telemetry/headless/lib/dashboardState.d.ts.map +1 -0
  146. package/dist/telemetry/headless/lib/dashboardState.js +153 -0
  147. package/dist/telemetry/headless/lib/dashboardState.js.map +1 -0
  148. package/dist/telemetry/headless/lib/explorerHandoff.d.ts +62 -0
  149. package/dist/telemetry/headless/lib/explorerHandoff.d.ts.map +1 -0
  150. package/dist/telemetry/headless/lib/explorerHandoff.js +77 -0
  151. package/dist/telemetry/headless/lib/explorerHandoff.js.map +1 -0
  152. package/dist/telemetry/headless/lib/format.d.ts +113 -0
  153. package/dist/telemetry/headless/lib/format.d.ts.map +1 -0
  154. package/dist/telemetry/headless/lib/format.js +280 -0
  155. package/dist/telemetry/headless/lib/format.js.map +1 -0
  156. package/dist/telemetry/headless/lib/metrics/metricSections.d.ts +44 -0
  157. package/dist/telemetry/headless/lib/metrics/metricSections.d.ts.map +1 -0
  158. package/dist/telemetry/headless/lib/metrics/metricSections.js +61 -0
  159. package/dist/telemetry/headless/lib/metrics/metricSections.js.map +1 -0
  160. package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts +15 -0
  161. package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts.map +1 -0
  162. package/dist/telemetry/headless/lib/metrics/topNPreference.js +33 -0
  163. package/dist/telemetry/headless/lib/metrics/topNPreference.js.map +1 -0
  164. package/dist/telemetry/headless/lib/queryHistory.d.ts +20 -0
  165. package/dist/telemetry/headless/lib/queryHistory.d.ts.map +1 -0
  166. package/dist/telemetry/headless/lib/queryHistory.js +53 -0
  167. package/dist/telemetry/headless/lib/queryHistory.js.map +1 -0
  168. package/dist/telemetry/headless/lib/starterQueries.d.ts +48 -0
  169. package/dist/telemetry/headless/lib/starterQueries.d.ts.map +1 -0
  170. package/dist/telemetry/headless/lib/starterQueries.js +84 -0
  171. package/dist/telemetry/headless/lib/starterQueries.js.map +1 -0
  172. package/dist/telemetry/headless/lib/traceLink.d.ts +26 -0
  173. package/dist/telemetry/headless/lib/traceLink.d.ts.map +1 -0
  174. package/dist/telemetry/headless/lib/traceLink.js +32 -0
  175. package/dist/telemetry/headless/lib/traceLink.js.map +1 -0
  176. package/dist/telemetry/headless/lib/unknownRoutes.d.ts +23 -0
  177. package/dist/telemetry/headless/lib/unknownRoutes.d.ts.map +1 -0
  178. package/dist/telemetry/headless/lib/unknownRoutes.js +35 -0
  179. package/dist/telemetry/headless/lib/unknownRoutes.js.map +1 -0
  180. package/dist/telemetry/headless/services/client.d.ts +144 -0
  181. package/dist/telemetry/headless/services/client.d.ts.map +1 -0
  182. package/dist/telemetry/headless/services/client.js +144 -0
  183. package/dist/telemetry/headless/services/client.js.map +1 -0
  184. package/dist/telemetry/headless/services/telemetry.d.ts +483 -0
  185. package/dist/telemetry/headless/services/telemetry.d.ts.map +1 -0
  186. package/dist/telemetry/headless/services/telemetry.js +190 -0
  187. package/dist/telemetry/headless/services/telemetry.js.map +1 -0
  188. package/dist/telemetry/headless/services/telemetryDashboard.d.ts +321 -0
  189. package/dist/telemetry/headless/services/telemetryDashboard.d.ts.map +1 -0
  190. package/dist/telemetry/headless/services/telemetryDashboard.js +103 -0
  191. package/dist/telemetry/headless/services/telemetryDashboard.js.map +1 -0
  192. package/dist/telemetry/internal/useIsMounted.d.ts +9 -0
  193. package/dist/telemetry/internal/useIsMounted.d.ts.map +1 -0
  194. package/dist/telemetry/internal/useIsMounted.js +19 -0
  195. package/dist/telemetry/internal/useIsMounted.js.map +1 -0
  196. package/dist/telemetry/internal/useVisiblePolling.d.ts +55 -0
  197. package/dist/telemetry/internal/useVisiblePolling.d.ts.map +1 -0
  198. package/dist/telemetry/internal/useVisiblePolling.js +96 -0
  199. package/dist/telemetry/internal/useVisiblePolling.js.map +1 -0
  200. package/dist/telemetry/internal/visuallyHidden.d.ts +12 -0
  201. package/dist/telemetry/internal/visuallyHidden.d.ts.map +1 -0
  202. package/dist/telemetry/internal/visuallyHidden.js +15 -0
  203. package/dist/telemetry/internal/visuallyHidden.js.map +1 -0
  204. package/dist/telemetry/theme/augment.d.ts +65 -0
  205. package/dist/telemetry/theme/augment.d.ts.map +1 -0
  206. package/dist/telemetry/theme/augment.js +37 -0
  207. package/dist/telemetry/theme/augment.js.map +1 -0
  208. package/dist/telemetry/theme/telemetryTokens.d.ts +121 -0
  209. package/dist/telemetry/theme/telemetryTokens.d.ts.map +1 -0
  210. package/dist/telemetry/theme/telemetryTokens.js +129 -0
  211. package/dist/telemetry/theme/telemetryTokens.js.map +1 -0
  212. package/dist/telemetry/ui/admin.d.ts +35 -0
  213. package/dist/telemetry/ui/admin.d.ts.map +1 -0
  214. package/dist/telemetry/ui/admin.js +58 -0
  215. package/dist/telemetry/ui/admin.js.map +1 -0
  216. package/dist/telemetry/ui/components/AssistantContainer.d.ts +35 -0
  217. package/dist/telemetry/ui/components/AssistantContainer.d.ts.map +1 -0
  218. package/dist/telemetry/ui/components/AssistantContainer.js +83 -0
  219. package/dist/telemetry/ui/components/AssistantContainer.js.map +1 -0
  220. package/dist/telemetry/ui/components/AssistantPanel.d.ts +22 -0
  221. package/dist/telemetry/ui/components/AssistantPanel.d.ts.map +1 -0
  222. package/dist/telemetry/ui/components/AssistantPanel.js +150 -0
  223. package/dist/telemetry/ui/components/AssistantPanel.js.map +1 -0
  224. package/dist/telemetry/ui/components/AssistantReport.d.ts +13 -0
  225. package/dist/telemetry/ui/components/AssistantReport.d.ts.map +1 -0
  226. package/dist/telemetry/ui/components/AssistantReport.js +89 -0
  227. package/dist/telemetry/ui/components/AssistantReport.js.map +1 -0
  228. package/dist/telemetry/ui/components/AssistantTimeline.d.ts +10 -0
  229. package/dist/telemetry/ui/components/AssistantTimeline.d.ts.map +1 -0
  230. package/dist/telemetry/ui/components/AssistantTimeline.js +84 -0
  231. package/dist/telemetry/ui/components/AssistantTimeline.js.map +1 -0
  232. package/dist/telemetry/ui/components/ResultsGrid.d.ts +10 -0
  233. package/dist/telemetry/ui/components/ResultsGrid.d.ts.map +1 -0
  234. package/dist/telemetry/ui/components/ResultsGrid.js +71 -0
  235. package/dist/telemetry/ui/components/ResultsGrid.js.map +1 -0
  236. package/dist/telemetry/ui/components/SchemaPanel.d.ts +9 -0
  237. package/dist/telemetry/ui/components/SchemaPanel.d.ts.map +1 -0
  238. package/dist/telemetry/ui/components/SchemaPanel.js +42 -0
  239. package/dist/telemetry/ui/components/SchemaPanel.js.map +1 -0
  240. package/dist/telemetry/ui/components/SqlEditor.d.ts +21 -0
  241. package/dist/telemetry/ui/components/SqlEditor.d.ts.map +1 -0
  242. package/dist/telemetry/ui/components/SqlEditor.js +60 -0
  243. package/dist/telemetry/ui/components/SqlEditor.js.map +1 -0
  244. package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts +14 -0
  245. package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts.map +1 -0
  246. package/dist/telemetry/ui/components/TelemetryConnectionSection.js +243 -0
  247. package/dist/telemetry/ui/components/TelemetryConnectionSection.js.map +1 -0
  248. package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts +12 -0
  249. package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts.map +1 -0
  250. package/dist/telemetry/ui/components/TelemetryCrossLink.js +21 -0
  251. package/dist/telemetry/ui/components/TelemetryCrossLink.js.map +1 -0
  252. package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts +23 -0
  253. package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts.map +1 -0
  254. package/dist/telemetry/ui/components/TelemetryServicesSection.js +138 -0
  255. package/dist/telemetry/ui/components/TelemetryServicesSection.js.map +1 -0
  256. package/dist/telemetry/ui/components/TelemetrySpinner.d.ts +3 -0
  257. package/dist/telemetry/ui/components/TelemetrySpinner.d.ts.map +1 -0
  258. package/dist/telemetry/ui/components/TelemetrySpinner.js +14 -0
  259. package/dist/telemetry/ui/components/TelemetrySpinner.js.map +1 -0
  260. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts +17 -0
  261. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts.map +1 -0
  262. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js +70 -0
  263. package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js.map +1 -0
  264. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts +39 -0
  265. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -0
  266. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js +143 -0
  267. package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -0
  268. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts +58 -0
  269. package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts.map +1 -0
  270. package/dist/telemetry/ui/components/dashboard/DashboardPanel.js +62 -0
  271. package/dist/telemetry/ui/components/dashboard/DashboardPanel.js.map +1 -0
  272. package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts +21 -0
  273. package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts.map +1 -0
  274. package/dist/telemetry/ui/components/dashboard/EventsFeed.js +96 -0
  275. package/dist/telemetry/ui/components/dashboard/EventsFeed.js.map +1 -0
  276. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts +13 -0
  277. package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -0
  278. package/dist/telemetry/ui/components/dashboard/KpiTiles.js +82 -0
  279. package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -0
  280. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts +8 -0
  281. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts.map +1 -0
  282. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js +34 -0
  283. package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js.map +1 -0
  284. package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts +19 -0
  285. package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts.map +1 -0
  286. package/dist/telemetry/ui/components/dashboard/TopProblems.js +61 -0
  287. package/dist/telemetry/ui/components/dashboard/TopProblems.js.map +1 -0
  288. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts +12 -0
  289. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts.map +1 -0
  290. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js +36 -0
  291. package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js.map +1 -0
  292. package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts +35 -0
  293. package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts.map +1 -0
  294. package/dist/telemetry/ui/components/dashboard/VerdictBanner.js +68 -0
  295. package/dist/telemetry/ui/components/dashboard/VerdictBanner.js.map +1 -0
  296. package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts +9 -0
  297. package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts.map +1 -0
  298. package/dist/telemetry/ui/components/dashboard/ZoomBrush.js +96 -0
  299. package/dist/telemetry/ui/components/dashboard/ZoomBrush.js.map +1 -0
  300. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +75 -0
  301. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -0
  302. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +247 -0
  303. package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -0
  304. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts +19 -0
  305. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -0
  306. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +64 -0
  307. package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -0
  308. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts +74 -0
  309. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -0
  310. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +126 -0
  311. package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -0
  312. package/dist/telemetry/ui/components/dashboard/severity.d.ts +43 -0
  313. package/dist/telemetry/ui/components/dashboard/severity.d.ts.map +1 -0
  314. package/dist/telemetry/ui/components/dashboard/severity.js +66 -0
  315. package/dist/telemetry/ui/components/dashboard/severity.js.map +1 -0
  316. package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts +11 -0
  317. package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts.map +1 -0
  318. package/dist/telemetry/ui/components/dashboard/timelineAxis.js +20 -0
  319. package/dist/telemetry/ui/components/dashboard/timelineAxis.js.map +1 -0
  320. package/dist/telemetry/ui/dashboard-page.d.ts +2 -0
  321. package/dist/telemetry/ui/dashboard-page.d.ts.map +1 -0
  322. package/dist/telemetry/ui/dashboard-page.js +6 -0
  323. package/dist/telemetry/ui/dashboard-page.js.map +1 -0
  324. package/dist/telemetry/ui/explorer-page.d.ts +2 -0
  325. package/dist/telemetry/ui/explorer-page.d.ts.map +1 -0
  326. package/dist/telemetry/ui/explorer-page.js +6 -0
  327. package/dist/telemetry/ui/explorer-page.js.map +1 -0
  328. package/dist/telemetry/ui/index.d.ts +6 -0
  329. package/dist/telemetry/ui/index.d.ts.map +1 -0
  330. package/dist/telemetry/ui/index.js +10 -0
  331. package/dist/telemetry/ui/index.js.map +1 -0
  332. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts +14 -0
  333. package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts.map +1 -0
  334. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js +286 -0
  335. package/dist/telemetry/ui/pages/TelemetryDashboardPage.js.map +1 -0
  336. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts +15 -0
  337. package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts.map +1 -0
  338. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js +197 -0
  339. package/dist/telemetry/ui/pages/TelemetryExplorerPage.js.map +1 -0
  340. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts +28 -0
  341. package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -0
  342. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +278 -0
  343. package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -0
  344. package/dist/telemetry/ui/settings-page.d.ts +2 -0
  345. package/dist/telemetry/ui/settings-page.d.ts.map +1 -0
  346. package/dist/telemetry/ui/settings-page.js +6 -0
  347. package/dist/telemetry/ui/settings-page.js.map +1 -0
  348. package/dist/testing/index.d.ts +3 -0
  349. package/dist/testing/index.d.ts.map +1 -0
  350. package/dist/testing/index.js +4 -0
  351. package/dist/testing/index.js.map +1 -0
  352. package/dist/testing/test-platform-host.d.ts +108 -0
  353. package/dist/testing/test-platform-host.d.ts.map +1 -0
  354. package/dist/testing/test-platform-host.js +101 -0
  355. package/dist/testing/test-platform-host.js.map +1 -0
  356. package/package.json +132 -4
@@ -0,0 +1,62 @@
1
+ /**
2
+ * The Telemetry Explorer's route (the `Telemetry Explorer` card's path).
3
+ *
4
+ * @stability experimental
5
+ */
6
+ export declare const TELEMETRY_EXPLORER_PATH = "/admin/settings/telemetry/explorer";
7
+ /**
8
+ * The Telemetry Dashboard's route (the `Telemetry Dashboard` card's path).
9
+ *
10
+ * @stability experimental
11
+ */
12
+ export declare const TELEMETRY_DASHBOARD_PATH = "/admin/settings/telemetry/dashboard";
13
+ /**
14
+ * The Telemetry settings page's route (the `Telemetry` card's path).
15
+ *
16
+ * @stability experimental
17
+ */
18
+ export declare const TELEMETRY_SETTINGS_PATH = "/admin/settings/telemetry";
19
+ /**
20
+ * The query parameter the explorer reads a handed statement from.
21
+ *
22
+ * @stability experimental
23
+ */
24
+ export declare const EXPLORER_SQL_PARAM = "sql";
25
+ /**
26
+ * The router state a page hands the explorer a statement in.
27
+ *
28
+ * @stability experimental
29
+ */
30
+ export interface ExplorerHandoffState {
31
+ /** The statement to seed the editor with (never run on arrival). */
32
+ sql: string;
33
+ }
34
+ /**
35
+ * A statement the explorer would accept from a handoff, or `null`.
36
+ *
37
+ * @stability experimental
38
+ */
39
+ export declare function acceptableHandoffSql(value: unknown): string | null;
40
+ /**
41
+ * The `navigate()` arguments that open the explorer with `sql` in its editor.
42
+ *
43
+ * @stability experimental
44
+ */
45
+ export declare function explorerHandoff(sql: string): {
46
+ to: string;
47
+ state: ExplorerHandoffState;
48
+ };
49
+ /**
50
+ * An explorer URL carrying `sql` as `?sql=` — for a link rather than a navigation.
51
+ *
52
+ * @stability experimental
53
+ */
54
+ export declare function explorerSqlUrl(sql: string): string;
55
+ /**
56
+ * The statement handed to the explorer on this navigation: `location.state.sql`
57
+ * first, then `?sql=`. `null` when there is none or it is not acceptable.
58
+ *
59
+ * @stability experimental
60
+ */
61
+ export declare function readExplorerHandoff(state: unknown, params: URLSearchParams): string | null;
62
+ //# sourceMappingURL=explorerHandoff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorerHandoff.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/explorerHandoff.ts"],"names":[],"mappings":"AAeA;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,uCAAuC,CAAC;AAC5E;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wCAAwC,CAAC;AAC9E;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AAEnE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AAExC;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAIlE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,oBAAoB,CAAA;CAAE,CAExF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAI1F"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Handing a SQL statement to the Telemetry Explorer — issue #579, epic #576.
3
+ *
4
+ * The Telemetry Dashboard's "Open in Explorer" and "View trace" navigate to the
5
+ * explorer with the statement in the router's `location.state` (`{ sql }`).
6
+ * A plain link can carry it instead as `?sql=<URL-encoded>` — the fallback for
7
+ * a bookmark or a link pasted from elsewhere; `state` wins when both are set.
8
+ *
9
+ * The explorer puts a handed statement in its editor and NEVER runs it: the
10
+ * reader reviews it and presses Run. Anything empty, not a string, or longer
11
+ * than {@link TELEMETRY_SQL_MAX_LENGTH} (what the API would refuse anyway) is
12
+ * ignored, and the explorer opens as usual.
13
+ */
14
+ import { TELEMETRY_SQL_MAX_LENGTH } from '../services/telemetry.js';
15
+ /**
16
+ * The Telemetry Explorer's route (the `Telemetry Explorer` card's path).
17
+ *
18
+ * @stability experimental
19
+ */
20
+ export const TELEMETRY_EXPLORER_PATH = '/admin/settings/telemetry/explorer';
21
+ /**
22
+ * The Telemetry Dashboard's route (the `Telemetry Dashboard` card's path).
23
+ *
24
+ * @stability experimental
25
+ */
26
+ export const TELEMETRY_DASHBOARD_PATH = '/admin/settings/telemetry/dashboard';
27
+ /**
28
+ * The Telemetry settings page's route (the `Telemetry` card's path).
29
+ *
30
+ * @stability experimental
31
+ */
32
+ export const TELEMETRY_SETTINGS_PATH = '/admin/settings/telemetry';
33
+ /**
34
+ * The query parameter the explorer reads a handed statement from.
35
+ *
36
+ * @stability experimental
37
+ */
38
+ export const EXPLORER_SQL_PARAM = 'sql';
39
+ /**
40
+ * A statement the explorer would accept from a handoff, or `null`.
41
+ *
42
+ * @stability experimental
43
+ */
44
+ export function acceptableHandoffSql(value) {
45
+ if (typeof value !== 'string')
46
+ return null;
47
+ if (value.trim() === '' || value.length > TELEMETRY_SQL_MAX_LENGTH)
48
+ return null;
49
+ return value;
50
+ }
51
+ /**
52
+ * The `navigate()` arguments that open the explorer with `sql` in its editor.
53
+ *
54
+ * @stability experimental
55
+ */
56
+ export function explorerHandoff(sql) {
57
+ return { to: TELEMETRY_EXPLORER_PATH, state: { sql } };
58
+ }
59
+ /**
60
+ * An explorer URL carrying `sql` as `?sql=` — for a link rather than a navigation.
61
+ *
62
+ * @stability experimental
63
+ */
64
+ export function explorerSqlUrl(sql) {
65
+ return `${TELEMETRY_EXPLORER_PATH}?${new URLSearchParams({ [EXPLORER_SQL_PARAM]: sql })}`;
66
+ }
67
+ /**
68
+ * The statement handed to the explorer on this navigation: `location.state.sql`
69
+ * first, then `?sql=`. `null` when there is none or it is not acceptable.
70
+ *
71
+ * @stability experimental
72
+ */
73
+ export function readExplorerHandoff(state, params) {
74
+ const fromState = typeof state === 'object' && state !== null ? acceptableHandoffSql(state.sql) : null;
75
+ return fromState ?? acceptableHandoffSql(params.get(EXPLORER_SQL_PARAM));
76
+ }
77
+ //# sourceMappingURL=explorerHandoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"explorerHandoff.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/explorerHandoff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,oCAAoC,CAAC;AAC5E;;;;GAIG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,qCAAqC,CAAC;AAC9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,2BAA2B,CAAC;AAEnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAC;AAYxC;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3C,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,GAAG,wBAAwB;QAAE,OAAO,IAAI,CAAC;IAChF,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,GAAW;IACzC,OAAO,EAAE,EAAE,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC;AACzD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,GAAW;IACxC,OAAO,GAAG,uBAAuB,IAAI,IAAI,eAAe,CAAC,EAAE,CAAC,kBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AAC5F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc,EAAE,MAAuB;IACzE,MAAM,SAAS,GACb,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAE,KAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC9G,OAAO,SAAS,IAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * Number, time and change formatting for the Telemetry Dashboard (#578).
3
+ * Pure functions, so the tiles and tables stay presentation-only.
4
+ */
5
+ /**
6
+ * A tile value as a number, or `null` (`int8` may arrive as a string).
7
+ *
8
+ * @stability experimental
9
+ */
10
+ export declare function toNumber(value: number | string | null | undefined): number | null;
11
+ /**
12
+ * A duration in milliseconds at a readable scale: `8.5 ms`, `120 ms`, `1.25 s`.
13
+ *
14
+ * @param ms - the duration in milliseconds.
15
+ * @returns the value and its unit, separated by a space.
16
+ *
17
+ * @stability experimental
18
+ */
19
+ export declare function formatDuration(ms: number): string;
20
+ /**
21
+ * A byte count in binary units: `512 B`, `1.5 KB`, `3.2 GB`.
22
+ *
23
+ * @param bytes - the count.
24
+ * @returns the value and its unit, separated by a space.
25
+ *
26
+ * @stability experimental
27
+ */
28
+ export declare function formatBytes(bytes: number): string;
29
+ /**
30
+ * A duration in seconds at a readable scale: `42 s`, `12.5 min`, `3.2 h`,
31
+ * `4.1 d` — a queue age of 5400 s reads better as 1.5 h.
32
+ *
33
+ * @stability experimental
34
+ */
35
+ export declare function formatSeconds(seconds: number): string;
36
+ /**
37
+ * `value` and its unit, split so a tile can style them apart. Covers the
38
+ * summary's units (`req/min`, `%`, `ms`, `count`, `bytes`, `timestamp`) and
39
+ * every metric unit of `/metrics` (#601): `bytes/s`, `per_s`, `per_min`,
40
+ * `seconds`, `hours`, `days`, `cores`, `load`, `text` and `boolean`. An
41
+ * unknown unit is shown as given.
42
+ *
43
+ * @stability experimental
44
+ */
45
+ export declare function formatTileValue(value: number | string | null, unit: string, now?: number): {
46
+ value: string;
47
+ unit: string;
48
+ };
49
+ /**
50
+ * A tile value or table cell as one string (`—` for nothing), e.g. `35.6%`, `1.2 GB`, `Yes`.
51
+ *
52
+ * @stability experimental
53
+ */
54
+ export declare function formatMetricValue(value: number | string | boolean | null | undefined, unit: string, now?: number): string;
55
+ /**
56
+ * "5s ago", "3m ago", "2h ago", "4d ago"; "just now" under a second.
57
+ *
58
+ * @stability experimental
59
+ */
60
+ export declare function formatRelative(iso: string, now?: number): string;
61
+ /**
62
+ * A readable absolute timestamp (local time, to the second).
63
+ *
64
+ * @stability experimental
65
+ */
66
+ export declare function formatTimestamp(iso: string | null): string;
67
+ /**
68
+ * A bucket's x-axis label: time of day, plus the date for multi-day spans.
69
+ *
70
+ * @stability experimental
71
+ */
72
+ export declare function formatBucketLabel(iso: string, spanMs: number): string;
73
+ /**
74
+ * Which direction is bad for a tile: up for errors and latency, none for
75
+ * traffic (more requests is neither good nor bad on its own).
76
+ *
77
+ * @stability experimental
78
+ */
79
+ export type ChangeDirection = 'up-is-bad' | 'down-is-bad' | 'neutral';
80
+ /**
81
+ * Whether a rising value is bad, good or neither for the tile `key`.
82
+ *
83
+ * @param key - the tile's key.
84
+ * @returns the tile's direction (`neutral` for an unknown key).
85
+ *
86
+ * @stability experimental
87
+ */
88
+ export declare function tileDirection(key: string): ChangeDirection;
89
+ /**
90
+ * A tile's change against the previous window of equal length.
91
+ *
92
+ * @stability experimental
93
+ */
94
+ export interface TileChange {
95
+ /** Percent change, rounded; `null` when there is no comparable previous value. */
96
+ pct: number | null;
97
+ /** Which way the value moved. */
98
+ trend: 'up' | 'down' | 'flat';
99
+ /** How to colour it. */
100
+ tone: 'good' | 'bad' | 'neutral';
101
+ }
102
+ /**
103
+ * A tile's change against its previous value, toned by `direction`.
104
+ *
105
+ * @param value - the current value.
106
+ * @param previous - the previous window's value.
107
+ * @param direction - from {@link tileDirection}.
108
+ * @returns the change, its trend and its tone.
109
+ *
110
+ * @stability experimental
111
+ */
112
+ export declare function tileChange(value: number | string | null, previous: number | string | null, direction: ChangeDirection): TileChange;
113
+ //# sourceMappingURL=format.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/format.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAIjF;AAKD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASjD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOrD;AAOD;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7B,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAmB,GACvB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CA8CjC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EACnD,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAmB,GACvB,MAAM,CAQR;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAmB,GAAG,MAAM,CAW5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAY1D;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAQrE;AAED;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;AAuCtE;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAE1D;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,kFAAkF;IAClF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,iCAAiC;IACjC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;IAC9B,wBAAwB;IACxB,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7B,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAChC,SAAS,EAAE,eAAe,GACzB,UAAU,CAeZ"}
@@ -0,0 +1,280 @@
1
+ /**
2
+ * Number, time and change formatting for the Telemetry Dashboard (#578).
3
+ * Pure functions, so the tiles and tables stay presentation-only.
4
+ */
5
+ /**
6
+ * A tile value as a number, or `null` (`int8` may arrive as a string).
7
+ *
8
+ * @stability experimental
9
+ */
10
+ export function toNumber(value) {
11
+ if (value === null || value === undefined || value === '')
12
+ return null;
13
+ const n = typeof value === 'number' ? value : Number(value);
14
+ return Number.isFinite(n) ? n : null;
15
+ }
16
+ const compact = (n, digits = 1) => n.toLocaleString(undefined, { maximumFractionDigits: digits });
17
+ /**
18
+ * A duration in milliseconds at a readable scale: `8.5 ms`, `120 ms`, `1.25 s`.
19
+ *
20
+ * @param ms - the duration in milliseconds.
21
+ * @returns the value and its unit, separated by a space.
22
+ *
23
+ * @stability experimental
24
+ */
25
+ export function formatDuration(ms) {
26
+ if (ms >= 1000)
27
+ return `${compact(ms / 1000, 2)} s`;
28
+ return `${compact(ms, ms < 10 ? 1 : 0)} ms`;
29
+ }
30
+ /**
31
+ * A byte count in binary units: `512 B`, `1.5 KB`, `3.2 GB`.
32
+ *
33
+ * @param bytes - the count.
34
+ * @returns the value and its unit, separated by a space.
35
+ *
36
+ * @stability experimental
37
+ */
38
+ export function formatBytes(bytes) {
39
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
40
+ let value = bytes;
41
+ let unit = 0;
42
+ while (Math.abs(value) >= 1024 && unit < units.length - 1) {
43
+ value /= 1024;
44
+ unit += 1;
45
+ }
46
+ return `${compact(value, unit === 0 ? 0 : 1)} ${units[unit]}`;
47
+ }
48
+ /**
49
+ * A duration in seconds at a readable scale: `42 s`, `12.5 min`, `3.2 h`,
50
+ * `4.1 d` — a queue age of 5400 s reads better as 1.5 h.
51
+ *
52
+ * @stability experimental
53
+ */
54
+ export function formatSeconds(seconds) {
55
+ const abs = Math.abs(seconds);
56
+ if (abs < 1)
57
+ return `${compact(seconds * 1000, 0)} ms`;
58
+ if (abs < 60)
59
+ return `${compact(seconds, abs < 10 ? 2 : 1)} s`;
60
+ if (abs < 3600)
61
+ return `${compact(seconds / 60, 1)} min`;
62
+ if (abs < 48 * 3600)
63
+ return `${compact(seconds / 3600, 1)} h`;
64
+ return `${compact(seconds / 86_400, 1)} d`;
65
+ }
66
+ function split(text) {
67
+ const at = text.indexOf(' ');
68
+ return at < 0 ? { value: text, unit: '' } : { value: text.slice(0, at), unit: text.slice(at + 1) };
69
+ }
70
+ /**
71
+ * `value` and its unit, split so a tile can style them apart. Covers the
72
+ * summary's units (`req/min`, `%`, `ms`, `count`, `bytes`, `timestamp`) and
73
+ * every metric unit of `/metrics` (#601): `bytes/s`, `per_s`, `per_min`,
74
+ * `seconds`, `hours`, `days`, `cores`, `load`, `text` and `boolean`. An
75
+ * unknown unit is shown as given.
76
+ *
77
+ * @stability experimental
78
+ */
79
+ export function formatTileValue(value, unit, now = Date.now()) {
80
+ if (unit === 'timestamp') {
81
+ if (typeof value !== 'string' || !Number.isFinite(Date.parse(value)))
82
+ return { value: '—', unit: '' };
83
+ return { value: formatRelative(value, now), unit: '' };
84
+ }
85
+ if (unit === 'text') {
86
+ return value === null || value === '' ? { value: '—', unit: '' } : { value: String(value), unit: '' };
87
+ }
88
+ const n = toNumber(value);
89
+ if (n === null)
90
+ return { value: '—', unit: '' };
91
+ switch (unit) {
92
+ case '%':
93
+ return { value: compact(n, 2), unit: '%' };
94
+ case 'ms': {
95
+ const [amount, suffix] = formatDuration(n).split(' ');
96
+ return { value: amount, unit: suffix };
97
+ }
98
+ case 'bytes': {
99
+ const [amount, suffix] = formatBytes(n).split(' ');
100
+ return { value: amount, unit: suffix };
101
+ }
102
+ case 'count':
103
+ return { value: Math.round(n).toLocaleString(), unit: '' };
104
+ case 'bytes/s': {
105
+ const [amount, suffix] = formatBytes(n).split(' ');
106
+ return { value: amount, unit: `${suffix}/s` };
107
+ }
108
+ case 'per_s':
109
+ return { value: compact(n, 2), unit: '/s' };
110
+ case 'per_min':
111
+ return { value: compact(n, 2), unit: '/min' };
112
+ case 'seconds':
113
+ return split(formatSeconds(n));
114
+ case 'hours':
115
+ return n >= 48 ? { value: compact(n / 24, 1), unit: 'd' } : { value: compact(n, 1), unit: 'h' };
116
+ case 'days':
117
+ return { value: compact(n, 1), unit: Math.abs(n) === 1 ? 'day' : 'days' };
118
+ case 'cores':
119
+ return { value: compact(n, 2), unit: Math.abs(n) === 1 ? 'core' : 'cores' };
120
+ case 'load':
121
+ return { value: compact(n, 2), unit: '' };
122
+ case 'boolean':
123
+ return { value: n >= 1 ? 'Yes' : 'No', unit: '' };
124
+ default:
125
+ return { value: compact(n, 2), unit };
126
+ }
127
+ }
128
+ /**
129
+ * A tile value or table cell as one string (`—` for nothing), e.g. `35.6%`, `1.2 GB`, `Yes`.
130
+ *
131
+ * @stability experimental
132
+ */
133
+ export function formatMetricValue(value, unit, now = Date.now()) {
134
+ if (value === undefined || value === null)
135
+ return '—';
136
+ if (typeof value === 'boolean')
137
+ return value ? 'Yes' : 'No';
138
+ const formatted = formatTileValue(value, unit, now);
139
+ if (!formatted.unit)
140
+ return formatted.value;
141
+ return formatted.unit === '%' || formatted.unit.startsWith('/')
142
+ ? `${formatted.value}${formatted.unit}`
143
+ : `${formatted.value} ${formatted.unit}`;
144
+ }
145
+ /**
146
+ * "5s ago", "3m ago", "2h ago", "4d ago"; "just now" under a second.
147
+ *
148
+ * @stability experimental
149
+ */
150
+ export function formatRelative(iso, now = Date.now()) {
151
+ const then = Date.parse(iso);
152
+ if (!Number.isFinite(then))
153
+ return '—';
154
+ const seconds = Math.max(0, Math.round((now - then) / 1000));
155
+ if (seconds < 1)
156
+ return 'just now';
157
+ if (seconds < 60)
158
+ return `${seconds}s ago`;
159
+ const minutes = Math.floor(seconds / 60);
160
+ if (minutes < 60)
161
+ return `${minutes}m ago`;
162
+ const hours = Math.floor(minutes / 60);
163
+ if (hours < 48)
164
+ return `${hours}h ago`;
165
+ return `${Math.floor(hours / 24)}d ago`;
166
+ }
167
+ /**
168
+ * A readable absolute timestamp (local time, to the second).
169
+ *
170
+ * @stability experimental
171
+ */
172
+ export function formatTimestamp(iso) {
173
+ if (!iso)
174
+ return '—';
175
+ const then = Date.parse(iso);
176
+ if (!Number.isFinite(then))
177
+ return iso;
178
+ return new Date(then).toLocaleString(undefined, {
179
+ year: 'numeric',
180
+ month: 'short',
181
+ day: 'numeric',
182
+ hour: '2-digit',
183
+ minute: '2-digit',
184
+ second: '2-digit',
185
+ });
186
+ }
187
+ /**
188
+ * A bucket's x-axis label: time of day, plus the date for multi-day spans.
189
+ *
190
+ * @stability experimental
191
+ */
192
+ export function formatBucketLabel(iso, spanMs) {
193
+ const then = Date.parse(iso);
194
+ if (!Number.isFinite(then))
195
+ return iso;
196
+ const date = new Date(then);
197
+ if (spanMs > 24 * 60 * 60_000) {
198
+ return date.toLocaleString(undefined, { month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit' });
199
+ }
200
+ return date.toLocaleTimeString(undefined, { hour: '2-digit', minute: '2-digit' });
201
+ }
202
+ const TILE_DIRECTIONS = {
203
+ requestsPerMin: 'neutral',
204
+ errorRatePct: 'up-is-bad',
205
+ p95Ms: 'up-is-bad',
206
+ errorLogs: 'up-is-bad',
207
+ warnLogs: 'up-is-bad',
208
+ unknownRoutes: 'up-is-bad',
209
+ heapUsedBytes: 'up-is-bad',
210
+ eventLoopDelayP99Ms: 'up-is-bad',
211
+ // `/metrics` tiles (#601): utilization, ages, failures and stalls up is bad;
212
+ // headroom (cache hits, healthy nodes, certificate days) down is bad.
213
+ cpuUtilization: 'up-is-bad',
214
+ memoryUtilization: 'up-is-bad',
215
+ load1m: 'up-is-bad',
216
+ filesystemUtilization: 'up-is-bad',
217
+ dbConnectionUtilization: 'up-is-bad',
218
+ dbCacheHitRatio: 'down-is-bad',
219
+ dbRollbacks: 'up-is-bad',
220
+ dbDeadlocks: 'up-is-bad',
221
+ 'queueDepth.pending': 'up-is-bad',
222
+ oldestPendingAge: 'up-is-bad',
223
+ jobFailureRatio: 'up-is-bad',
224
+ jobDurationP95: 'up-is-bad',
225
+ backupAge: 'up-is-bad',
226
+ 'nodesByHealth.healthy': 'down-is-bad',
227
+ 'nodesByHealth.stale': 'up-is-bad',
228
+ 'nodesByHealth.offline': 'up-is-bad',
229
+ noEligibleNode: 'up-is-bad',
230
+ httpDuration: 'up-is-bad',
231
+ tlsDaysLeft: 'down-is-bad',
232
+ exporterFailed: 'up-is-bad',
233
+ exporterQueueUtilization: 'up-is-bad',
234
+ receiverRefused: 'up-is-bad',
235
+ greptimeWriteStalls: 'up-is-bad',
236
+ scrapeTargetsDown: 'up-is-bad',
237
+ };
238
+ /**
239
+ * Whether a rising value is bad, good or neither for the tile `key`.
240
+ *
241
+ * @param key - the tile's key.
242
+ * @returns the tile's direction (`neutral` for an unknown key).
243
+ *
244
+ * @stability experimental
245
+ */
246
+ export function tileDirection(key) {
247
+ return TILE_DIRECTIONS[key] ?? 'neutral';
248
+ }
249
+ /**
250
+ * A tile's change against its previous value, toned by `direction`.
251
+ *
252
+ * @param value - the current value.
253
+ * @param previous - the previous window's value.
254
+ * @param direction - from {@link tileDirection}.
255
+ * @returns the change, its trend and its tone.
256
+ *
257
+ * @stability experimental
258
+ */
259
+ export function tileChange(value, previous, direction) {
260
+ const current = toNumber(value);
261
+ const before = toNumber(previous);
262
+ if (current === null || before === null)
263
+ return { pct: null, trend: 'flat', tone: 'neutral' };
264
+ if (before === 0) {
265
+ if (current === 0)
266
+ return { pct: 0, trend: 'flat', tone: 'neutral' };
267
+ return { pct: null, trend: 'up', tone: direction === 'up-is-bad' ? 'bad' : direction === 'down-is-bad' ? 'good' : 'neutral' };
268
+ }
269
+ const pct = Math.round(((current - before) / Math.abs(before)) * 1000) / 10;
270
+ if (pct === 0)
271
+ return { pct: 0, trend: 'flat', tone: 'neutral' };
272
+ const trend = pct > 0 ? 'up' : 'down';
273
+ let tone = 'neutral';
274
+ if (direction === 'up-is-bad')
275
+ tone = trend === 'up' ? 'bad' : 'good';
276
+ if (direction === 'down-is-bad')
277
+ tone = trend === 'down' ? 'bad' : 'good';
278
+ return { pct, trend, tone };
279
+ }
280
+ //# sourceMappingURL=format.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/lib/format.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * The Telemetry Dashboard's infrastructure sections — issue #602, epic #576.
3
+ *
4
+ * One section per `/metrics` group (#601). WHICH sections, their titles and
5
+ * their order come from the API's `GET …/metric-groups` (#680,
6
+ * `DashboardMetricGroupMeta`), so a group an application registers renders
7
+ * without a web change. This file keeps the anchor a verdict reason links to,
8
+ * and which reason belongs to which section, read off the wording of the API's
9
+ * infrastructure verdict rules (`telemetry-dashboard.verdict.ts`,
10
+ * docs/specs/telemetry.md §11.7); a reason no pattern matches (the traffic
11
+ * rules, "no data", an app group) simply gets no link.
12
+ */
13
+ import type { DashboardMetricGroup, DashboardMetricGroupMeta } from '../../services/telemetryDashboard.js';
14
+ /** A section's metadata: one `/metric-groups` entry. */
15
+ export type MetricSectionMeta = DashboardMetricGroupMeta;
16
+ /**
17
+ * Fallback titles for two platform groups whose dashboard title is not their
18
+ * id, used only while (or when) the API's group metadata does not list the
19
+ * group. The metadata always wins: an app group (EvoPath's `coach`) is titled
20
+ * from it with no entry here.
21
+ *
22
+ * @stability experimental
23
+ */
24
+ export declare const METRIC_SECTION_TITLES: Readonly<Partial<Record<DashboardMetricGroup, string>>>;
25
+ /**
26
+ * The section title the API gives `group`; else {@link METRIC_SECTION_TITLES};
27
+ * else the id itself.
28
+ *
29
+ * @param group - the metric group id.
30
+ * @param groups - the API's group metadata (`GET …/metric-groups`).
31
+ * @returns the title to show.
32
+ *
33
+ * @stability experimental
34
+ */
35
+ export declare function metricSectionTitle(group: DashboardMetricGroup, groups?: readonly Pick<DashboardMetricGroupMeta, 'id' | 'title'>[]): string;
36
+ /** The DOM id of a section's anchor (the verdict banner scrolls to it). */
37
+ export declare function metricSectionAnchor(group: DashboardMetricGroup): string;
38
+ /** The section's `DashboardPanel` id (tests, and the ⋮ menu focus return). */
39
+ export declare function metricPanelId(group: DashboardMetricGroup): string;
40
+ /** The section a verdict reason is about, or null for the traffic and no-data rules. */
41
+ export declare function verdictReasonGroup(reason: string): DashboardMetricGroup | null;
42
+ /** Scroll a section into view and move focus to it (its region is focusable for this). */
43
+ export declare function scrollToMetricSection(group: DashboardMetricGroup): void;
44
+ //# sourceMappingURL=metricSections.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricSections.d.ts","sourceRoot":"","sources":["../../../../../src/telemetry/headless/lib/metrics/metricSections.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAC;AAE3G,wDAAwD;AACxD,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AAEzD;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC,CAGxF,CAAC;AAEH;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,EAC3B,MAAM,GAAE,SAAS,IAAI,CAAC,wBAAwB,EAAE,IAAI,GAAG,OAAO,CAAC,EAAO,GACrE,MAAM,CAER;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAEvE;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAEjE;AAeD,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAG9E;AAED,0FAA0F;AAC1F,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAKvE"}