pg.ddx.io  pgsql-announce@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Dasha via PostgreSQL Announce <announce-noreply@postgresql.org>
To: PostgreSQL Announce <pgsql-announce@lists.postgresql.org>
Subject: Dasha - performance dashboard
Date: Wed, 12 Aug 2026 07:31:12 +0000
Message-ID: <178651987263.1222.1114848160838159264@wrigleys.postgresql.org> (raw)

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)

Message-ID: <178651987263.1222.1114848160838159264@wrigleys.postgresql.org>
Permalink:  ../178651987263.1222.1114848160838159264@wrigleys.postgresql.org/
Also on:    postgresql.org/message-id/178651987263.1222.1114848160838159264@wrigleys.postgresql.org

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-announce@postgresql.org
  Cc: announce-noreply@postgresql.org, pgsql-announce@lists.postgresql.org
  Subject: Re: Dasha - performance dashboard
  In-Reply-To: <178651987263.1222.1114848160838159264@wrigleys.postgresql.org>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox