Flightdeck runs your databases. Your engineers set the rules.
An autonomous DBA on every Postgres you operate. It diagnoses incidents to root
cause, fixes them under your guardrails, and never ships anything a human can't reverse.
It doesn't pattern-match to the first answer. It holds the rival causes and scores each against the evidence.
stale statistics
correlated columns
storage throttling
a missing index
05 · Discriminate
One probe separates the look-alikes
Correlated columns and stale statistics look identical — until you check the one thing that tells them apart.
n_distinct(region, warehouse) vs independent estimate → 40× gapstatistics are fresh → not stale stats
06 · Verdict
The real cause — with its reasoning
Named, not guessed: missing extended statistics on correlated columns. Fresh stats rules out ANALYZE; the gap is estimation, not access, so an index won't help.
missing_extended_statistics · strong
07 · Governed fix
Fixed under your guardrails — and verified
CREATE STATISTICS + ANALYZE, applied reversibly after approval. Flightdeck confirms the fault cleared, and rolls back on its own if it hadn't.
executeverify ✓rollback-ready✓ resolved · 4 min
How it works
Point Flightdeck at the Postgres you already run.
Connect a read-only replica in minutes. Add the primary, your RDS metadata, or the
pooler when you're ready. Flightdeck reads across six signal planes — the ones a single database
connection can never see on its own.
It works an incident the way your best DBA would — see, reason, act, learn —
and it does it on every database at the same time.
01 · Diagnoses the why
Names the real cause
Monitoring shows what changed. Flightdeck holds every plausible cause at once,
gathers the evidence for each, and names the real one — with the reasoning, and how sure it is.
02 · Fixes it, governed
Execute → verify → rollback
It pre-checks the fix will actually help, applies it reversibly, confirms the fault
cleared, and rolls back on its own if it didn't. Two-person approval; nothing irreversible without a human.
03 · Sweeps continuously
Catches it before it pages you
It re-runs the full check suite on every database on a schedule, so a new unindexed foreign
key or an unvalidated constraint is caught the day it appears — not the night it breaks.
04 · Learns your fleet
Becomes your best DBA
Every incident your team confirms sharpens it. It tracks its own precision per finding
and remembers how your systems fail — judgment no off-the-shelf model can hold.
The hard case
One 40× latency spike. Three ways to chase it.
A checkout query that ran in 20 ms for months now takes 800 ms — 40× slower.
Nothing deployed; the statistics look fresh. Here is that incident, worked three ways. Scroll.
DBA, solo5h 10m
00:00
Paged. p99 up, CPU up, nothing deployed.
00:15
Pulls the slow query from pg_stat_statements.
00:35
EXPLAIN ANALYZE: a nested loop where a hash join belonged — the row estimate is 40× low.
01:10
"Bad estimate, must be stale stats." Runs ANALYZE. No change.dead end
01:50
Adds a composite index. The planner still nested-loops.dead end
02:40
Forces a hash join with session settings. Fragile, not a fix.
03:30
Reads the planner docs — starts to suspect column correlation.
04:20
Tests n_distinct on the column pair. Confirms the dependency.
05:10
CREATE STATISTICS + ANALYZE. p99 back to 20 ms. Resolved.
DBA + LLM copilot3h 05m
00:00
Paged. Pastes the query and EXPLAIN into the LLM.
00:10
LLM, 95% confident: "Stale statistics — run ANALYZE." Runs it. No help.confidently wrong
00:40
LLM: "Then it's a missing index." Builds it. Marginal.dead end
01:30
LLM suggests raising work_mem and rewriting the query. Partial.
02:10
DBA pushes back; the LLM finally lists extended statistics as one option among many.
03:05
CREATE STATISTICS + ANALYZE. Resolved — after an hour chasing the LLM's first answer.
Flightdeck4 min
00:00
Signal fires: p99 6σ over baseline. Case opens automatically.
00:30
Samples n_distinct(region, warehouse) against the planner's independent estimate — a 40× gap. The statistics are fresh.
01:30
Diagnoses missing extended statistics. Rules out stale stats (fresh) and a missing index (this is estimation, not access).
03:00
Proposes CREATE STATISTICS (dependencies) + ANALYZE. Pre-check confirms the plan flips. A human approves; applied reversibly and verified.
✓ Resolved · 4 min · rollback-ready
The same fix the others reached — without the wasted ANALYZE or the needless index.
Back to watching your fleet — nothing else outside baseline.
Every lane lands on the same fix: CREATE STATISTICS + ANALYZE. The hard
part was never applying it — it was telling correlated-column misestimation apart from stale stats,
a missing index, or a bad query. Flightdeck ruled those out in the first 90 seconds.
The platform underneath
Depth you can audit — not a chatbot with SQL.
Whether Flightdeck runs autonomously or waits for your approval, the same
platform powers it: reasoning, measurable coverage, governed actions, and a determinism floor.
THE BRAIN
Competing hypotheses, not thresholds
It reasons over rival causes with a discriminating probe for each — the difference between
"latency is up" and "the planner is underestimating correlated columns 40×, here's the fix."
COVERAGE
It reports its own completeness
A taxonomy of Postgres failure classes × the signal planes. Per cluster it tells you what it
can catch — and every blind spot as a tracked next step. "0 issues left behind" is a number.
GOVERNED ACTIONS
Autonomy you earn, tier by tier
A trust ramp from observation → advisory → autonomous, per risk tier. Provider-aware for RDS,
Aurora, and Cloud SQL. Every step chains into a tamper-evident audit log.
DETERMINISM FLOOR
The model reasons; code decides
Approval, guardrails, and reversibility are enforced in code, independent of the LLM.
A reversible-or-harmless-only rule means a destructive change is never auto-applied.
FLEET MEMORY
Judgment that accumulates
Learned priors and per-finding precision build into judgment about your fleet. A chatbot
answers the same forever; Flightdeck gets sharper because it remembers.
SAFE BY DESIGN
Read-only until you say otherwise
It starts on a read replica and only observes. Actions unlock on your schedule, scoped to what
each managed provider actually permits — never more access than the job needs.
The math
A human diagnoses one database. Flightdeck diagnoses your whole fleet.
Flightdeck automates roughly 90% of the diagnosis, across every database at once.
Adjust the inputs to match your environment.
Hours to diagnose one incident
Your numbers
$—
reclaimed every year — even vs a human + LLM copilot
≈ $— vs diagnosing by hand · Flightdeck automates ~90% of the diagnosis
Human alone6h
+ LLM copilot3h
Flightdeck0.6h
—engineer-hours back / year
—incidents triaged / year
—value if reinvested
Live now
Flightdeck is operating a production database as you read this.
These are its live numbers. Refresh the page and watch them move.
0
false alarms
212 healthy ticks · 4h under load
9/9
diagnoses correct
from machine signals, no human prompt
137
failure differentials
each with a discriminating probe
<1s
time-to-detect
median, under production load
the running system, updated continuously
See it operate a live database.
Flightdeck is diagnosing real incidents under production load right now. Sign in and watch.