From cefb527be701cef1764df99ee4aee2a69043b34e Mon Sep 17 00:00:00 2001 From: Jordi Enric <37541088+jordienr@users.noreply.github.com> Date: Fri, 7 Feb 2025 18:47:00 +0100 Subject: [PATCH] pg cron logs: fix chart query and add error condition (#32995) --- .../components/interfaces/Settings/Logs/Logs.utils.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/apps/studio/components/interfaces/Settings/Logs/Logs.utils.ts b/apps/studio/components/interfaces/Settings/Logs/Logs.utils.ts index 82536a58575..c733e38a0e9 100644 --- a/apps/studio/components/interfaces/Settings/Logs/Logs.utils.ts +++ b/apps/studio/components/interfaces/Settings/Logs/Logs.utils.ts @@ -320,10 +320,17 @@ export const genChartQuery = ( filters: Filters ) => { const [startOffset, trunc] = calcChartStart(params) - const where = genWhereStatement(table, filters) + let where = genWhereStatement(table, filters) const errorCondition = getErrorCondition(table) const warningCondition = getWarningCondition(table) + // pg_cron logs are a subset of postgres logs + // to calculate the chart, we need to query postgres logs + if (table === LogsTableName.PG_CRON) { + table = LogsTableName.POSTGRES + where = `where (parsed.application_name = 'pg_cron' OR event_message LIKE '%cron job%')` + } + let joins = genCrossJoinUnnests(table) const q = ` @@ -597,6 +604,8 @@ function getErrorCondition(table: LogsTableName): string { return 'response.status_code >= 500' case 'function_logs': return "metadata.level IN ('error', 'fatal')" + case 'pg_cron_logs': + return "parsed.error_severity IN ('ERROR', 'FATAL', 'PANIC')" default: return 'false' }