Dasha is an open source performance dashboard for PostgreSQL fleets. It
connects to your clusters
with a read-only role, shows what the databases are doing right now, and
explains what to do about
it. Nothing is installed on the database hosts: no agent, no extension beyond
the ones you already
have.
One instance serves many clusters and all of their replicas. Because most
PostgreSQL statistics are
per-instance and are *not* replicated, Dasha reads every host of a cluster and
reasons over the
combined picture — an index that looks unused on the primary may be serving the
entire read
workload on a standby.
---
## Features
* **Health Score** — a composite 0-100 score per instance across eight
categories, with
prioritized recommendations and per-database drill-down. Optionally
computed from
Prometheus/VictoriaMetrics time series instead of point-in-time SQL, with a
trend and seasonal
baseline.
* **Query analysis** — top queries by execution time and WAL, running and
blocked queries, and
`pg_stat_statements` snapshots that can be saved to a storage database,
shared by URL, and
diffed against another snapshot or against live data.
* **Automatic snapshots** — a separate daemon captures query and
lock-contention snapshots on
activity spikes or primary/replica role changes, so the evidence exists the
next morning, when
someone asks what happened at 03:00.
* **Index analysis** — bloat, duplicates, invalid indexes, B-tree on arrays,
plus a *may I drop
this index?* verdict that accounts for statistics resets, per-host counters
and partitioned
indexes, instead of trusting `idx_scan = 0`.
* **Tables and maintenance** — size with TOAST breakdown, per-table describe,
autovacuum and
wraparound thresholds computed with PostgreSQL's own formula, vacuum
progress, and hot
tables/indexes derived from scheduled delta snapshots.
* **Locks, waits, connections** — lock trees, wait events grouped by type,
connection states and
sources, active session details.
* **Access control** — three auth modes (open, static API keys, or OIDC with
encrypted session
cookies), Casbin RBAC, personal access tokens and per-identity rate
limiting.
* **MCP connector** — a read-only [MCP](https://modelcontextprotocol.io)
server that exposes the
fleet diagnostics to AI assistants: 26 tools, 5 prompts, per-user token
passthrough, and an
embedded knowledge base of the scoring rules.
The interface is available in English, Russian and German.
## Requirements
* **PostgreSQL 14 or newer** (tested on 14-18) for the monitored clusters,
reachable with a role
holding `pg_monitor` and `CONNECT`.
* `pg_stat_statements` for query statistics; `pgstattuple` is optional.
* A separate PostgreSQL database if you want snapshots, hot-object history
and personal access
tokens — everything else works without it.
## Documentation
* [README](https://github.com/dbulashev/dasha/blob/main/README.md) —
configuration, deployment, Helm values.
* [Health Score scoring
model](https://github.com/dbulashev/dasha/blob/main/README-health-score.md)
* [Changelog](https://github.com/dbulashev/dasha/blob/main/CHANGELOG.md)
## License
Dasha is licensed under the **GNU General Public License v3.0**; see
[LICENSE](https://github.com/dbulashev/dasha/blob/main/LICENSE).
Project page: [github.com/dbulashev/dasha](https://github.com/dbulashev/dasha)