feat(polymarket-bot): daily retention CronJob for metrics_daily
The bot snapshots metrics every cycle (~1,300 rows/day, 74K rows in 57 days) but only the last snapshot of each past UTC day is ever read back. Prune past days to their daily close at 00:10 UTC; today's rows are kept intact for /api/summary. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
52e34275fd
commit
b578637112
@@ -0,0 +1,54 @@
|
||||
apiVersion: batch/v1
|
||||
kind: CronJob
|
||||
metadata:
|
||||
name: metrics-retention
|
||||
namespace: polymarket-bot
|
||||
spec:
|
||||
# Daily at 00:10 UTC: collapse every past UTC day in metrics_daily to its
|
||||
# last snapshot (the "daily close"). The bot writes one snapshot per cycle
|
||||
# (~1,300/day); only the close of past days is read back (DISTINCT ON in
|
||||
# get_metrics_history / get_daily_pnl_closes), so intraday rows of past
|
||||
# days are dead weight. Today's rows are never touched: the latest one
|
||||
# feeds /api/summary and the close is still evolving.
|
||||
schedule: "10 0 * * *"
|
||||
concurrencyPolicy: Forbid
|
||||
successfulJobsHistoryLimit: 3
|
||||
failedJobsHistoryLimit: 3
|
||||
jobTemplate:
|
||||
spec:
|
||||
backoffLimit: 2
|
||||
template:
|
||||
spec:
|
||||
restartPolicy: Never
|
||||
containers:
|
||||
- name: prune
|
||||
image: postgres:16-alpine
|
||||
env:
|
||||
- name: DATABASE_URL
|
||||
valueFrom:
|
||||
secretKeyRef:
|
||||
name: bot-secrets
|
||||
key: DATABASE_URL
|
||||
command:
|
||||
- /bin/sh
|
||||
- -c
|
||||
- |
|
||||
set -e
|
||||
psql "$DATABASE_URL" -v ON_ERROR_STOP=1 -c "
|
||||
DELETE FROM metrics_daily m
|
||||
USING (
|
||||
SELECT timestamp::date AS day, MAX(timestamp) AS keep_ts
|
||||
FROM metrics_daily
|
||||
WHERE timestamp::date < CURRENT_DATE
|
||||
GROUP BY 1
|
||||
) k
|
||||
WHERE m.timestamp::date = k.day
|
||||
AND m.timestamp < k.keep_ts;
|
||||
"
|
||||
psql "$DATABASE_URL" -c "VACUUM ANALYZE metrics_daily;"
|
||||
resources:
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 32Mi
|
||||
limits:
|
||||
memory: 128Mi
|
||||
Reference in New Issue
Block a user