@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.
- package/CHANGELOG.md +42 -0
- package/LICENSE +21 -0
- package/README.md +96 -2
- package/dist/core/api-client.d.ts +112 -0
- package/dist/core/api-client.d.ts.map +1 -0
- package/dist/core/api-client.js +24 -0
- package/dist/core/api-client.js.map +1 -0
- package/dist/core/host.d.ts +74 -0
- package/dist/core/host.d.ts.map +1 -0
- package/dist/core/host.js +84 -0
- package/dist/core/host.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +5 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/settings-page.d.ts +47 -0
- package/dist/core/settings-page.d.ts.map +1 -0
- package/dist/core/settings-page.js +5 -0
- package/dist/core/settings-page.js.map +1 -0
- package/dist/core/viewer.d.ts +14 -0
- package/dist/core/viewer.d.ts.map +1 -0
- package/dist/core/viewer.js +4 -0
- package/dist/core/viewer.js.map +1 -0
- package/dist/doctor/headless/categories.d.ts +31 -0
- package/dist/doctor/headless/categories.d.ts.map +1 -0
- package/dist/doctor/headless/categories.js +41 -0
- package/dist/doctor/headless/categories.js.map +1 -0
- package/dist/doctor/headless/client.d.ts +33 -0
- package/dist/doctor/headless/client.d.ts.map +1 -0
- package/dist/doctor/headless/client.js +31 -0
- package/dist/doctor/headless/client.js.map +1 -0
- package/dist/doctor/headless/contract.d.ts +18 -0
- package/dist/doctor/headless/contract.d.ts.map +1 -0
- package/dist/doctor/headless/contract.js +15 -0
- package/dist/doctor/headless/contract.js.map +1 -0
- package/dist/doctor/headless/index.d.ts +12 -0
- package/dist/doctor/headless/index.d.ts.map +1 -0
- package/dist/doctor/headless/index.js +8 -0
- package/dist/doctor/headless/index.js.map +1 -0
- package/dist/doctor/headless/use-doctor.d.ts +36 -0
- package/dist/doctor/headless/use-doctor.d.ts.map +1 -0
- package/dist/doctor/headless/use-doctor.js +80 -0
- package/dist/doctor/headless/use-doctor.js.map +1 -0
- package/dist/doctor/headless/use-support-bundle-download.d.ts +68 -0
- package/dist/doctor/headless/use-support-bundle-download.d.ts.map +1 -0
- package/dist/doctor/headless/use-support-bundle-download.js +135 -0
- package/dist/doctor/headless/use-support-bundle-download.js.map +1 -0
- package/dist/doctor/internal/relative-time.d.ts +2 -0
- package/dist/doctor/internal/relative-time.d.ts.map +1 -0
- package/dist/doctor/internal/relative-time.js +29 -0
- package/dist/doctor/internal/relative-time.js.map +1 -0
- package/dist/doctor/internal/status-colors.d.ts +5 -0
- package/dist/doctor/internal/status-colors.d.ts.map +1 -0
- package/dist/doctor/internal/status-colors.js +29 -0
- package/dist/doctor/internal/status-colors.js.map +1 -0
- package/dist/doctor/internal/use-is-mounted.d.ts +2 -0
- package/dist/doctor/internal/use-is-mounted.d.ts.map +1 -0
- package/dist/doctor/internal/use-is-mounted.js +15 -0
- package/dist/doctor/internal/use-is-mounted.js.map +1 -0
- package/dist/doctor/ui/check-row.d.ts +54 -0
- package/dist/doctor/ui/check-row.d.ts.map +1 -0
- package/dist/doctor/ui/check-row.js +100 -0
- package/dist/doctor/ui/check-row.js.map +1 -0
- package/dist/doctor/ui/copy.d.ts +3 -0
- package/dist/doctor/ui/copy.d.ts.map +1 -0
- package/dist/doctor/ui/copy.js +6 -0
- package/dist/doctor/ui/copy.js.map +1 -0
- package/dist/doctor/ui/doctor-page.d.ts +50 -0
- package/dist/doctor/ui/doctor-page.d.ts.map +1 -0
- package/dist/doctor/ui/doctor-page.js +152 -0
- package/dist/doctor/ui/doctor-page.js.map +1 -0
- package/dist/doctor/ui/index.d.ts +8 -0
- package/dist/doctor/ui/index.d.ts.map +1 -0
- package/dist/doctor/ui/index.js +7 -0
- package/dist/doctor/ui/index.js.map +1 -0
- package/dist/doctor/ui/settings-page.d.ts +20 -0
- package/dist/doctor/ui/settings-page.d.ts.map +1 -0
- package/dist/doctor/ui/settings-page.js +32 -0
- package/dist/doctor/ui/settings-page.js.map +1 -0
- package/dist/doctor/ui/support-bundle-button.d.ts +37 -0
- package/dist/doctor/ui/support-bundle-button.d.ts.map +1 -0
- package/dist/doctor/ui/support-bundle-button.js +39 -0
- package/dist/doctor/ui/support-bundle-button.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts +106 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.d.ts.map +1 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js +58 -0
- package/dist/telemetry/headless/adapters/TelemetryWebAdapters.js.map +1 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts +43 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.d.ts.map +1 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.js +24 -0
- package/dist/telemetry/headless/context/TelemetryConfigProvider.js.map +1 -0
- package/dist/telemetry/headless/context/telemetryConfig.d.ts +68 -0
- package/dist/telemetry/headless/context/telemetryConfig.d.ts.map +1 -0
- package/dist/telemetry/headless/context/telemetryConfig.js +119 -0
- package/dist/telemetry/headless/context/telemetryConfig.js.map +1 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts +35 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.d.ts.map +1 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js +44 -0
- package/dist/telemetry/headless/guards/RequireTelemetryEnabled.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts +40 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.js +111 -0
- package/dist/telemetry/headless/hooks/useTelemetryAdmin.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts +120 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.js +185 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistant.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts +12 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js +36 -0
- package/dist/telemetry/headless/hooks/useTelemetryAssistantAvailable.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts +46 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.js +133 -0
- package/dist/telemetry/headless/hooks/useTelemetryConnection.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts +147 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.js +231 -0
- package/dist/telemetry/headless/hooks/useTelemetryDashboard.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts +95 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.js +197 -0
- package/dist/telemetry/headless/hooks/useTelemetryExplorer.js.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts +69 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.d.ts.map +1 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.js +129 -0
- package/dist/telemetry/headless/hooks/useTelemetryStack.js.map +1 -0
- package/dist/telemetry/headless/index.d.ts +34 -0
- package/dist/telemetry/headless/index.d.ts.map +1 -0
- package/dist/telemetry/headless/index.js +34 -0
- package/dist/telemetry/headless/index.js.map +1 -0
- package/dist/telemetry/headless/lib/assistantExport.d.ts +12 -0
- package/dist/telemetry/headless/lib/assistantExport.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/assistantExport.js +116 -0
- package/dist/telemetry/headless/lib/assistantExport.js.map +1 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts +91 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js +246 -0
- package/dist/telemetry/headless/lib/dashboard/assistantPrompt.js.map +1 -0
- package/dist/telemetry/headless/lib/dashboardState.d.ts +58 -0
- package/dist/telemetry/headless/lib/dashboardState.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/dashboardState.js +153 -0
- package/dist/telemetry/headless/lib/dashboardState.js.map +1 -0
- package/dist/telemetry/headless/lib/explorerHandoff.d.ts +62 -0
- package/dist/telemetry/headless/lib/explorerHandoff.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/explorerHandoff.js +77 -0
- package/dist/telemetry/headless/lib/explorerHandoff.js.map +1 -0
- package/dist/telemetry/headless/lib/format.d.ts +113 -0
- package/dist/telemetry/headless/lib/format.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/format.js +280 -0
- package/dist/telemetry/headless/lib/format.js.map +1 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.d.ts +44 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.js +61 -0
- package/dist/telemetry/headless/lib/metrics/metricSections.js.map +1 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts +15 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.js +33 -0
- package/dist/telemetry/headless/lib/metrics/topNPreference.js.map +1 -0
- package/dist/telemetry/headless/lib/queryHistory.d.ts +20 -0
- package/dist/telemetry/headless/lib/queryHistory.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/queryHistory.js +53 -0
- package/dist/telemetry/headless/lib/queryHistory.js.map +1 -0
- package/dist/telemetry/headless/lib/starterQueries.d.ts +48 -0
- package/dist/telemetry/headless/lib/starterQueries.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/starterQueries.js +84 -0
- package/dist/telemetry/headless/lib/starterQueries.js.map +1 -0
- package/dist/telemetry/headless/lib/traceLink.d.ts +26 -0
- package/dist/telemetry/headless/lib/traceLink.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/traceLink.js +32 -0
- package/dist/telemetry/headless/lib/traceLink.js.map +1 -0
- package/dist/telemetry/headless/lib/unknownRoutes.d.ts +23 -0
- package/dist/telemetry/headless/lib/unknownRoutes.d.ts.map +1 -0
- package/dist/telemetry/headless/lib/unknownRoutes.js +35 -0
- package/dist/telemetry/headless/lib/unknownRoutes.js.map +1 -0
- package/dist/telemetry/headless/services/client.d.ts +144 -0
- package/dist/telemetry/headless/services/client.d.ts.map +1 -0
- package/dist/telemetry/headless/services/client.js +144 -0
- package/dist/telemetry/headless/services/client.js.map +1 -0
- package/dist/telemetry/headless/services/telemetry.d.ts +483 -0
- package/dist/telemetry/headless/services/telemetry.d.ts.map +1 -0
- package/dist/telemetry/headless/services/telemetry.js +190 -0
- package/dist/telemetry/headless/services/telemetry.js.map +1 -0
- package/dist/telemetry/headless/services/telemetryDashboard.d.ts +321 -0
- package/dist/telemetry/headless/services/telemetryDashboard.d.ts.map +1 -0
- package/dist/telemetry/headless/services/telemetryDashboard.js +103 -0
- package/dist/telemetry/headless/services/telemetryDashboard.js.map +1 -0
- package/dist/telemetry/internal/useIsMounted.d.ts +9 -0
- package/dist/telemetry/internal/useIsMounted.d.ts.map +1 -0
- package/dist/telemetry/internal/useIsMounted.js +19 -0
- package/dist/telemetry/internal/useIsMounted.js.map +1 -0
- package/dist/telemetry/internal/useVisiblePolling.d.ts +55 -0
- package/dist/telemetry/internal/useVisiblePolling.d.ts.map +1 -0
- package/dist/telemetry/internal/useVisiblePolling.js +96 -0
- package/dist/telemetry/internal/useVisiblePolling.js.map +1 -0
- package/dist/telemetry/internal/visuallyHidden.d.ts +12 -0
- package/dist/telemetry/internal/visuallyHidden.d.ts.map +1 -0
- package/dist/telemetry/internal/visuallyHidden.js +15 -0
- package/dist/telemetry/internal/visuallyHidden.js.map +1 -0
- package/dist/telemetry/theme/augment.d.ts +65 -0
- package/dist/telemetry/theme/augment.d.ts.map +1 -0
- package/dist/telemetry/theme/augment.js +37 -0
- package/dist/telemetry/theme/augment.js.map +1 -0
- package/dist/telemetry/theme/telemetryTokens.d.ts +121 -0
- package/dist/telemetry/theme/telemetryTokens.d.ts.map +1 -0
- package/dist/telemetry/theme/telemetryTokens.js +129 -0
- package/dist/telemetry/theme/telemetryTokens.js.map +1 -0
- package/dist/telemetry/ui/admin.d.ts +35 -0
- package/dist/telemetry/ui/admin.d.ts.map +1 -0
- package/dist/telemetry/ui/admin.js +58 -0
- package/dist/telemetry/ui/admin.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantContainer.d.ts +35 -0
- package/dist/telemetry/ui/components/AssistantContainer.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantContainer.js +83 -0
- package/dist/telemetry/ui/components/AssistantContainer.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantPanel.d.ts +22 -0
- package/dist/telemetry/ui/components/AssistantPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantPanel.js +150 -0
- package/dist/telemetry/ui/components/AssistantPanel.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantReport.d.ts +13 -0
- package/dist/telemetry/ui/components/AssistantReport.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantReport.js +89 -0
- package/dist/telemetry/ui/components/AssistantReport.js.map +1 -0
- package/dist/telemetry/ui/components/AssistantTimeline.d.ts +10 -0
- package/dist/telemetry/ui/components/AssistantTimeline.d.ts.map +1 -0
- package/dist/telemetry/ui/components/AssistantTimeline.js +84 -0
- package/dist/telemetry/ui/components/AssistantTimeline.js.map +1 -0
- package/dist/telemetry/ui/components/ResultsGrid.d.ts +10 -0
- package/dist/telemetry/ui/components/ResultsGrid.d.ts.map +1 -0
- package/dist/telemetry/ui/components/ResultsGrid.js +71 -0
- package/dist/telemetry/ui/components/ResultsGrid.js.map +1 -0
- package/dist/telemetry/ui/components/SchemaPanel.d.ts +9 -0
- package/dist/telemetry/ui/components/SchemaPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/SchemaPanel.js +42 -0
- package/dist/telemetry/ui/components/SchemaPanel.js.map +1 -0
- package/dist/telemetry/ui/components/SqlEditor.d.ts +21 -0
- package/dist/telemetry/ui/components/SqlEditor.d.ts.map +1 -0
- package/dist/telemetry/ui/components/SqlEditor.js +60 -0
- package/dist/telemetry/ui/components/SqlEditor.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts +14 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.js +243 -0
- package/dist/telemetry/ui/components/TelemetryConnectionSection.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts +12 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.js +21 -0
- package/dist/telemetry/ui/components/TelemetryCrossLink.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts +23 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.js +138 -0
- package/dist/telemetry/ui/components/TelemetryServicesSection.js.map +1 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.d.ts +3 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.d.ts.map +1 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.js +14 -0
- package/dist/telemetry/ui/components/TelemetrySpinner.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts +17 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js +70 -0
- package/dist/telemetry/ui/components/dashboard/ApiTimelineChart.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts +39 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js +143 -0
- package/dist/telemetry/ui/components/dashboard/DashboardFilterBar.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts +58 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.js +62 -0
- package/dist/telemetry/ui/components/dashboard/DashboardPanel.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts +21 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.js +96 -0
- package/dist/telemetry/ui/components/dashboard/EventsFeed.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts +13 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.js +82 -0
- package/dist/telemetry/ui/components/dashboard/KpiTiles.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts +8 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js +34 -0
- package/dist/telemetry/ui/components/dashboard/LogSeverityChart.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts +19 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.js +61 -0
- package/dist/telemetry/ui/components/dashboard/TopProblems.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts +12 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js +36 -0
- package/dist/telemetry/ui/components/dashboard/UnknownRoutesPanel.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts +35 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.js +68 -0
- package/dist/telemetry/ui/components/dashboard/VerdictBanner.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts +9 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.js +96 -0
- package/dist/telemetry/ui/components/dashboard/ZoomBrush.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts +75 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js +247 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSections.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts +19 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js +64 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricSeriesChart.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts +74 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js +126 -0
- package/dist/telemetry/ui/components/dashboard/metrics/MetricTable.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/severity.d.ts +43 -0
- package/dist/telemetry/ui/components/dashboard/severity.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/severity.js +66 -0
- package/dist/telemetry/ui/components/dashboard/severity.js.map +1 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts +11 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.d.ts.map +1 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.js +20 -0
- package/dist/telemetry/ui/components/dashboard/timelineAxis.js.map +1 -0
- package/dist/telemetry/ui/dashboard-page.d.ts +2 -0
- package/dist/telemetry/ui/dashboard-page.d.ts.map +1 -0
- package/dist/telemetry/ui/dashboard-page.js +6 -0
- package/dist/telemetry/ui/dashboard-page.js.map +1 -0
- package/dist/telemetry/ui/explorer-page.d.ts +2 -0
- package/dist/telemetry/ui/explorer-page.d.ts.map +1 -0
- package/dist/telemetry/ui/explorer-page.js +6 -0
- package/dist/telemetry/ui/explorer-page.js.map +1 -0
- package/dist/telemetry/ui/index.d.ts +6 -0
- package/dist/telemetry/ui/index.d.ts.map +1 -0
- package/dist/telemetry/ui/index.js +10 -0
- package/dist/telemetry/ui/index.js.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts +14 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.d.ts.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.js +286 -0
- package/dist/telemetry/ui/pages/TelemetryDashboardPage.js.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts +15 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.d.ts.map +1 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.js +197 -0
- package/dist/telemetry/ui/pages/TelemetryExplorerPage.js.map +1 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts +28 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.d.ts.map +1 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.js +278 -0
- package/dist/telemetry/ui/pages/TelemetrySettingsPage.js.map +1 -0
- package/dist/telemetry/ui/settings-page.d.ts +2 -0
- package/dist/telemetry/ui/settings-page.d.ts.map +1 -0
- package/dist/telemetry/ui/settings-page.js +6 -0
- package/dist/telemetry/ui/settings-page.js.map +1 -0
- package/dist/testing/index.d.ts +3 -0
- package/dist/testing/index.d.ts.map +1 -0
- package/dist/testing/index.js +4 -0
- package/dist/testing/index.js.map +1 -0
- package/dist/testing/test-platform-host.d.ts +108 -0
- package/dist/testing/test-platform-host.d.ts.map +1 -0
- package/dist/testing/test-platform-host.js +101 -0
- package/dist/testing/test-platform-host.js.map +1 -0
- 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"}
|