@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,133 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The GreptimeDB connection section's data — issue #558, epic #528.
|
|
3
|
+
*
|
|
4
|
+
* Loads `GET /admin/telemetry/connection`; saves (`PUT`) and reverts
|
|
5
|
+
* (`DELETE`) with `If-Match: <the connection's version>` — its own counter,
|
|
6
|
+
* not `/config`'s. A stale version answers 409, surfaced as `conflict` so the
|
|
7
|
+
* page can offer a reload. `test` probes a candidate connection: the route
|
|
8
|
+
* always answers 200 with a diagnosis, so a refused login lands in
|
|
9
|
+
* `testResult`, and only a failed CALL lands in `testError`.
|
|
10
|
+
*
|
|
11
|
+
* Writes resolve `true`/`false` and never throw.
|
|
12
|
+
*/
|
|
13
|
+
import { useCallback, useEffect, useState } from 'react';
|
|
14
|
+
import { isPlatformApiError } from '../../../core/index.js';
|
|
15
|
+
import { useTelemetryClient } from '../services/client.js';
|
|
16
|
+
import { useIsMounted } from '../../internal/useIsMounted.js';
|
|
17
|
+
function message(err, fallback) {
|
|
18
|
+
return isPlatformApiError(err) || err instanceof Error ? err.message : fallback;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* The GreptimeDB connection section's data: `GET`, `PUT` and `DELETE /admin/telemetry/connection` (with `If-Match`; a 409 sets `conflict`) and `POST …/connection/test`. Passwords are write-only: they are sent, never read back.
|
|
22
|
+
*
|
|
23
|
+
* @returns the connection and its actions.
|
|
24
|
+
* @throws Error outside a `PlatformHostProvider`.
|
|
25
|
+
*
|
|
26
|
+
* @stability experimental
|
|
27
|
+
*/
|
|
28
|
+
export function useTelemetryConnection() {
|
|
29
|
+
const client = useTelemetryClient();
|
|
30
|
+
const [connection, setConnection] = useState(null);
|
|
31
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
32
|
+
const [loadError, setLoadError] = useState(null);
|
|
33
|
+
const [isSaving, setIsSaving] = useState(false);
|
|
34
|
+
const [saveError, setSaveError] = useState(null);
|
|
35
|
+
const [conflict, setConflict] = useState(false);
|
|
36
|
+
const [isTesting, setIsTesting] = useState(false);
|
|
37
|
+
const [testResult, setTestResult] = useState(null);
|
|
38
|
+
const [testError, setTestError] = useState(null);
|
|
39
|
+
const isMounted = useIsMounted();
|
|
40
|
+
const reload = useCallback(async () => {
|
|
41
|
+
setIsLoading(true);
|
|
42
|
+
setLoadError(null);
|
|
43
|
+
setSaveError(null);
|
|
44
|
+
setConflict(false);
|
|
45
|
+
try {
|
|
46
|
+
const next = await client.getTelemetryConnection();
|
|
47
|
+
if (isMounted())
|
|
48
|
+
setConnection(next);
|
|
49
|
+
}
|
|
50
|
+
catch (err) {
|
|
51
|
+
if (isMounted())
|
|
52
|
+
setLoadError(message(err, 'Failed to load the telemetry connection'));
|
|
53
|
+
}
|
|
54
|
+
finally {
|
|
55
|
+
if (isMounted())
|
|
56
|
+
setIsLoading(false);
|
|
57
|
+
}
|
|
58
|
+
}, [client, isMounted]);
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
void reload();
|
|
61
|
+
}, [reload]);
|
|
62
|
+
const write = useCallback(async (run, fallback) => {
|
|
63
|
+
setIsSaving(true);
|
|
64
|
+
setSaveError(null);
|
|
65
|
+
setConflict(false);
|
|
66
|
+
try {
|
|
67
|
+
const next = await run();
|
|
68
|
+
if (isMounted()) {
|
|
69
|
+
setConnection(next);
|
|
70
|
+
setTestResult(null);
|
|
71
|
+
setTestError(null);
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
catch (err) {
|
|
76
|
+
if (isMounted()) {
|
|
77
|
+
if (isPlatformApiError(err) && err.status === 409) {
|
|
78
|
+
setConflict(true);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
setSaveError(message(err, fallback));
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
finally {
|
|
87
|
+
if (isMounted())
|
|
88
|
+
setIsSaving(false);
|
|
89
|
+
}
|
|
90
|
+
}, [isMounted]);
|
|
91
|
+
const version = connection?.version;
|
|
92
|
+
const save = useCallback((input) => write(() => client.updateTelemetryConnection(input, version), 'Failed to save the telemetry connection'), [client, write, version]);
|
|
93
|
+
const revert = useCallback(() => write(() => client.resetTelemetryConnection(version), 'Failed to revert the telemetry connection'), [client, write, version]);
|
|
94
|
+
const test = useCallback(async (input) => {
|
|
95
|
+
setIsTesting(true);
|
|
96
|
+
setTestResult(null);
|
|
97
|
+
setTestError(null);
|
|
98
|
+
try {
|
|
99
|
+
const result = await client.testTelemetryConnection(input);
|
|
100
|
+
if (isMounted())
|
|
101
|
+
setTestResult(result);
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
if (isMounted())
|
|
105
|
+
setTestError(message(err, 'The connection test could not be run'));
|
|
106
|
+
}
|
|
107
|
+
finally {
|
|
108
|
+
if (isMounted())
|
|
109
|
+
setIsTesting(false);
|
|
110
|
+
}
|
|
111
|
+
}, [client, isMounted]);
|
|
112
|
+
const clearTestResult = useCallback(() => {
|
|
113
|
+
setTestResult(null);
|
|
114
|
+
setTestError(null);
|
|
115
|
+
}, []);
|
|
116
|
+
return {
|
|
117
|
+
connection,
|
|
118
|
+
isLoading,
|
|
119
|
+
loadError,
|
|
120
|
+
isSaving,
|
|
121
|
+
saveError,
|
|
122
|
+
conflict,
|
|
123
|
+
isTesting,
|
|
124
|
+
testResult,
|
|
125
|
+
testError,
|
|
126
|
+
reload,
|
|
127
|
+
save,
|
|
128
|
+
revert,
|
|
129
|
+
test,
|
|
130
|
+
clearTestResult,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=useTelemetryConnection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTelemetryConnection.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/hooks/useTelemetryConnection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { type DashboardEvent, type DashboardEvents, type DashboardEventsQuery, type DashboardMetricGroup, type DashboardMetricsQuery, type DashboardQuery, type DashboardSummary, type DashboardTimeseries, type DashboardTimeseriesPanel, type DashboardTop, type DashboardTopKind } from '../services/telemetryDashboard.js';
|
|
2
|
+
import { type TelemetryErrorInfo } from './useTelemetryExplorer.js';
|
|
3
|
+
/**
|
|
4
|
+
* One dashboard panel's data, as every `useDashboard*` hook returns it.
|
|
5
|
+
*
|
|
6
|
+
* @stability experimental
|
|
7
|
+
*/
|
|
8
|
+
export interface DashboardResource<T> {
|
|
9
|
+
/** The last result, or `null` before the first. */
|
|
10
|
+
data: T | null;
|
|
11
|
+
/** The last request's error, or `null`. */
|
|
12
|
+
error: TelemetryErrorInfo | null;
|
|
13
|
+
/** No result yet and a request in flight. */
|
|
14
|
+
isLoading: boolean;
|
|
15
|
+
/** A result is on screen and a newer one is in flight. */
|
|
16
|
+
isRefreshing: boolean;
|
|
17
|
+
/** `Date.now()` when the last result arrived. */
|
|
18
|
+
fetchedAt: number | null;
|
|
19
|
+
/** Refetch now (a panel's Retry). */
|
|
20
|
+
reload: () => void;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* `GET …/summary` — verdict, tiles and optional runtime tiles.
|
|
24
|
+
*
|
|
25
|
+
* @stability experimental
|
|
26
|
+
*/
|
|
27
|
+
export declare function useDashboardSummary(query: DashboardQuery, tick: number): DashboardResource<DashboardSummary>;
|
|
28
|
+
/**
|
|
29
|
+
* `GET …/timeseries?panel=api|logs`.
|
|
30
|
+
*
|
|
31
|
+
* @stability experimental
|
|
32
|
+
*/
|
|
33
|
+
export declare function useDashboardTimeseries<P extends DashboardTimeseriesPanel>(panel: P, query: DashboardQuery, tick: number): DashboardResource<DashboardTimeseries<P>>;
|
|
34
|
+
/**
|
|
35
|
+
* `GET …/top?kind=routes|errors`.
|
|
36
|
+
*
|
|
37
|
+
* @stability experimental
|
|
38
|
+
*/
|
|
39
|
+
export declare function useDashboardTop<K extends DashboardTopKind>(kind: K, query: DashboardQuery, tick: number): DashboardResource<DashboardTop<K>>;
|
|
40
|
+
/**
|
|
41
|
+
* `GET …/metrics?group=…` (#601) — one metric group per call, so each of the
|
|
42
|
+
* page's infrastructure sections (one per `/metric-groups` entry, #680) loads,
|
|
43
|
+
* fails and retries on its own, on the page's shared refresh tick.
|
|
44
|
+
*
|
|
45
|
+
* @stability experimental
|
|
46
|
+
*/
|
|
47
|
+
export declare function useDashboardMetrics(group: DashboardMetricGroup, query: DashboardMetricsQuery, tick: number): DashboardResource<{
|
|
48
|
+
range: {
|
|
49
|
+
from: string;
|
|
50
|
+
to: string;
|
|
51
|
+
bucketSeconds: number;
|
|
52
|
+
};
|
|
53
|
+
generatedAt: string;
|
|
54
|
+
truncated: boolean;
|
|
55
|
+
sql: string[];
|
|
56
|
+
group: string;
|
|
57
|
+
available: boolean;
|
|
58
|
+
tiles: {
|
|
59
|
+
key: string;
|
|
60
|
+
label: string;
|
|
61
|
+
value: string | number | null;
|
|
62
|
+
previous: string | number | null;
|
|
63
|
+
unit: string;
|
|
64
|
+
sparkline: (number | null)[];
|
|
65
|
+
}[];
|
|
66
|
+
series: {
|
|
67
|
+
key: string;
|
|
68
|
+
label: string;
|
|
69
|
+
unit: "boolean" | "days" | "hours" | "seconds" | "ms" | "text" | "timestamp" | "count" | "%" | "bytes" | "bytes/s" | "per_s" | "per_min" | "cores" | "load";
|
|
70
|
+
dimension: string | null;
|
|
71
|
+
groupBy: string | null;
|
|
72
|
+
points: {
|
|
73
|
+
t: string;
|
|
74
|
+
v: number | null;
|
|
75
|
+
}[];
|
|
76
|
+
}[];
|
|
77
|
+
tables: {
|
|
78
|
+
key: string;
|
|
79
|
+
label: string;
|
|
80
|
+
columns: {
|
|
81
|
+
key: string;
|
|
82
|
+
label: string;
|
|
83
|
+
unit: "boolean" | "days" | "hours" | "seconds" | "ms" | "text" | "timestamp" | "count" | "%" | "bytes" | "bytes/s" | "per_s" | "per_min" | "cores" | "load";
|
|
84
|
+
}[];
|
|
85
|
+
rows: Record<string, string | number | boolean | null>[];
|
|
86
|
+
}[];
|
|
87
|
+
skipped: string[];
|
|
88
|
+
freshMs?: number | undefined;
|
|
89
|
+
}>;
|
|
90
|
+
/**
|
|
91
|
+
* `GET …/metric-groups` (#680) — the sections the page renders, sorted by
|
|
92
|
+
* `order` then id. Fetched once with the page's initial requests (the list
|
|
93
|
+
* only changes with a deploy), not on the refresh tick; Retry refetches it.
|
|
94
|
+
*
|
|
95
|
+
* @stability experimental
|
|
96
|
+
*/
|
|
97
|
+
export declare function useDashboardMetricGroups(): DashboardResource<{
|
|
98
|
+
id: string;
|
|
99
|
+
label: string;
|
|
100
|
+
title: string;
|
|
101
|
+
order: number;
|
|
102
|
+
}[]>;
|
|
103
|
+
/**
|
|
104
|
+
* `GET …/filters` — the services, instances and hosts seen in the window.
|
|
105
|
+
*
|
|
106
|
+
* @stability experimental
|
|
107
|
+
*/
|
|
108
|
+
export declare function useDashboardFilters(query: Pick<DashboardQuery, 'range' | 'from' | 'to'>, tick: number): DashboardResource<{
|
|
109
|
+
services: string[];
|
|
110
|
+
instances: string[];
|
|
111
|
+
hosts: string[];
|
|
112
|
+
range: {
|
|
113
|
+
from: string;
|
|
114
|
+
to: string;
|
|
115
|
+
bucketSeconds: number;
|
|
116
|
+
};
|
|
117
|
+
generatedAt: string;
|
|
118
|
+
truncated: boolean;
|
|
119
|
+
sql: string | string[];
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* What {@link useDashboardEvents} returns: the panel's data plus keyset paging.
|
|
123
|
+
*
|
|
124
|
+
* @stability experimental
|
|
125
|
+
*/
|
|
126
|
+
export interface DashboardEventsResource extends DashboardResource<DashboardEvents> {
|
|
127
|
+
/** Every page loaded so far, newest first. */
|
|
128
|
+
items: DashboardEvent[];
|
|
129
|
+
/** Another page exists. */
|
|
130
|
+
hasMore: boolean;
|
|
131
|
+
/** The next page is in flight. */
|
|
132
|
+
isLoadingMore: boolean;
|
|
133
|
+
/** Why the next page failed, or `null`. */
|
|
134
|
+
loadMoreError: TelemetryErrorInfo | null;
|
|
135
|
+
/** Load the next page. */
|
|
136
|
+
loadMore: () => void;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* `GET …/events` with keyset paging. A new query (filters, severity, search)
|
|
140
|
+
* or a refresh replaces the list with its first page — EXCEPT that an
|
|
141
|
+
* auto-refresh tick is skipped while the reader has paged past the first page,
|
|
142
|
+
* so the rows they scrolled to do not collapse under them every 30 seconds.
|
|
143
|
+
*
|
|
144
|
+
* @stability experimental
|
|
145
|
+
*/
|
|
146
|
+
export declare function useDashboardEvents(query: DashboardEventsQuery, tick: number): DashboardEventsResource;
|
|
147
|
+
//# sourceMappingURL=useTelemetryDashboard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTelemetryDashboard.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/hooks/useTelemetryDashboard.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EAEzB,KAAK,oBAAoB,EAGzB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,EAC7B,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACtB,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EAAoB,KAAK,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEtF;;;;GAIG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,mDAAmD;IACnD,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,2CAA2C;IAC3C,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjC,6CAA6C;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,YAAY,EAAE,OAAO,CAAC;IACtB,iDAAiD;IACjD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qCAAqC;IACrC,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AA4DD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,uCAQtE;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,wBAAwB,EACvE,KAAK,EAAE,CAAC,EACR,KAAK,EAAE,cAAc,EACrB,IAAI,EAAE,MAAM,6CASb;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,SAAS,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,sCAQvG;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAQ1G;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB;;;;;KAWvC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;GAQrG;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAwB,SAAQ,iBAAiB,CAAC,eAAe,CAAC;IACjF,8CAA8C;IAC9C,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,2BAA2B;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,2CAA2C;IAC3C,aAAa,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACzC,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,oBAAoB,EAAE,IAAI,EAAE,MAAM,GAAG,uBAAuB,CA8FrG"}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Telemetry Dashboard's data — issue #578, epic #576.
|
|
3
|
+
*
|
|
4
|
+
* One hook per endpoint, each fetching INDEPENDENTLY: a panel whose request
|
|
5
|
+
* fails (or is slow) never holds up or blanks another. Every hook
|
|
6
|
+
*
|
|
7
|
+
* - aborts the request in flight when a newer one starts (a filter change, an
|
|
8
|
+
* auto-refresh tick or a Retry), so overlapping responses can never land out
|
|
9
|
+
* of order;
|
|
10
|
+
* - keeps the last good result on screen while it refreshes (`isRefreshing`),
|
|
11
|
+
* and reports `isLoading` only before the first result;
|
|
12
|
+
* - reports failures as {@link TelemetryErrorInfo}, whose `reason` is the
|
|
13
|
+
* API's `details.reason` (`TELEMETRY_UNREACHABLE`, …).
|
|
14
|
+
*
|
|
15
|
+
* `tick` is the page's refresh counter: bumping it refetches with the same
|
|
16
|
+
* parameters. Polling itself (and pausing it in a hidden tab) is the page's
|
|
17
|
+
* job, through `useVisiblePolling`.
|
|
18
|
+
*/
|
|
19
|
+
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
20
|
+
import { useTelemetryClient } from '../services/client.js';
|
|
21
|
+
import { toTelemetryError } from './useTelemetryExplorer.js';
|
|
22
|
+
function isAbort(err) {
|
|
23
|
+
return typeof err === 'object' && err !== null && err.name === 'AbortError';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The shared fetch-with-abort engine. `key` identifies the parameters (a new
|
|
27
|
+
* key refetches); `fetcher` is read through a ref so a fresh closure every
|
|
28
|
+
* render does not refetch on its own.
|
|
29
|
+
*/
|
|
30
|
+
function useDashboardResource(key, fetcher, tick, fallbackMessage) {
|
|
31
|
+
const [data, setData] = useState(null);
|
|
32
|
+
const [error, setError] = useState(null);
|
|
33
|
+
const [isFetching, setIsFetching] = useState(true);
|
|
34
|
+
const [fetchedAt, setFetchedAt] = useState(null);
|
|
35
|
+
const [reloadCount, setReloadCount] = useState(0);
|
|
36
|
+
const fetcherRef = useRef(fetcher);
|
|
37
|
+
fetcherRef.current = fetcher;
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
const controller = new AbortController();
|
|
40
|
+
setIsFetching(true);
|
|
41
|
+
fetcherRef
|
|
42
|
+
.current(controller.signal)
|
|
43
|
+
.then((next) => {
|
|
44
|
+
if (controller.signal.aborted)
|
|
45
|
+
return;
|
|
46
|
+
setData(next);
|
|
47
|
+
setError(null);
|
|
48
|
+
setFetchedAt(Date.now());
|
|
49
|
+
})
|
|
50
|
+
.catch((err) => {
|
|
51
|
+
if (isAbort(err) || controller.signal.aborted)
|
|
52
|
+
return;
|
|
53
|
+
setError(toTelemetryError(err, fallbackMessage));
|
|
54
|
+
})
|
|
55
|
+
.finally(() => {
|
|
56
|
+
if (!controller.signal.aborted)
|
|
57
|
+
setIsFetching(false);
|
|
58
|
+
});
|
|
59
|
+
return () => controller.abort();
|
|
60
|
+
}, [key, tick, reloadCount, fallbackMessage]);
|
|
61
|
+
const reload = useCallback(() => setReloadCount((count) => count + 1), []);
|
|
62
|
+
return {
|
|
63
|
+
data,
|
|
64
|
+
error,
|
|
65
|
+
isLoading: isFetching && data === null,
|
|
66
|
+
isRefreshing: isFetching && data !== null,
|
|
67
|
+
fetchedAt,
|
|
68
|
+
reload,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
const keyOf = (value) => JSON.stringify(value);
|
|
72
|
+
/**
|
|
73
|
+
* `GET …/summary` — verdict, tiles and optional runtime tiles.
|
|
74
|
+
*
|
|
75
|
+
* @stability experimental
|
|
76
|
+
*/
|
|
77
|
+
export function useDashboardSummary(query, tick) {
|
|
78
|
+
const client = useTelemetryClient();
|
|
79
|
+
return useDashboardResource(keyOf(query), (signal) => client.getDashboardSummary(query, { signal }), tick, 'Failed to load the summary');
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* `GET …/timeseries?panel=api|logs`.
|
|
83
|
+
*
|
|
84
|
+
* @stability experimental
|
|
85
|
+
*/
|
|
86
|
+
export function useDashboardTimeseries(panel, query, tick) {
|
|
87
|
+
const client = useTelemetryClient();
|
|
88
|
+
return useDashboardResource(keyOf([panel, query]), (signal) => client.getDashboardTimeseries(panel, query, { signal }), tick, 'Failed to load the time series');
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* `GET …/top?kind=routes|errors`.
|
|
92
|
+
*
|
|
93
|
+
* @stability experimental
|
|
94
|
+
*/
|
|
95
|
+
export function useDashboardTop(kind, query, tick) {
|
|
96
|
+
const client = useTelemetryClient();
|
|
97
|
+
return useDashboardResource(keyOf([kind, query]), (signal) => client.getDashboardTop(kind, query, { signal }), tick, 'Failed to load the top list');
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* `GET …/metrics?group=…` (#601) — one metric group per call, so each of the
|
|
101
|
+
* page's infrastructure sections (one per `/metric-groups` entry, #680) loads,
|
|
102
|
+
* fails and retries on its own, on the page's shared refresh tick.
|
|
103
|
+
*
|
|
104
|
+
* @stability experimental
|
|
105
|
+
*/
|
|
106
|
+
export function useDashboardMetrics(group, query, tick) {
|
|
107
|
+
const client = useTelemetryClient();
|
|
108
|
+
return useDashboardResource(keyOf([group, query]), (signal) => client.getDashboardMetrics(group, query, { signal }), tick, 'Failed to load the metrics');
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* `GET …/metric-groups` (#680) — the sections the page renders, sorted by
|
|
112
|
+
* `order` then id. Fetched once with the page's initial requests (the list
|
|
113
|
+
* only changes with a deploy), not on the refresh tick; Retry refetches it.
|
|
114
|
+
*
|
|
115
|
+
* @stability experimental
|
|
116
|
+
*/
|
|
117
|
+
export function useDashboardMetricGroups() {
|
|
118
|
+
const client = useTelemetryClient();
|
|
119
|
+
return useDashboardResource('metric-groups', async (signal) => [...(await client.getDashboardMetricGroups({ signal }))].sort((a, b) => a.order - b.order || (a.id < b.id ? -1 : a.id > b.id ? 1 : 0)), 0, 'Failed to load the metric sections');
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* `GET …/filters` — the services, instances and hosts seen in the window.
|
|
123
|
+
*
|
|
124
|
+
* @stability experimental
|
|
125
|
+
*/
|
|
126
|
+
export function useDashboardFilters(query, tick) {
|
|
127
|
+
const client = useTelemetryClient();
|
|
128
|
+
return useDashboardResource(keyOf(query), (signal) => client.getDashboardFilters(query, { signal }), tick, 'Failed to load the filter values');
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* `GET …/events` with keyset paging. A new query (filters, severity, search)
|
|
132
|
+
* or a refresh replaces the list with its first page — EXCEPT that an
|
|
133
|
+
* auto-refresh tick is skipped while the reader has paged past the first page,
|
|
134
|
+
* so the rows they scrolled to do not collapse under them every 30 seconds.
|
|
135
|
+
*
|
|
136
|
+
* @stability experimental
|
|
137
|
+
*/
|
|
138
|
+
export function useDashboardEvents(query, tick) {
|
|
139
|
+
const client = useTelemetryClient();
|
|
140
|
+
const key = keyOf(query);
|
|
141
|
+
const [pages, setPages] = useState([]);
|
|
142
|
+
const [error, setError] = useState(null);
|
|
143
|
+
const [isFetching, setIsFetching] = useState(true);
|
|
144
|
+
const [fetchedAt, setFetchedAt] = useState(null);
|
|
145
|
+
const [isLoadingMore, setIsLoadingMore] = useState(false);
|
|
146
|
+
const [loadMoreError, setLoadMoreError] = useState(null);
|
|
147
|
+
const [reloadCount, setReloadCount] = useState(0);
|
|
148
|
+
const queryRef = useRef(query);
|
|
149
|
+
queryRef.current = query;
|
|
150
|
+
const controllerRef = useRef(null);
|
|
151
|
+
const pagedRef = useRef({ key, paged: false });
|
|
152
|
+
const lastRunRef = useRef(null);
|
|
153
|
+
useEffect(() => {
|
|
154
|
+
const last = lastRunRef.current;
|
|
155
|
+
const onlyTick = last !== null && last.key === key && last.reloadCount === reloadCount;
|
|
156
|
+
if (onlyTick && pagedRef.current.key === key && pagedRef.current.paged)
|
|
157
|
+
return;
|
|
158
|
+
lastRunRef.current = { key, reloadCount };
|
|
159
|
+
controllerRef.current?.abort();
|
|
160
|
+
const controller = new AbortController();
|
|
161
|
+
controllerRef.current = controller;
|
|
162
|
+
setIsFetching(true);
|
|
163
|
+
setIsLoadingMore(false);
|
|
164
|
+
setLoadMoreError(null);
|
|
165
|
+
client.getDashboardEvents(queryRef.current, { signal: controller.signal })
|
|
166
|
+
.then((page) => {
|
|
167
|
+
if (controller.signal.aborted)
|
|
168
|
+
return;
|
|
169
|
+
pagedRef.current = { key, paged: false };
|
|
170
|
+
setPages([page]);
|
|
171
|
+
setError(null);
|
|
172
|
+
setFetchedAt(Date.now());
|
|
173
|
+
})
|
|
174
|
+
.catch((err) => {
|
|
175
|
+
if (isAbort(err) || controller.signal.aborted)
|
|
176
|
+
return;
|
|
177
|
+
setError(toTelemetryError(err, 'Failed to load events'));
|
|
178
|
+
})
|
|
179
|
+
.finally(() => {
|
|
180
|
+
if (controllerRef.current === controller) {
|
|
181
|
+
controllerRef.current = null;
|
|
182
|
+
setIsFetching(false);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}, [key, tick, reloadCount]);
|
|
186
|
+
useEffect(() => () => controllerRef.current?.abort(), []);
|
|
187
|
+
const last = pages.length > 0 ? pages[pages.length - 1] : null;
|
|
188
|
+
const nextCursor = last?.nextCursor ?? null;
|
|
189
|
+
const loadMore = useCallback(() => {
|
|
190
|
+
if (!nextCursor || controllerRef.current)
|
|
191
|
+
return;
|
|
192
|
+
const controller = new AbortController();
|
|
193
|
+
controllerRef.current = controller;
|
|
194
|
+
setIsLoadingMore(true);
|
|
195
|
+
setLoadMoreError(null);
|
|
196
|
+
client.getDashboardEvents({ ...queryRef.current, cursor: nextCursor }, { signal: controller.signal })
|
|
197
|
+
.then((page) => {
|
|
198
|
+
if (controller.signal.aborted)
|
|
199
|
+
return;
|
|
200
|
+
pagedRef.current = { key: keyOf(queryRef.current), paged: true };
|
|
201
|
+
setPages((prev) => [...prev, page]);
|
|
202
|
+
})
|
|
203
|
+
.catch((err) => {
|
|
204
|
+
if (isAbort(err) || controller.signal.aborted)
|
|
205
|
+
return;
|
|
206
|
+
setLoadMoreError(toTelemetryError(err, 'Failed to load more events'));
|
|
207
|
+
})
|
|
208
|
+
.finally(() => {
|
|
209
|
+
if (controllerRef.current === controller) {
|
|
210
|
+
controllerRef.current = null;
|
|
211
|
+
setIsLoadingMore(false);
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
}, [nextCursor]);
|
|
215
|
+
const reload = useCallback(() => setReloadCount((count) => count + 1), []);
|
|
216
|
+
const data = pages[0] ?? null;
|
|
217
|
+
return {
|
|
218
|
+
data,
|
|
219
|
+
error,
|
|
220
|
+
isLoading: isFetching && data === null,
|
|
221
|
+
isRefreshing: isFetching && data !== null,
|
|
222
|
+
fetchedAt,
|
|
223
|
+
reload,
|
|
224
|
+
items: pages.flatMap((page) => page.items),
|
|
225
|
+
hasMore: nextCursor !== null,
|
|
226
|
+
isLoadingMore,
|
|
227
|
+
loadMoreError,
|
|
228
|
+
loadMore,
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=useTelemetryDashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTelemetryDashboard.js","sourceRoot":"","sources":["../../../../src/telemetry/headless/hooks/useTelemetryDashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { type TelemetryQueryResult, type TelemetrySchemaTable } from '../services/telemetry.js';
|
|
2
|
+
/**
|
|
3
|
+
* A failed telemetry call, as the pages show it: the message plus the envelope code, `details.reason`, the status and the query-specific details.
|
|
4
|
+
*
|
|
5
|
+
* @stability experimental
|
|
6
|
+
*/
|
|
7
|
+
export interface TelemetryErrorInfo {
|
|
8
|
+
/** What to show. */
|
|
9
|
+
message: string;
|
|
10
|
+
/** The envelope `code` — derived from the HTTP status. */
|
|
11
|
+
code: string | null;
|
|
12
|
+
/** `details.reason` — the telemetry-specific reason (`TELEMETRY_QUERY_REJECTED`, …). */
|
|
13
|
+
reason: string | null;
|
|
14
|
+
/** The HTTP status, or `null` for a network failure. */
|
|
15
|
+
status: number | null;
|
|
16
|
+
/** `details.sqlState` for `TELEMETRY_QUERY_FAILED`. */
|
|
17
|
+
sqlState: string | null;
|
|
18
|
+
/** `details.timeoutMs` for `TELEMETRY_QUERY_TIMEOUT`. */
|
|
19
|
+
timeoutMs: number | null;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* A rejection as a {@link TelemetryErrorInfo}: a `PlatformApiError`'s status, code and details, or any other error's message.
|
|
23
|
+
*
|
|
24
|
+
* @param err - whatever a {@link TelemetryClient} call rejected with.
|
|
25
|
+
* @param fallback - the message when `err` carries none.
|
|
26
|
+
* @returns the error as the pages show it.
|
|
27
|
+
*
|
|
28
|
+
* @stability experimental
|
|
29
|
+
*/
|
|
30
|
+
export declare function toTelemetryError(err: unknown, fallback: string): TelemetryErrorInfo;
|
|
31
|
+
/**
|
|
32
|
+
* A short human heading for a telemetry error, branching on `details.reason`.
|
|
33
|
+
*
|
|
34
|
+
* @stability experimental
|
|
35
|
+
*/
|
|
36
|
+
export declare function telemetryErrorTitle(error: TelemetryErrorInfo): string;
|
|
37
|
+
/**
|
|
38
|
+
* What {@link useTelemetrySchema} returns.
|
|
39
|
+
*
|
|
40
|
+
* @stability experimental
|
|
41
|
+
*/
|
|
42
|
+
export interface UseTelemetrySchemaReturn {
|
|
43
|
+
/** The tables the reader login may query (empty until loaded). */
|
|
44
|
+
tables: TelemetrySchemaTable[];
|
|
45
|
+
/** A (re)load is in flight. */
|
|
46
|
+
isLoading: boolean;
|
|
47
|
+
/** Why the schema could not be loaded, or `null`. */
|
|
48
|
+
error: string | null;
|
|
49
|
+
/** Load the schema again. */
|
|
50
|
+
reload: () => Promise<void>;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* `GET /admin/telemetry/schema`, once on mount: the tables the explorer's schema panel and editor completion read.
|
|
54
|
+
*
|
|
55
|
+
* @returns `tables`, `isLoading`, `error` (a message or `null`) and `reload`.
|
|
56
|
+
* @throws Error outside a `PlatformHostProvider`.
|
|
57
|
+
*
|
|
58
|
+
* @stability experimental
|
|
59
|
+
*/
|
|
60
|
+
export declare function useTelemetrySchema(): UseTelemetrySchemaReturn;
|
|
61
|
+
/**
|
|
62
|
+
* What {@link useTelemetryQuery} returns.
|
|
63
|
+
*
|
|
64
|
+
* @stability experimental
|
|
65
|
+
*/
|
|
66
|
+
export interface UseTelemetryQueryReturn {
|
|
67
|
+
/** The last result, or `null` before the first. */
|
|
68
|
+
result: TelemetryQueryResult | null;
|
|
69
|
+
/** The last run's error, or `null`. */
|
|
70
|
+
error: TelemetryErrorInfo | null;
|
|
71
|
+
/** A run is in flight. */
|
|
72
|
+
isRunning: boolean;
|
|
73
|
+
/** Resolves `true` when a result arrived. */
|
|
74
|
+
run: (sql: string) => Promise<boolean>;
|
|
75
|
+
/** Abort the run in flight. */
|
|
76
|
+
cancel: () => void;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* `POST /admin/telemetry/query` with cancel. A newer run aborts the one in flight; an aborted run leaves the previous result on screen and reports nothing. Whether a statement is allowed is the API's decision.
|
|
80
|
+
*
|
|
81
|
+
* @returns the result, the error and the run and cancel actions.
|
|
82
|
+
* @throws Error outside a `PlatformHostProvider`.
|
|
83
|
+
*
|
|
84
|
+
* @stability experimental
|
|
85
|
+
*/
|
|
86
|
+
export declare function useTelemetryQuery(): UseTelemetryQueryReturn;
|
|
87
|
+
/**
|
|
88
|
+
* The assistant's configured provider and model, as a caption — read from the
|
|
89
|
+
* admin config, so only fetched for a holder of `telemetry:read` (`enabled`).
|
|
90
|
+
* Best effort: any failure just means no caption.
|
|
91
|
+
*
|
|
92
|
+
* @stability experimental
|
|
93
|
+
*/
|
|
94
|
+
export declare function useTelemetryAssistantModel(enabled: boolean): string | null;
|
|
95
|
+
//# sourceMappingURL=useTelemetryExplorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTelemetryExplorer.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/headless/hooks/useTelemetryExplorer.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EAC1B,MAAM,0BAA0B,CAAC;AAIlC;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,wFAAwF;IACxF,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wDAAwD;IACxD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,uDAAuD;IACvD,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,yDAAyD;IACzD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AASD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAmBnF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAqBrE;AAMD;;;;GAIG;AACH,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,MAAM,EAAE,oBAAoB,EAAE,CAAC;IAC/B,+BAA+B;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,qDAAqD;IACrD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6BAA6B;IAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,IAAI,wBAAwB,CAyB7D;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,mDAAmD;IACnD,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,uCAAuC;IACvC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACjC,0BAA0B;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC,+BAA+B;IAC/B,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,IAAI,uBAAuB,CA2C3D;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAkB1E"}
|