Files
minerops/scripts/run-status-retention-dryrun.sh

75 lines
2.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
LOG_DIR="/opt/minerops/logs"
mkdir -p "$LOG_DIR"
echo "============================================================"
echo "MinerOps status retention dry-run"
echo "Started: $(date -Is)"
echo
echo "Building hourly rollups..."
docker exec -i minerops-postgres psql -U minerops -d minerops < /opt/minerops/sql/minerops-retention-hourly.sql
echo
echo "Building daily rollups..."
docker exec -i minerops-postgres psql -U minerops -d minerops < /opt/minerops/sql/minerops-retention-daily.sql
cat > /tmp/minerops-retention-log-dryrun.sql <<'SQL'
INSERT INTO minerops_retention_runs (
mode,
raw_status_retention_days,
hourly_rollup_rows_before,
hourly_rollup_rows_after,
daily_rollup_rows_before,
daily_rollup_rows_after,
raw_status_rows_before,
raw_status_rows_after,
raw_status_rows_eligible_delete,
raw_status_rows_deleted,
started_at,
finished_at,
notes
)
SELECT
'dry-run',
30,
(SELECT COUNT(*) FROM miner_status_hourly_rollups),
(SELECT COUNT(*) FROM miner_status_hourly_rollups),
(SELECT COUNT(*) FROM miner_status_daily_rollups),
(SELECT COUNT(*) FROM miner_status_daily_rollups),
(SELECT COUNT(*) FROM miner_status_snapshots),
(SELECT COUNT(*) FROM miner_status_snapshots),
(SELECT COUNT(*) FROM miner_status_snapshots WHERE observed_at < now() - interval '30 days'),
0,
now(),
now(),
'Scheduled dry run: built or updated hourly and daily status rollups. No raw snapshots deleted.';
SELECT
mode,
raw_status_retention_days,
raw_status_rows_before,
raw_status_rows_eligible_delete,
raw_status_rows_deleted,
raw_status_rows_after,
hourly_rollup_rows_after,
daily_rollup_rows_after,
started_at,
finished_at,
notes
FROM minerops_retention_runs
ORDER BY started_at DESC
LIMIT 1;
SQL
echo
echo "Logging dry-run retention pass..."
docker exec -i minerops-postgres psql -U minerops -d minerops < /tmp/minerops-retention-log-dryrun.sql
echo
echo "Finished: $(date -Is)"