← Indice documentazione Guida all'architettura › osservabilità

Metnos

Osservabilità operativa
Vedere lo stato del sistema senza confondere una vista con una fonte di autorità.

Metnos offre due strumenti distinti. La pagina Settings della chat è l'interfaccia amministrativa corrente, aggiornata a ogni richiesta. runtime/observability.py produce invece un file HTML statico per una diagnosi locale. Il file non alimenta Settings, non si aggiorna da solo e non è una pagina servita dalla chat.

Indice

  1. Un esempio in linguaggio naturale
  2. Le due superfici
  3. Settings nella chat
  4. Il rendiconto HTML statico
  5. Dati raccolti dal rendiconto
  6. Accesso, utenti e riservatezza
  7. Generazione e durata
  8. Verifiche e fonti canoniche

1. Un esempio in linguaggio naturale

Chiedi a Metnos con una richiesta come quella di questo esempio:

Mostrami dove posso controllare gli ultimi turni e lo stato dei servizi.

La risposta utile deve indicare anzitutto il percorso visibile nella chat: Settings > Attività > Turni per le richieste recenti e Settings > Sistema > Servizi per i servizi configurati. Se la domanda arriva da Telegram, il percorso va aperto nella chat web di Metnos: Telegram non incorpora le pagine amministrative.

Solo dopo questa istruzione pratica occorre spiegare API, registri o file. Il rendiconto statico è adatto a una diagnosi tecnica esplicitamente richiesta, non è il percorso ordinario per chi usa la chat.

2. Le due superfici

SuperficieAggiornamentoAccessoScopo
Settings (/admin)I dati vengono riletti quando si apre o si aggiorna la pagina.Richiede il ruolo amministratore applicato dal middleware HTTP.Consultazione e controlli amministrativi dell'installazione in esercizio.
Rendiconto statico (runtime.observability)Fotografia dell'istante in cui viene eseguito il comando.File locale; la protezione dipende dai permessi del file e della macchina.Diagnosi fuori linea di sei sorgenti storiche.

Le due superfici non vanno sommate in una descrizione unica. Settings usa rotte e modelli propri; il generatore statico è richiamato soltanto dalla sua CLI e non ha chiamanti nel server HTTP.

3. Settings nella chat

La pagina iniziale di Settings riassume versione e tempo di attività, turni delle ultime 24 ore, proposte, executor, scheduler, firme Safety e utenti. Le pagine di dettaglio separano le diverse domande operative:

Percorso nella chatInformazioni principali
Settings > Attività > TurniIdentificativo, orario, canale, attore, passi, esito, durata e richiesta.
Settings > Attività > SchedulerEsecuzioni delle attività, esito e durata.
Settings > Sistema > ServiziServizi presenti nel registro canonico, stato e controlli ammessi.
Settings > Sistema > ModelliConfigurazione effettiva e oscurata di LLM, embedding e VLM: LLM e VLM sono modificabili e ripristinabili; l’embedding è consultabile.
Settings > Sistema > DispositiviDispositivi associati, presenza e revoca.
Settings > Sistema > UtentiUtenti, ruoli, canali e preferenze amministrabili.

Il registro in runtime/ui_surfaces.py è la descrizione canonica delle pagine visibili e del loro percorso. Tutor usa lo stesso registro: una modifica strutturale della UI richiede l'aggiornamento del registro, della guida di navigazione e dell'indice di Tutor.

4. Il rendiconto HTML statico

render_dashboard(out_path) interroga le sorgenti locali e compone un unico documento con CSS incorporato, senza JavaScript e senza WebSocket. Le sezioni appaiono in questo ordine: test, Mnestoma, associazioni, turni recenti, decisioni del Vaglio e scheduler.

Ogni raccoglitore gestisce separatamente una sorgente non disponibile. La pagina può quindi essere prodotta anche quando una sezione è vuota o in errore. Questo comportamento rende leggibile una fotografia parziale, ma non trasforma l'assenza di dati in prova del buon funzionamento del componente.

Il documento generato usa attualmente etichette italiane e lang="it". Non è una superficie localizzata della chat e non va presentato come tale.

5. Dati raccolti dal rendiconto

SorgenteProiezione mostrataPosizione configurata
MnestomaConteggi, archi attivi e proto, eventi recenti.Database di Mnestoma, normalmente sotto PATH_WORKSPACE/.mnestoma.
AssociazioniCanale, identificativo del mittente, livello, date e autore dell'associazione; conteggio delle revoche.DB_PAIRINGS sotto PATH_USER_STATE.
TurniUltimi quindici turni: richiesta, esito, numero di passi e inizio della risposta.PATH_TURNS sotto PATH_USER_DATA.
VaglioUltime venti decisioni: executor, punteggio, esito e motivazione abbreviata.PATH_USER_DATA/vaglio.
SchedulerAttività abilitate, regola temporale, ultima esecuzione ed esito.PATH_USER_STATE/scheduler_v2.sqlite.
Prove registrateModuli, casi abilitati, ultimo stato e moduli più numerosi.PATH_RUNTIME/testing/tests.db.

I limiti sono applicati dal generatore e non sono parametri della CLI: cinque file giornalieri al massimo per i turni, tre file per il Vaglio e limiti distinti per righe ed eventi. Per un'analisi completa occorre interrogare la sorgente autorizzata, non dedurre il totale dalla pagina.

6. Accesso, utenti e riservatezza

7. Generazione e durata

Dalla radice dell'installazione, usando l'ambiente Python di Metnos:

PYTHONPATH=runtime ./.venv/bin/python -m observability render
PYTHONPATH=runtime ./.venv/bin/python -m observability render --out /percorso/scelto/dashboard.html

Il percorso predefinito è PATH_WORKSPACE/dashboard/index.html. Il comando restituisce il percorso scritto e termina. Non esiste un aggiornamento periodico incorporato: ora di generazione e contenuto restano invariati finché il comando non viene eseguito di nuovo.

Il file è un prodotto derivato. Per eliminarlo si può rimuovere il solo percorso di uscita dopo aver verificato che non sia usato da altri processi; le sorgenti operative non vengono eliminate con esso.

8. Verifiche e fonti canoniche

Le prove mirate del generatore statico sono in tests/runtime/runtime/test_observability.py. Verificano, fra l'altro, che nomi degli executor, richieste e risposte non possano introdurre markup attivo nel file. Le prove HTTP ed end-to-end controllano separatamente le pagine amministrative: non si usa un conteggio fisso, destinato a diventare obsoleto.