logbrew login.
Problemi e occorrenze
Un elenco di problemi restituisce un riepilogo del gruppo, non un evento completo. Leggi questi campi prima di aprire il dettaglio:
Il numero di occorrenze non è un numero di utenti coinvolti. Conteggi e orari
si riferiscono all’ambito restituito, non all’intera cronologia dell’errore.
Un filtro
--since o --until limita le occorrenze che LogBrew conta. Quando
riporti un conteggio, riporta anche i filtri che lo hanno prodotto.
Valori di stato
archived in precedenza si chiamava ignored. I due nomi selezionano gli
stessi problemi, e LogBrew li accetta entrambi in input. logbrew read,
logbrew issues e le versioni 2 e 3 dell’API mostrano archived. La
versione 1 dell’API (quella predefinita), il flusso dell’osservazione in tempo
reale e la risposta dell’indagine sul problema mostrano ignored. La
dashboard mostra gli stati come Da risolvere, Risolto e Archiviato.
Lo stato vale per l’intero problema, non per una singola occorrenza. La
gravità indica l’urgenza, lo stato registra la decisione. Tieni separati i
due concetti. Un problema critical può diventare resolved dopo una
correzione verificata. Un problema archived mantiene la gravità acquisita.
LogBrew non riapre automaticamente un problema risolto. Quando arriva una
nuova occorrenza dopo la risoluzione, l’indagine riporta
lifecycle.effective_status come regressed. Lo status resta resolved
finché una persona non riapre il problema.
Priorità
La priorità stabilisce l’ordine in cui il team fa il triage dei problemi:
Ogni problema ha una priorità. Se nessuno la imposta, segue la gravità del
problema:
error e critical sono high, warning è medium e info è
low. Quando una regola dei problemi cambia la gravità, la priorità segue
triage.effective_severity. In questo caso priority_source è derived.
Quando una persona imposta la priorità, questa resta fissa e priority_source
è manual.
Per elencare i problemi da esaminare per primi:
Assegna i problemi
Assegna un problema per indicare chi è responsabile del passo successivo. Un problema ha 0 o 1 assegnatario: un account o un team.1
Trova chi può essere assegnatario
assignees contiene ogni account che può leggere il progetto, con
user_id, name ed email. teams contiene ogni team
dell’organizzazione del progetto, con team_id, slug e name. Non puoi
assegnare un account che non può leggere il progetto, né un team di
un’altra organizzazione.2
Assegna il problema
me al posto dell’ID utente per assegnare il problema a te. Usa
logbrew issues unassign "<issue_id>" --json per rimuovere
l’assegnatario. Aggiungi --project per modificare fino a 100 problemi di
un progetto.3
Leggi i tuoi problemi
--assignee my_teams per i problemi dei tuoi team,
--assignee "team:<team_id>" per un solo team e --assignee none per i
problemi senza assegnatario.--assignee none. Se il membro riottiene
l’accesso, i problemi mostrano di nuovo quel membro, a meno che nel frattempo
qualcuno non abbia cambiato o rimosso l’assegnatario.
Trova il referente di un problema
suggested_assignee. Ogni referente ha un source:
inputs conta i percorsi degli stack frame, i moduli, il modello di route, i
tag e le regole che LogBrew ha controllato. Se l’elenco è vuoto e inputs non
mostra percorsi, al problema mancano le prove da confrontare: non significa
che non abbia un referente.
Scrivi le regole dei referenti in un file di testo, una regola per riga:
path corrisponde alla parte finale del percorso di uno stack
frame, quindi src/payments/** trova i frame sotto qualsiasi directory di
deploy. * corrisponde a qualsiasi testo. I referenti sono email di
account o #team-slug. L’ultima regola che corrisponde viene prima. Poi invia
le regole, un file CODEOWNERS di GitHub o entrambi:
@org/team-slug indica il team
con quello slug. Le regole che indicano un account senza accesso al progetto
o un team sconosciuto non riescono con 422. I referenti di CODEOWNERS che
non corrispondono a nessuno compaiono in unresolved_owners. Un file vuoto
cancella il testo corrispondente.
Leggi la cronologia del problema
first_seen. Un account che ha perso l’accesso al progetto conserva solo il
suo ID. Usa --limit e i valori di next_cursor per leggere altre voci.
Leggi la tua inbox
unread conta le assegnazioni successive al tuo segno
di lettura. logbrew inbox read sposta il segno di lettura ad adesso. LogBrew
non invia email per queste assegnazioni. L’inbox mostra solo i progetti che
puoi leggere in questo momento.
Flusso di lavoro consigliato
1
Elenca i problemi da risolvere in un ambito
2
Leggi il dettaglio del problema
3
Indaga su un'occorrenza
subject.project_id, event.occurred_at, release e ambiente
con il tuo ambito. L’occorrenza consigliata può essere meno recente
dell’ultima. Per l’esame completo delle prove, segui
Indaga su un problema.4
Segui le prove di traccia solo se disponibili
Leggi la traccia solo quando La lettura della traccia non ha un filtro temporale. Se lo stato è
correlations.trace.status è available.
Usa l’ID traccia della risposta. Non inventarne mai uno.not_linked, continua con le prove del problema.5
Verifica il deploy candidato
Usa l’occorrenza esaminata come riferimento. Ricava l’ID del deploy dalle
prove del deploy o dal tuo processo di release.L’assenza di ricorrenze nell’intervallo di osservazione non dimostra una
correzione definitiva. Se
status è insufficient_traffic o
unavailable, lascia il problema unresolved. Segui la prossima azione
restituita.6
Cambia stato, priorità o assegnatario
Esegui un solo comando. Questi comandi non chiedono conferma, quindi
controlla prima l’ID del problema.Senza
--project, ogni comando accetta 1 ID di problema. Controlla il
codice di uscita e i valori restituiti di status, priority e
assignee. Se il risultato manca, rileggi il problema prima della
modifica successiva.Gli script meno recenti possono usare
logbrew set issue "<issue_id>" resolved e le scorciatoie resolve,
ignore e reopen. ignore imposta archived.Modifica molti problemi insieme
Aggiungi--project per modificare fino a 100 problemi di un progetto con un
solo comando:
Ogni voce ha
issue_id, outcome e issue. issue è il problema attuale,
oppure null per not_found. Dopo un errore di rete puoi eseguire di nuovo
lo stesso comando. I problemi già modificati mostrano unchanged. Per più di
100 problemi, esegui più comandi. Per un risultato not_found, copia di nuovo
l’ID da un elenco di problemi di quel progetto. Per la richiesta API, consulta
Aggiorna più problemi insieme.
Scegli lo stato successivo
- Lascialo
unresolvedquando l’errore è attivo o la correzione non è verificata. Una traccia mancante non è un motivo per archiviare un problema. - Imposta
resolveddopo che il team ha accettato le prove della correzione. Una correzione proposta non è una prova. - Imposta
archivedper una condizione accettata o per un segnale solo di test. La decisione vale per ogni occorrenza del problema. Il comando non ha un campo per il motivo, quindi annota il motivo nel registro di lavoro del tuo team. - Riapri con
unresolvedquando arriva una nuova occorrenza dopo la risoluzione.lifecycle.regression.first_reappeared_occurrencela identifica. Confrontala con l’occorrenza usata per la risoluzione. Non creare un problema diverso.
Passa l’indagine a un’altra persona
Dai alla persona successiva dei riferimenti, non un dump grezzo dell’evento:- ID, stato, priorità, assegnatario e gravità del problema.
- Progetto, servizio, ambiente e release.
- Ora della prima occorrenza, ora dell’ultima occorrenza e numero di occorrenze.
- ID dell’occorrenza selezionata e
occurrence_selection.reason. fix.status,cause.statuse la loroprovenance.- Stato e ID della traccia, se disponibili.
- Stato della riproduzione e prove mancanti.
- Risultato della verifica del deploy candidato.
- La prossima azione restituita dalla risposta.
Risolvi gli errori della CLI
Controlla il codice di uscita del processo prima di analizzare l’output. In caso di successo, il JSON va sullo standard output. Un errore di parsing termina con il codice2. Un errore di runtime termina con il codice 1. Gli
errori JSON vanno sullo standard error e contengono ok: false, error,
message e next. Mostra next come indicazione. Non eseguirlo
automaticamente.
Ad esempio, logbrew issues archive "<issue_id_1>" "<issue_id_2>" --json
non ha --project. Termina con il codice 2 prima di inviare una richiesta,
con l’errore invalid_issue_command.
Quando l’API rifiuta una richiesta, error è api_error. Leggi status per
lo stato HTTP e api_code per il codice di errore dell’API.
Una risposta di errore non dimostra che il cambio di stato, priorità o
assegnatario non abbia avuto effetto. Rileggi il problema prima di riprovare.
Cosa rende utile un problema
- Un titolo chiaro e un messaggio leggibile.
- Un fingerprint stabile.
- Frame dello stack, quando disponibili.
- Contesto di release, ambiente e servizio.
- Contesto di traccia, quando acquisito con l’occorrenza.
- Attributi brevi e pertinenti, non dump completi del payload.
