Monitoraggio del sistema: processi di lavoro, tracce, blocchi e sessioni
Cosa sta facendo la piattaforma in questo preciso istante, il lavoro svolto dal database, i sistemi di sicurezza che utilizza e chi è attualmente connesso: e come bloccare tutto ciò.
Processi di lavoro, tracce di sistema e blocchi si trovano in Piattaforma → Operazioni → Stato di salute, accanto alle schermate relative allo stato di integrazione, pipeline e workflow; Sessioni Web e utente si trovano in Piattaforma → Accesso, accanto a Utenti. Ciascuna opzione corrisponde a un'autorizzazione separata, pertanto un ruolo operativo può essere autorizzato a monitorare il sistema e annullare una query anomala senza essere autorizzato a disconnettere tutti gli utenti.
Processi di lavoro
Ogni richiesta a cui viene data risposta, ogni processo in background (lo scheduler, il mailer, il process mining, la conservazione dei dati, la verifica delle firme elettroniche, il reporter di stato) e ogni esecuzione batch, su ogni container in esecuzione, sono tutti collegati al database backend che stanno utilizzando in quel momento. Al di sotto di essi, ogni connessione al database con il suo stato, ciò che è in attesa, da quanto tempo la sua istruzione e la sua transazione sono aperte, chi la blocca e quale richiesta o job l'ha inviata.
- Annulla interrompe l'istruzione attualmente in esecuzione; la richiesta termina quindi con un errore anziché rimanere in attesa. Seleziona più righe e usa Annulla selezionati per interromperle contemporaneamente.
- In un'esecuzione batch, Annulla la interrompe all'elemento successivo (nessun elemento viene abbandonato a metà) e l'esecuzione viene registrata come annullata con i risultati completati.
- Il comando End (su un backend di database) chiude la connessione ed esegue il rollback della transazione. Utilizzalo per una sessione "inattiva nella transazione" che detiene dei blocchi, che il comando Cancel non può raggiungere perché non è in esecuzione nulla.
- L'operazione su un altro contenitore viene annullata tramite tale contenitore: l'azione viene eseguita entro dieci secondi.
- Ogni annullamento e ogni terminazione richiedono una motivazione, che viene registrata nel registro di controllo insieme al tuo nome.
Tracce di sistema
La funzione Trace (su qualsiasi processo di lavoro o backend) apre un processo nella sua interezza: ogni istruzione inviata, con il tempo impiegato e le righe restituite, i blocchi detenuti e in attesa, la catena di sessioni precedenti, le sessioni in coda e il piano di esecuzione del processo in corso, laddove sia possibile visualizzarlo in modo sicuro. La schermata Tracce di sistema elenca i processi più lenti e più recenti e, laddove il database disponga di pg_stat_statements, le istruzioni che hanno utilizzato più tempo del database. I valori digitati dagli utenti non vengono mai registrati: sono memorizzati dove si trovano i dati personali.
Serrature
Blocchi in attesa, blocchi che bloccano qualcuno, blocchi consultivi (il blocco di migrazione dello schema è denominato) ed esecuzioni batch che risultano ancora "in esecuzione". Un blocco viene contrassegnato come obsoleto quando la transazione che lo detiene è rimasta inattiva per un periodo superiore alla soglia impostata (cinque minuti per impostazione predefinita) o quando nessun container in esecuzione rivendica l'esecuzione batch: un'esecuzione il cui container si è arrestato non terminerà mai e la sua pianificazione non verrà eseguita di nuovo finché non verrà rilasciata.
- Seleziona tutti gli elementi obsoleti, quindi rilascia gli elementi selezionati. PostgreSQL restituisce un blocco solo al termine della sessione che lo detiene, quindi la funzione "Rilascia" termina la sessione e annulla la transazione.
- Un blocco NON obsoleto viene rifiutato a meno che non si scelga "Forza rilascio": terminare una transazione in corso che detiene un blocco in questo preciso istante è l'azione che causa il problema che si intendeva risolvere.
- Il rilascio di un'esecuzione batch obsoleta la contrassegna come fallita, consentendone così una nuova esecuzione pianificata.
Sessioni web e utente
Ogni sessione web (una per browser o dispositivo) e ogni persona connessa, con l'indicazione di cosa sta facendo in quel momento. È possibile passare dalla visualizzazione "Per persona" a quella "Per sessione", filtrare per nome, indirizzo o fonte ed effettuare il logout di una singola sessione, di tutte le sessioni di una persona, di una selezione di utenti o di tutti tranne te. Anche gli account di servizio sono visualizzati qui, una sessione per token. La tua sessione non viene mai terminata da un'azione di massa.
Nella schermata Ruoli, sotto Piattaforma: Processi di lavoro: visualizza per monitorare, modifica per annullare, elimina per terminare un backend. Tracce di sistema: visualizza. Blocchi: visualizza per monitorare, elimina per sbloccare. Sessioni Web e utente: visualizza per monitorare, elimina per disconnettere gli utenti. Un amministratore li gestisce tutti. In una distribuzione multi-tenant, ogni tenant visualizza solo il proprio lavoro e le proprie connessioni al database.