Operations
Usa questa pagina per consultare gli endpoint di salute e le metriche Prometheus dei processi lunghi.
Health, readiness e metriche
afe serve --ops-port N e afe worker --ops-port N servono tre endpoint su una porta dedicata,
separata dall'API. Non contengono nulla di segreto e non chiedono un token; ascoltano su
127.0.0.1 a meno che --ops-host non dica altro.
| Endpoint | 200 quando | 503 quando |
|---|---|---|
/livez | serve: risponde. Un worker: il suo ciclo di claim ha girato negli ultimi secondi, oppure sta facendo drain | il ciclo di claim è bloccato |
/readyz | store e broker rispondono a un ping entro 2 s | una dipendenza non risponde, nominata una per riga; un worker dopo SIGTERM (draining) |
/metrics | sempre: il formato di testo Prometheus | — |
La liveness non chiama mai store o broker, così un'interruzione rende i processi non pronti, senza farli riavviare. Ogni processo conta ciò che registra lui, così la somma dei processi conta ogni fatto una volta sola:
| Metrica | Label |
|---|---|
afe_tickets_started_total (dove il ticket viene aperto: serve) | flow |
afe_tickets_finished_total (dove finisce: un worker) | flow, state |
afe_nodes_total, afe_node_duration_seconds (istogramma), nodi agent e script | flow, type |
afe_model_tokens_total | flow, model, direction (in, out) |
afe_model_cost_usd_total | flow, model |
afe_tool_calls_total | flow |
afe_pauses_total | flow, kind |
afe_queue_waiting, afe_queue_claimed, afe_workers_live (solo serve) | — |
Nessuna label contiene un id di ticket, un valore di input o un segreto.
Ogni processo di lunga durata serve /livez, /readyz e /metrics su una porta operativa
dedicata, separata dalla porta dell'API.
| Processo | /livez | /readyz |
|---|---|---|
serve | l'event loop risponde | store e broker raggiungibili, revisione corrente caricata |
worker | il ciclo di claim ha girato negli ultimi secondi | store e broker raggiungibili; non in drain |
| operator (V7c) | il ciclo di reconcile è vivo | ha il lease da leader |
| UI (V7) | il processo risponde | serve raggiungibile |
- La liveness non dipende mai da Postgres o Redis: un'interruzione del database non deve riavviare tutti i Pod.
- Le metriche sono in formato Prometheus, calcolate dagli eventi del motore e dalle metriche della
coda: ticket per flow e stato, profondità della coda, durata dei nodi, token e costo dei modelli.
Non contengono segreti né id di ticket. Con il Prometheus operator, l'operator di afe aggiunge un
ServiceMonitor. - Le trace vanno a Langfuse o a un qualsiasi collector OpenTelemetry via OTLP.