Leggi l’occorrenza consigliata
Installa la CLI di LogBrew ed eseguilogbrew login. Copia
l’UUID del problema da un elenco di problemi. La CLI convalida la risposta
prima di stamparla.
--json per agenti e script. logbrew explain issue "<issue_id>" esegue
la stessa lettura. Per leggere direttamente dall’API, richiedi la versione 13
della risposta. La CLI richiede la stessa versione:
response_version da 1 a 13. La selezione dell’occorrenza
richiede la versione 2 o successiva. Questa guida descrive la versione 13.
L’occorrenza consigliata è un’occorrenza recente e conservata con un contesto
utile. Può essere più vecchia dell’ultima occorrenza. LogBrew confronta le
occorrenze conservate più recenti, fino a
occurrence_selection.recommendation.candidate_limit. Sceglie quella con più
contesto per l’indagine. Se due occorrenze hanno lo stesso contesto, vince la
più recente. Se occurrence_selection.recommendation.candidate_window_truncated
è true, il problema ha occorrenze più vecchie che la raccomandazione non ha
valutato.
Conferma l’ambito dell’indagine
I filtri dell’elenco dei problemi non si applicano a un’indagine. L’ID del problema seleziona il gruppo e la risposta può includere la cronologia conservata del gruppo. Un ID di occorrenza esatto non esclude quella cronologia. Se il tuo compito non consente di accedere a quella cronologia, non richiedere l’indagine. Prima di interpretare l’errore, verifica che:subject.project_idsia il progetto previsto.event.idsia l’occorrenza selezionata.event.occurred_atrientri nell’intervallo di tempo dell’incidente.- Servizio, ambiente e release corrispondano al deploy che stai esaminando.
schema_versionsia13.
Seleziona un’altra occorrenza
Invia un solo selettore:
Non inviare
selection e occurrence_id insieme. In subject,
first_seen_at e last_seen_at descrivono il gruppo. Le prove dettagliate
riguardano l’event selezionato.
occurrence_selection restituisce anche i riepiloghi delle occorrenze
first, latest, recommended e selected. occurrence_selection.reason
indica perché LogBrew ha selezionato l’occorrenza:
Leggi la risposta in ordine
- Leggi
subjectper il gruppo, poieventper l’occorrenza selezionata. - Leggi
grouping,lifecycleeoccurrence_analysisper la cronologia del gruppo. - Leggi
fixper la posizione nel codice. Tieni la suaprovenanceinsieme a file, funzione, riga e colonna. Un frame osservato indica il codice da esaminare, non una causa dimostrata. - Leggi
cause.statuse le relative prove. Nessun valore della causa dimostra la causa radice. - Leggi
impact.user_impactseparatamente daimpact.occurrence_count. Tienicount_method,coverageelimitationsinsieme al conteggio. Un solo utente può causare più occorrenze. - Leggi
reproduction.status, poicorrelations.
Posizione nel codice e causa
fix.status indica da dove proviene la posizione nel codice:
cause.status è reported_hypothesis, evidence_only o unknown. Una
reported_hypothesis proviene dall’app e non è verificata.
cause.signals elenca i segnali osservati, come unhandled_exception o
error_trace_span. provenance è backend_observed o
application_reported. Tieni separati i due valori.
Trova il file sorgente
source_locator collega la posizione nel codice a un repository quando la
configurazione del progetto ha un repository per il servizio. Usa
repository_full_name, revision e repository_relative_file per aprire il
file. revision_source è deployment_commit o setup_snapshot.
Se source_locator.status è not_found, il servizio non ha un componente di
repository collegato. Non significa che il file manchi. Non indovinare un
componente dal nome del file.
Utenti coinvolti
known_affected_users è approssimativo, anche quando lo stato è complete.
Non conta i soggetti anonimi né le occorrenze senza contesto utente. Un
conteggio null non equivale a zero. impact.reported contiene i valori
segnalati dall’app. Non sommarli ai conteggi misurati.
Stato della riproduzione
Il trigger proviene da
event.request o da impact.reported.failed_action.
L’errore atteso proviene da event.exception o da
event.request.response_status_code. La posizione nel codice è fix.location.
reproduction.baseline_occurrence_id è l’occorrenza selezionata. Il resoconto
reproduction.evidence registra ogni dato come
reproduction.trigger, reproduction.expected_failure e
reproduction.code_location. Lo stato ready non dimostra che la
riproduzione sia riuscita. Non inventare mai corpi di richiesta, valori
oscurati o passaggi.
Ciclo di vita e regressione
lifecycle.persisted_status è lo stato salvato. lifecycle.effective_status
è regressed quando un’occorrenza arriva dopo che il problema è stato
risolto. Lo stato salvato resta resolved finché una persona non riapre il
problema. lifecycle.regression.first_reappeared_occurrence identifica la
prima nuova occorrenza.
La risposta dell’indagine mostra un problema archiviato come ignored in
subject.status e lifecycle. Vedi Valori di stato.
Gestisci prove mancanti e limitate
correlations.trace.status ha questi valori:
Con
not_linked, continua con l’eccezione, i frame, i breadcrumb e le altre
prove restituite. Con not_found, tieni da parte l’ID traccia esatto. Con
unavailable, riprova più tardi. Nessuno di questi stati significa che l’app
non ha tracce. Una traccia available può contenere solo lo span di acquisizione del
problema. Vedi
Span di acquisizione.
correlations.logs contiene i log vicini all’orario dell’occorrenza, della
stessa release e dello stesso ambiente. Quando l’occorrenza ha un ID traccia,
i log provengono da quella traccia. Senza ID traccia, provengono dallo stesso
servizio. actions, metrics e related_issues richiedono un ID traccia.
Ogni raccolta ha uno status, i suoi items e truncated.
Tieni separati captured_fields, missing_fields, redacted_fields e
truncated_fields. I dati oscurati non sono mancanti. I dati troncati non
sono completi. evidence.status è partial quando un campo obbligatorio è
mancante, oscurato, troncato o non disponibile. Gli aggiornamenti dell’SDK non
aggiungono prove agli eventi passati.
Per log, problemi e release correlati, segui gli ID esatti. Un timestamp
vicino non è un collegamento.
Segui le prossime azioni
Elaboranext_actions in ordine di priority quando il tuo client supporta
la coppia esatta di code e target. Ogni azione ha anche un reason.
Verifica il deploy candidato
Usa l’ID dell’occorrenza con l’errore come riferimento. Recupera l’ID del deploy candidato dalle prove di deploy o dal tuo processo di release.logbrew deploy registra un deploy.
422.
La risposta conta le occorrenze dello stesso problema che LogBrew ha ricevuto
dopo la fine del deploy, fino all’orario della richiesta (observed_after e
observed_until). Conta anche le tracce della release candidata.
absence_is_proof è sempre false. Se il problema non si ripresenta
nell’intervallo, questo non dimostra una correzione definitiva. Cambia lo
stato nel flusso di lavoro dei problemi
solo dopo che il tuo team ha accettato le prove.
Risolvi gli errori in sicurezza
Le risposte di errore contengono
error, code, next e next_action. Usa
code e next_action per controllare il programma. Mostra next come
indicazione. Non eseguirlo come comando. Se una lettura non riesce, non
sostituire l’occorrenza richiesta con un’altra. Vedi
Errori API e il
riferimento dell’API di telemetria.