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)

Reply via email to