From 875665de6607844d20f2ae529c065fa119c7835b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ullrich=20Sch=C3=A4fer?= Date: Mon, 20 Apr 2026 16:49:43 +0200 Subject: [PATCH] Update pgboss column names for v12 (snake_case) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit pg-boss v11 renamed every concatenated-lowercase timestamp column (`createdon`, `completedon`) to snake_case (`created_on`, `completed_on`). Our service-health dashboard and failed-job alert still referenced the v10 names, so after the v12 upgrade those queries error out silently. Fix the three affected queries: - alerts.yml: failed-job alert - service-health.json: "Recent Failed Jobs" table - service-health.json: "Job Queue — Completed/hour" time series The `state` / `name` / `output` columns stay the same, and the `state` enum still accepts `'failed'` / `'completed'` literals. Co-Authored-By: Claude Opus 4.7 (1M context) --- infrastructure/grafana/dashboards/service-health.json | 4 ++-- infrastructure/grafana/provisioning/alerting/alerts.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/infrastructure/grafana/dashboards/service-health.json b/infrastructure/grafana/dashboards/service-health.json index c5df940..8461f75 100644 --- a/infrastructure/grafana/dashboards/service-health.json +++ b/infrastructure/grafana/dashboards/service-health.json @@ -517,7 +517,7 @@ "type": "postgres", "uid": "postgres" }, - "rawSql": "SELECT name, state, createdon, completedon, output::text AS error FROM pgboss.job WHERE state = 'failed' AND completedon > now() - interval '24 hours' ORDER BY completedon DESC LIMIT 20", + "rawSql": "SELECT name, state, created_on, completed_on, output::text AS error FROM pgboss.job WHERE state = 'failed' AND completed_on > now() - interval '24 hours' ORDER BY completed_on DESC LIMIT 20", "format": "table" } ] @@ -538,7 +538,7 @@ "type": "postgres", "uid": "postgres" }, - "rawSql": "SELECT date_trunc('hour', completedon) AS time, name, count(*) AS completed FROM pgboss.job WHERE state = 'completed' AND completedon > now() - interval '24 hours' GROUP BY 1, 2 ORDER BY 1", + "rawSql": "SELECT date_trunc('hour', completed_on) AS time, name, count(*) AS completed FROM pgboss.job WHERE state = 'completed' AND completed_on > now() - interval '24 hours' GROUP BY 1, 2 ORDER BY 1", "format": "time_series" } ] diff --git a/infrastructure/grafana/provisioning/alerting/alerts.yml b/infrastructure/grafana/provisioning/alerting/alerts.yml index 1724562..2cc7c9a 100644 --- a/infrastructure/grafana/provisioning/alerting/alerts.yml +++ b/infrastructure/grafana/provisioning/alerting/alerts.yml @@ -161,7 +161,7 @@ groups: relativeTimeRange: { from: 3600, to: 0 } datasourceUid: postgres model: - rawSql: "SELECT count(*) AS failed FROM pgboss.job WHERE state = 'failed' AND completedon > now() - interval '1 hour'" + rawSql: "SELECT count(*) AS failed FROM pgboss.job WHERE state = 'failed' AND completed_on > now() - interval '1 hour'" format: table - refId: B datasourceUid: __expr__