1
0
forked from wrenn/wrenn

Push GetSandboxMetricPoints time filter into SQL

The query was fetching all rows for a (sandbox_id, tier) pair and
filtering by timestamp in Go. For repeatedly-paused sandboxes the
24h tier can accumulate up to 30 days of data, causing up to 120x
over-fetching for a 6h range request.

Add AND ts >= $3 to the query so Postgres filters on the primary key
(sandbox_id, tier, ts) directly. Drop the redundant Go-side loop.
This commit is contained in:
2026-03-25 21:53:19 +06:00
parent 6eacf0f735
commit 27ff828e60
3 changed files with 12 additions and 13 deletions

View File

@ -35,7 +35,7 @@ ON CONFLICT (sandbox_id, tier, ts) DO NOTHING;
-- name: GetSandboxMetricPoints :many
SELECT ts, cpu_pct, mem_bytes, disk_bytes
FROM sandbox_metric_points
WHERE sandbox_id = $1 AND tier = $2
WHERE sandbox_id = $1 AND tier = $2 AND ts >= $3
ORDER BY ts ASC;
-- name: DeleteSandboxMetricPoints :exec