Observability
Risoluto provides multiple observability surfaces: Prometheus metrics, real-time event streams, audit logs, request tracing, and structured logs.- Prometheus
- Dashboard
- API
Prometheus Metrics
Available atGET /metrics in Prometheus exposition format. Scrape at 10-15 second intervals.Metric reference
HTTP metrics
HTTP metrics
| Metric | Type | Labels | Description |
|---|---|---|---|
risoluto_http_requests_total | Counter | method, status | Total HTTP requests |
risoluto_http_request_duration_seconds | Histogram | method | Request latency distribution |
Orchestrator metrics
Orchestrator metrics
| Metric | Type | Labels | Description |
|---|---|---|---|
risoluto_orchestrator_polls_total | Counter | status | Poll cycles (success, error, skipped) |
Agent metrics
Agent metrics
| Metric | Type | Labels | Description |
|---|---|---|---|
risoluto_agent_runs_total | Counter | outcome | Agent completions (completed, failed, oom, stalled) |
Scrape configuration
Alert rules
Request Tracing
Every request gets anX-Request-ID header:
- Incoming: If the client sends
X-Request-ID, it is preserved - Generated: Otherwise a UUID v4 is assigned
- Response: The ID is always returned in the response headers
Error Tracking
Sentry-compatible error tracking whenSENTRY_DSN is set:
SENTRY_DSN is not set, a no-op tracker is used with zero overhead.
Process Logs
Logs are emitted to stdout via Pino in structured format:| Variable | Values | Default |
|---|---|---|
RISOLUTO_LOG_FORMAT | logfmt, json | logfmt |
LOG_LEVEL | trace through fatal | info |
Data Persistence
All attempt and event data is stored in SQLite (risoluto.db) with WAL mode:
Querying data
What’s Next
Monitoring Stack
Set up Prometheus and Grafana with pre-built queries and alerts.
Troubleshooting
Diagnose common failures and recovery procedures.
Notifications
Configure Slack notifications for agent lifecycle events.
Dashboard Guide
Board view, issue inspector, and live event stream.