add cron jobs page

This commit is contained in:
Jordi Enric committed 2024-11-19 16:16:58 +01:00
1 parent 3eaae48edb
commit 2f9193c734
7 files changed
+50

No files matched your search

@@ -42,6 +42,8 @@ const LogSelection = ({ log, onClose, queryType, isLoading, error }: LogSelectio
case 'database':
return <DatabasePostgresSelectionRender log={log} />
case 'pg_cron':
return <DatabasePostgresSelectionRender log={log} />
case 'fn_edge':
return <FunctionInvocationSelectionRender log={log} />
@@ -173,6 +173,9 @@ const LogTable = ({
case 'auth':
columns = AuthColumnRenderer
break
case 'pg_cron':
columns = DatabasePostgresColumnRender
break
default:
if (firstRow && isDefaultLogPreviewFormat(firstRow)) {
@@ -363,6 +363,7 @@ export enum LogsTableName {
POSTGREST = 'postgrest_logs',
SUPAVISOR = 'supavisor_logs',
WAREHOUSE = 'warehouse_logs',
PG_CRON = 'pg_cron',
}
export const LOGS_TABLES = {
@@ -376,6 +377,7 @@ export const LOGS_TABLES = {
postgrest: LogsTableName.POSTGREST,
supavisor: LogsTableName.SUPAVISOR,
warehouse: LogsTableName.WAREHOUSE,
pg_cron: LogsTableName.POSTGRES,
}
export const LOGS_SOURCE_DESCRIPTION = {
@@ -389,6 +391,7 @@ export const LOGS_SOURCE_DESCRIPTION = {
[LogsTableName.POSTGREST]: 'RESTful API web server logs',
[LogsTableName.SUPAVISOR]: 'Cloud-native Postgres connection pooler logs',
[LogsTableName.WAREHOUSE]: 'Logs obtained from a data warehouse collection',
[LogsTableName.PG_CRON]: 'Logs obtained from pg_cron',
}
export const genQueryParams = (params: { [k: string]: string }) => {
@@ -88,6 +88,7 @@ export type QueryType =
| 'supavisor'
| 'postgrest'
| 'warehouse'
| 'pg_cron'
export type Mode = 'simple' | 'custom'
@@ -211,6 +211,17 @@ limit ${limit}
${orderBy}
limit ${limit}
`
case 'pg_cron':
return `select identifier, postgres_logs.timestamp, id, event_message, parsed.error_severity
from postgres_logs
cross join unnest(metadata) as m
cross join unnest(m.parsed) as parsed
where parsed.application_name = 'pg_cron'
${where}
${orderBy}
limit ${limit}
`
}
}
@@ -164,6 +164,12 @@ export function LogsSidebarMenuV2() {
url: `/project/${ref}/logs/edge-functions-logs`,
items: [],
},
{
name: 'Cron Jobs',
key: 'pg_cron',
url: `/project/${ref}/logs/pgcron-logs`,
items: [],
},
]
const filteredLogs = BASE_COLLECTIONS.filter((collection) => {
@@ -0,0 +1,24 @@
import { useRouter } from 'next/router'
import { LogsTableName } from 'components/interfaces/Settings/Logs/Logs.constants'
import LogsPreviewer from 'components/interfaces/Settings/Logs/LogsPreviewer'
import LogsLayout from 'components/layouts/LogsLayout/LogsLayout'
import type { NextPageWithLayout } from 'types'
export const LogPage: NextPageWithLayout = () => {
const router = useRouter()
const { ref } = router.query
return (
<LogsPreviewer
condensedLayout
queryType="pg_cron"
projectRef={ref as string}
tableName={LogsTableName.PG_CRON}
/>
)
}
LogPage.getLayout = (page) => <LogsLayout title="PgCron Logs">{page}</LogsLayout>
export default LogPage