mirror of
https://github.com/supabase/supabase.git
synced 2026-05-18 11:01:18 +08:00
* feat: setup chart area and tabs This sets up the area where we can expect the insights chart as well as the tabs mechanism. * feat: parse pg_stat_monitor logs as json * feat: create query perf chart utils and move transfrom function Created a utils file for our QueryPerformanceChart component. This moves the logs to JSON transform function there. * feat: add timerange to chart * feat: add date selector to query perf overview This adds the selector to the top right of the page allowing the user to switch between last hour, 3 hours and 24 hours * feat: modify chart component to accomodate hiding bits * feat: add metrics to each tab * chore: update to 60 min by default and some css * feat: centralise data parsing for logs * feat: clean up filters bar This rewires the export to give you the aggregate pg_stat_monitor data. Also removes unused buttons and filters. * feat: percentiles for query latency chart * feat: filter out non evenets from pg_stat_monitor logs * feat: utils for cache misses and hits * feat: add selected query to chart on click * feat: add click through to query panel * chore: tidy up files * chore: distinction between selected and open panel * feat: move query performance fully into reports area * fix: preserve query params on reports link * fix: remove right icon syntax in report menu * chore: remove cache misses from cache chart * refactor: backwards compatibility for statements if right db version isnt available * chore: delete randomly generated empty file * chore: tidy up unused imports and vars * chore: remove console logs * chore: remove isMounted from query perf * fix: cmd k query perf path * feat: simplify query latency only p50 and p95 This seems to give us a more accurate reading as we can calculate these two * fix: cache hit rate not showing inside query details * chore: chart bg colour adjust So it contrasts a little better on light mode. * feat: show selected query on other verticals * feat: bring back symlink in advisors
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { useEffect } from 'react'
|
|
|
|
import { WithMonitor } from './WithMonitor/WithMonitor'
|
|
import { WithStatements } from './WithStatements/WithStatements'
|
|
import { useParams } from 'common'
|
|
import { DbQueryHook } from 'hooks/analytics/useDbQuery'
|
|
import { useDatabaseSelectorStateSnapshot } from 'state/database-selector'
|
|
import { PresetHookResult } from '../Reports/Reports.utils'
|
|
|
|
interface QueryPerformanceProps {
|
|
queryHitRate: PresetHookResult
|
|
queryPerformanceQuery: DbQueryHook<any>
|
|
queryMetrics: PresetHookResult
|
|
isPgStatMonitorEnabled: boolean
|
|
dateRange?: {
|
|
period_start: { date: string; time_period: string }
|
|
period_end: { date: string; time_period: string }
|
|
interval: string
|
|
}
|
|
onDateRangeChange?: (from: string, to: string) => void
|
|
}
|
|
|
|
export const QueryPerformance = ({
|
|
queryHitRate,
|
|
queryPerformanceQuery,
|
|
queryMetrics,
|
|
isPgStatMonitorEnabled,
|
|
dateRange,
|
|
onDateRangeChange,
|
|
}: QueryPerformanceProps) => {
|
|
const { ref } = useParams()
|
|
const state = useDatabaseSelectorStateSnapshot()
|
|
|
|
useEffect(() => {
|
|
state.setSelectedDatabaseId(ref)
|
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
}, [ref])
|
|
|
|
if (isPgStatMonitorEnabled) {
|
|
return <WithMonitor dateRange={dateRange} onDateRangeChange={onDateRangeChange} />
|
|
}
|
|
|
|
return (
|
|
<WithStatements
|
|
queryHitRate={queryHitRate}
|
|
queryPerformanceQuery={queryPerformanceQuery}
|
|
queryMetrics={queryMetrics}
|
|
/>
|
|
)
|
|
}
|