Three dashboards served by one FastAPI app with a SQLite history store
(raw / 1m / 1h) and hand-written SVG charts: no Prometheus, no Grafana,
no CDN, no build step. Nothing is fetched from the internet at runtime.
* system: a stdlib-only agent (agent/host_agent.py) reports /proc and
/sys counters; the dashboard turns them into rates over a labelled
window, so every number says how it was measured.
* llm: gufo/llama.cpp and vLLM /metrics are parsed by an in-house
exposition parser. Measured delta/elapsed throughput beats a native
per-request gauge, and each value carries its provenance.
* ups: a NUT wire-protocol client plus health checks that name what
they looked at. Commands are gated by NUT_ALLOW_ACTIONS,
DASH_READ_ONLY and a DANGER confirmation, re-checked server-side.
Missing values render as n/a rather than 0, and an unconfigured source
answers 404 {"configured": false} without dialling anything, so "not
deployed here" never looks like an outage.
253 tests at 94% coverage against captured real fixtures; ruff and
pyright clean.
LLM-Generated: true
37 lines
703 B
Plaintext
37 lines
703 B
Plaintext
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
.venv/
|
|
.pytest_cache/
|
|
.ruff_cache/
|
|
.coverage
|
|
coverage.xml
|
|
htmlcov/
|
|
*.egg-info/
|
|
|
|
# Local state: the SQLite history DB and anything else runtime-written
|
|
data/
|
|
*.sqlite3
|
|
*.sqlite3-wal
|
|
*.sqlite3-shm
|
|
|
|
# Secrets / local config — never commit. The `.example` files are documentation, so they
|
|
# are un-ignored explicitly: `.env.*` would otherwise swallow them and a fresh clone would
|
|
# have no annotated list of what to set.
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
!.env.dev.example
|
|
|
|
# Agent binaries staged for deployment
|
|
agent/*.tar.gz
|
|
|
|
# Editor / OS
|
|
.vscode/
|
|
.idea/
|
|
.DS_Store
|
|
|
|
# Agent/pipeline scratch (the .agents/ roadmap itself IS tracked)
|
|
.agents/phase-sessions/
|
|
.agents/pipeline.log
|