DRIFTBaselines and drift flags
Hourly measurements per statement, compared with a 14-day median for the same hour of day. Regressions, new heavy statements, execution spikes, plan changes (with pg_stat_monitor) and database-wide drift, each NEW, ONGOING or RESOLVED.
monitor.py · exit 4 = alert
ASKQuestions in plain English
“Load over the last 3 days”, “WAL since yesterday”, “what flags fired this week?”, or a statement id. Ask from any page. Built-in rules or your approved model read the question, a badge says which, and the chart and caption always come from the data.
shareable answer links
DIAGNOSEWhy one statement is slow
Missing indexes found in the plan, temp spills, disk-bound reads, rows examined per row returned, N+1 query patterns, planning and JIT overhead, and unstable run times.
Analyze button · analyze_statement
FIXFix scripts a DBA can test
CREATE INDEX CONCURRENTLY, ALTER TABLE … ALGORITHM=INPLACE, LOCK=NONE, WITH (ONLINE = ON), forcing a good plan back with Query Store, per-role settings, invisible indexes before drops. Every line commented out, every step with its undo. Never runs by itself.
fix_<id>.sql
REVIEWSettings and maintenance
Cache hit ratio, dead rows and vacuum, never-analyzed tables, unused indexes, forced checkpoints, buffer pool misses, redo capacity, connection headroom, checked against this database’s own numbers.
database_fix.sql
SETUPTells you what to turn on
The connection test lists every statistic ReinDB reads as OK, missing or optional, with the exact command, my.cnf line or parameter-group setting to enable it. A grants script for each engine.
grants_postgres · mysql · sqlserver · oracle.sql
MANAGEDFixes for RDS and Aurora
On a managed database a fix never says ALTER SYSTEM. It names the parameter group setting to change, with the console steps, the aws rds command and whether it needs a reboot. Settings Aurora manages itself are marked as such.
parameter groups · aws rds
LIVE NOWWhat is happening right now
One click reads the database this moment: running and idle-in-transaction sessions, who blocks whom, what sessions wait on and replica lag. Cheap read-only queries with a 5-second limit; owners only on real databases.
Live now · live_now
LOCKSBlocking and deadlocks
Who waited on whose lock, on which table, for how long, and the session holding it. Each deadlock with its tables, both statements and the one that was rolled back, from the PostgreSQL log, InnoDB status, SQL Server’s system_health session or Oracle’s trace files.
blocking · deadlocks
HEALTHReplicas, transactions, waits, space
Replica lag and replication slots holding WAL, transactions left open or idle, wait events against their usual for the hour, and when the disk fills at the current growth.
replication · long_running · storage
BASELINESAny period against any baseline
Today against yesterday or a week ago, this week against last, in one click. Or any range from 6 hours to 30 days against the usual for those hours, or a saved baseline like “before release 4.2”, statement by statement. Copy a link to share the exact view.
Baselines page
REPORTSReports of your own
Workload, Top SQL, waits, I/O, capacity and stored code as standard reports, or mix them into your own (a morning check, a release check) with its range and baseline, saved for the team. Suggestions start you off, the ones that fit this week’s findings first.
Reports · My reports
EVENTSDeploys on every chart
Mark deploys, maintenance and config changes on the page, or from your deploy script or CI job with one curl. Each shows on every chart, so a change in the numbers sits next to its likely cause.
/api/events/push
WEEKLYA Monday report by email
Each database’s week against the week before: load, slowest statements, waits, blocking, flags and the week’s events, with the full report attached as a page that prints to PDF.
weekly report email
AGENTSTools for your AI platform
Eighteen read-only tools over MCP or REST with an OpenAPI description, input validation, literal redaction and an audit log of every call.
mcp_server.py