Observability: Prometheus metrics, log panel, runbook

- GET /api/metrics renders Prometheus text (equity, P&L, per-strategy
  equity/pnl/allocation/halted, info) with no client library.
- In-memory ring log handler (app/logs.py) exposed at GET /api/logs and a
  dashboard "Server logs" panel; Runtime mirrors bot events into the logger.
- docs/runbook.md covers deploys, the kill switch, resetting paper state and
  going live. Adds tests for metrics rendering and the log ring.
This commit is contained in:
matitos committed 2026-09-22 17:10:38 +00:00
1 parent c605a0f316
commit ac92dd5ac4
12 files changed
+462 -1

No files matched your search

+12
View File
@@ -220,6 +220,8 @@ Bundled strategies: `sma_cross`, `ema_cross`, `macd_trend`,
| `POST` | `/api/bot/start-many` | Start several strategies with per-strategy allocations |
| `GET` | `/api/bot/status` | Per-strategy status for a multi-strategy run |
| `GET` | `/api/live-check` | Go-live preflight (blockers for live trading) |
| `GET` | `/api/metrics` | Prometheus text exposition |
| `GET` | `/api/logs` | Recent backend log lines (in-memory ring) |
| `POST` | `/api/bot/stop` | Stop the bot |
| `POST` | `/api/bot/kill` | Kill switch: flatten + halt |
| `POST` | `/api/backtest` | Backtest a strategy on historical candles |
@@ -234,6 +236,16 @@ Bundled strategies: `sma_cross`, `ema_cross`, `macd_trend`,
| `DELETE` | `/api/presets/{id}` | Delete a preset |
| `WS` | `/api/ws` | Live status + event stream |
## Observability
- `GET /api/metrics` exposes Prometheus metrics (`crypto_equity`,
`crypto_total_pnl`, per-strategy `crypto_strategy_equity`/`_pnl`/`_allocation`/
`_halted`, `crypto_info`). Point the existing Prometheus scrape at it.
- The dashboard's **Server logs** panel shows recent backend log lines
(in-memory ring buffer), useful alongside **Activity**.
- See [docs/runbook.md](docs/runbook.md) for operations (deploys, kill switch,
resetting paper state, going live).
## Tests & lint
```bash