P0 Critical:
- Implement PostgreSQL native restore with COPY FROM support
- Implement MySQL native restore with DELIMITER handling
P1 High Priority:
- Fix deprecated strings.Title usage in mysql.go
- Fix unused variable in man.go
- Simplify TrimSuffix patterns in schedule.go
- Remove unused functions and commands
Dashboard:
- Add PITR section with 6 new panels
- Integrate PITR and dedup metrics into exporter
All checks pass: go build, staticcheck, go test -race
- Add backup_type label (full/incremental/pitr_base) to core metrics
- Add new dbbackup_backup_by_type metric for backup type distribution
- Add complete PITR metrics: pitr_enabled, pitr_archive_lag_seconds,
pitr_chain_valid, pitr_gap_count, pitr_recovery_window_minutes
- Add PITR-specific alerting rules for archive lag and chain integrity
- Update METRICS.md and EXPORTER.md documentation
- Bump version to 4.1.0
BREAKING CHANGE: The --instance flag is renamed to --server to avoid
collision with Prometheus's reserved 'instance' label.
Migration:
- Update cronjobs: --instance → --server
- Update Grafana dashboard (included) or use new JSON
- Metrics now output server= instead of instance=
- Fix Last Backup Status panel to use bool modifier for proper 1/0 values
- Change RPO threshold from 24h to 7 days (604800s) for status check
- Clean up table transformations to exclude duplicate fields
- Update variable refresh to trigger on time range change
- Changed status query from dbbackup_backup_verified to RPO-based check
- dbbackup_rpo_seconds < 86400 returns SUCCESS when backup < 24h old
- Fixes false FAILED status when verify operations not run
- Includes: status, RPO, backup size, duration, and overview table panels