55 lines
1.9 KiB
YAML
55 lines
1.9 KiB
YAML
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-infisical
|
|
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
|