mirror of
https://github.com/supabase/supabase.git
synced 2026-06-10 04:26:19 +08:00
## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? Previously our Query Performance Query column was scrollable inline. This means if you have thicc scrollbars turned on via your OS, it would look a bit clunky. This fix truncates query, full query still viewable in the click through sheet. | Before | After | |--------|--------| | <img width="1106" height="1164" alt="cleanshot_2026-05-13_at_18 56 16_2x" src="https://github.com/user-attachments/assets/4718e8d7-d3c5-499b-a125-6192ac547bfe" /> | <img width="456" height="286" alt="Screenshot 2026-05-13 at 13 34 30" src="https://github.com/user-attachments/assets/7446afb5-c0d7-4272-905a-42c144334472" /> | <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit ## Release Notes * **Style** * Adjusted query column width in the query performance monitoring table for optimized layout. * **Bug Fixes** * Enhanced query display rendering with improved data type handling to prevent potential display issues. <!-- review_stack_entry_start --> [](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/45878) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai -->
91 lines
3.2 KiB
TypeScript
91 lines
3.2 KiB
TypeScript
export enum QUERY_PERFORMANCE_REPORT_TYPES {
|
|
MOST_TIME_CONSUMING = 'most_time_consuming',
|
|
MOST_FREQUENT = 'most_frequent',
|
|
SLOWEST_EXECUTION = 'slowest_execution',
|
|
UNIFIED = 'unified',
|
|
}
|
|
|
|
export const QUERY_PERFORMANCE_PRESET_MAP = {
|
|
[QUERY_PERFORMANCE_REPORT_TYPES.MOST_TIME_CONSUMING]: 'mostTimeConsuming',
|
|
[QUERY_PERFORMANCE_REPORT_TYPES.MOST_FREQUENT]: 'mostFrequentlyInvoked',
|
|
[QUERY_PERFORMANCE_REPORT_TYPES.SLOWEST_EXECUTION]: 'slowestExecutionTime',
|
|
[QUERY_PERFORMANCE_REPORT_TYPES.UNIFIED]: 'unified',
|
|
} as const
|
|
|
|
export const QUERY_PERFORMANCE_COLUMNS = [
|
|
{ id: 'query', name: 'Query', description: undefined, minWidth: 450 },
|
|
{ id: 'prop_total_time', name: 'Time consumed', description: undefined, minWidth: 150 },
|
|
{ id: 'calls', name: 'Calls', description: undefined, minWidth: 100 },
|
|
{ id: 'max_time', name: 'Max time', description: undefined, minWidth: 100 },
|
|
{ id: 'mean_time', name: 'Mean time', description: undefined, minWidth: 100 },
|
|
{ id: 'min_time', name: 'Min time', description: undefined, minWidth: 100 },
|
|
{ id: 'rows_read', name: 'Rows processed', description: undefined, minWidth: 130 },
|
|
{ id: 'cache_hit_rate', name: 'Cache hit rate', description: undefined, minWidth: 130 },
|
|
{ id: 'rolname', name: 'Role', description: undefined, minWidth: 200 },
|
|
{ id: 'application_name', name: 'Application', description: undefined, minWidth: 150 },
|
|
] as const
|
|
|
|
export const QUERY_PERFORMANCE_ROLE_DESCRIPTION = [
|
|
{ name: 'postgres', description: 'The default Postgres role. This has admin privileges.' },
|
|
{
|
|
name: 'anon',
|
|
description:
|
|
'For unauthenticated, public access. This is the role which the API (PostgREST) will use when a user is not logged in.',
|
|
},
|
|
{
|
|
name: 'authenticator',
|
|
description:
|
|
'A special role for the API (PostgREST). It has very limited access, and is used to validate a JWT and then "change into" another role determined by the JWT verification.',
|
|
},
|
|
{
|
|
name: 'authenticated',
|
|
description:
|
|
'For "authenticated access." This is the role which the API (PostgREST) will use when a user is logged in.',
|
|
},
|
|
{
|
|
name: 'service_role',
|
|
description:
|
|
'For elevated access. This role is used by the API (PostgREST) to bypass Row Level Security.',
|
|
},
|
|
{
|
|
name: 'supabase_auth_admin',
|
|
description:
|
|
'Used by the Auth middleware to connect to the database and run migration. Access is scoped to the auth schema.',
|
|
},
|
|
{
|
|
name: 'supabase_storage_admin',
|
|
description:
|
|
'Used by the Auth middleware to connect to the database and run migration. Access is scoped to the storage schema.',
|
|
},
|
|
{ name: 'dashboard_user', description: 'For running commands via the Supabase UI.' },
|
|
{
|
|
name: 'supabase_admin',
|
|
description:
|
|
'An internal role Supabase uses for administrative tasks, such as running upgrades and automations.',
|
|
},
|
|
{
|
|
name: 'pgbouncer',
|
|
description:
|
|
'PgBouncer is a lightweight connection pooler for PostgreSQL. Available on paid plans only.',
|
|
},
|
|
] as const
|
|
|
|
export const QUERY_PERFORMANCE_CHART_TABS = [
|
|
{
|
|
id: 'query_latency',
|
|
label: 'Query latency',
|
|
},
|
|
{
|
|
id: 'rows_read',
|
|
label: 'Rows read',
|
|
},
|
|
{
|
|
id: 'calls',
|
|
label: 'Calls',
|
|
},
|
|
{
|
|
id: 'cache_hits',
|
|
label: 'Cache hits',
|
|
},
|
|
]
|