🐟 Bonito OSS
Deep database observability — a free DBmarlin. Captures slow queries, locks, wait events, and table stats from PostgreSQL (MySQL/Oracle/SQL Server planned), and exposes them for AI agents, MCP servers, and SOC/support teams.
Status: v0.1.0 (Phase 0 — PostgreSQL MVP) · Apache 2.0
Why
Prometheus exporters give you Level 1 metrics (connections, txn/s, replication lag) — the numbers, not the why. Commercial tools like DBmarlin ($45/db/mo) give Level 3: query text, execution plans, lock/blocking trees, wait events. No open-source tool covers this well.
Bonito connects read-only to your database, reads the system views the engine already exposes for free (pg_stat_statements, pg_stat_activity, pg_locks, pg_stat_user_tables), and emits deep observability data.
Ecosystem
🐟 Bonito (deep DB observability) ──feeds──▶ 🚣 Remo (AI incident triage)
"query X has a seq scan on 10M rows" "here's the fix: CREATE INDEX..."
Components (Phase 0)
| Component | What | Status |
|---|---|---|
| bonito-collector | Read-only PostgreSQL collector | ✅ Done (BON-001) |
| bonito-store | SQLite event store + POST /events |
🟡 Done, pending merge (BON-002) |
| bonito-api | FastAPI query layer | 🔴 BON-003 |
| bonito-mcp | MCP server for AI agents | 🔴 BON-004 |
Setup
uv venv --python 3.12 .venv
source .venv/bin/activate
uv pip install -e ".[dev]"
Docs & Examples (v0.1.0)
- Docs:
docs/quickstart.md(full pipeline) ·docs/configuration.md·docs/metrics-and-events.md·docs/store.md - Examples:
examples/docker-compose.yml(PG + store + collector stack) ·examples/readonly-role.sql(read-only role) ·examples/bonito.env.example(collector env) ·examples/store.env.example(store env) ·examples/events.sample.json(JSON event payload) ·examples/store-push.sh(push sample → baselines)
Fastest path — full pipeline in one command:
uv pip install -e ".[dev]" -e bonito-store
docker compose -f examples/docker-compose.yml up -d
docker exec -i bonito-db psql -U postgres -d app < examples/readonly-role.sql
set -a; source examples/bonito.env.example; set +a
bonito-collector --once
curl localhost:8000/baselines
Security (golden rule)
- Connection is READ-ONLY (a DB user with only
SELECTon stat views) - Never build SQL from client input — only fixed queries over system views
- Never writes to the client database
Built by Carlos Cortez — AWS Community Hero. Part of the SOFE / Remo / Bonito observability ecosystem.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bonito_collector-0.1.1.tar.gz.
File metadata
- Download URL: bonito_collector-0.1.1.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
70c2a543942691c48c7e6fb54bd03dec6a81398fb664ad4a906eaa561a4e3c00
|
|
| MD5 |
75074bf90ce6098ff277fc019f0ca8d1
|
|
| BLAKE2b-256 |
49d9bbc1ef28bacd1035ea3e385e375a169247ec24155f24e2329ab1f069d154
|
File details
Details for the file bonito_collector-0.1.1-py3-none-any.whl.
File metadata
- Download URL: bonito_collector-0.1.1-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.8.17
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
df7576866aaba2154c9453421361d91999e3d10c94ee58e289bc2cf95e54110d
|
|
| MD5 |
d64deddfe238a5697317ca34696e35a4
|
|
| BLAKE2b-256 |
b9b12fb4ae9f688e2221c5e5b587aa8f7e46a32574571a0ad829159f70f96368
|