Odczytaj zalecane wystąpienie
Zainstaluj CLI LogBrew i uruchomlogbrew login. Skopiuj
UUID problemu z listy problemów. CLI sprawdza poprawność odpowiedzi, zanim ją
wypisze.
--json. logbrew explain issue "<issue_id>"
wykonuje ten sam odczyt. Przy bezpośrednim odczycie przez API zażądaj
odpowiedzi w wersji 13. CLI żąda tej samej wersji:
response_version od 1 do 13. Wybór wystąpienia wymaga wersji 2
lub nowszej. Ten przewodnik opisuje wersję 13.
Zalecane wystąpienie to niedawne przechowywane wystąpienie z przydatnym
kontekstem. Może być starsze niż najnowsze wystąpienie. LogBrew porównuje
najnowsze przechowywane wystąpienia, maksymalnie
occurrence_selection.recommendation.candidate_limit. Wybiera to, które ma
najwięcej kontekstu do analizy. Jeśli dwa wystąpienia mają tyle samo
kontekstu, wygrywa nowsze. Jeśli
occurrence_selection.recommendation.candidate_window_truncated ma wartość
true, problem ma starsze wystąpienia, których rekomendacja nie oceniła.
Potwierdź zakres analizy
Filtry listy problemów nie dotyczą analizy. ID problemu wybiera grupę, a odpowiedź może zawierać przechowywaną historię tej grupy. Dokładne ID wystąpienia nie usuwa tej historii. Jeśli twoje zadanie nie dopuszcza tej historii, nie żądaj analizy. Zanim zinterpretujesz błąd, sprawdź, czy:subject.project_idto właściwy projekt.event.idto wybrane wystąpienie.event.occurred_atmieści się w oknie czasowym incydentu.- usługa, środowisko i wydanie pasują do sprawdzanego wdrożenia.
schema_versionma wartość13.
Wybierz inne wystąpienie
Wyślij jeden selektor:
Nie wysyłaj razem
selection i occurrence_id. W subject pola
first_seen_at i last_seen_at opisują grupę. Szczegółowe dowody dotyczą
wybranego event.
occurrence_selection zwraca też podsumowania wystąpień first, latest,
recommended i selected. occurrence_selection.reason podaje, dlaczego
LogBrew wybrał to wystąpienie:
Odczytaj odpowiedź po kolei
- Odczytaj
subjectdla grupy, a potemeventdla wybranego wystąpienia. - Odczytaj
grouping,lifecycleioccurrence_analysis, aby poznać historię grupy. - Odczytaj
fix, aby poznać miejsce w kodzie. Zachowaj jegoprovenancerazem z plikiem, funkcją, wierszem i kolumną. Zaobserwowana ramka pokazuje kod do sprawdzenia, a nie udowodnioną przyczynę. - Odczytaj
cause.statusi jego dowody. Żadna wartość przyczyny nie dowodzi przyczyny źródłowej. - Odczytuj
impact.user_impactoddzielnie odimpact.occurrence_count. Zachowajcount_method,coverageilimitationsrazem z liczbą. Jeden użytkownik może spowodować kilka wystąpień. - Odczytaj
reproduction.status, a potemcorrelations.
Miejsce w kodzie i przyczyna
fix.status mówi, skąd pochodzi miejsce w kodzie:
cause.status ma wartość reported_hypothesis, evidence_only lub
unknown. reported_hypothesis pochodzi z aplikacji i nie jest
zweryfikowana. cause.signals wymienia zaobserwowane sygnały, na przykład
unhandled_exception lub error_trace_span. provenance ma wartość
backend_observed lub application_reported. Nie mieszaj tych dwóch źródeł.
Znajdź plik źródłowy
source_locator łączy miejsce w kodzie z repozytorium, jeśli konfiguracja
projektu zawiera repozytorium tej usługi. Aby otworzyć plik, użyj
repository_full_name, revision i repository_relative_file.
revision_source ma wartość deployment_commit lub setup_snapshot.
Jeśli source_locator.status ma wartość not_found, usługa nie ma
powiązanego komponentu repozytorium. Nie oznacza to, że brakuje pliku. Nie
zgaduj komponentu na podstawie nazwy pliku.
Użytkownicy, których dotyczy problem
known_affected_users jest wartością przybliżoną, nawet gdy status to
complete. Nie obejmuje anonimowych użytkowników ani wystąpień bez kontekstu
użytkownika. Liczba null to nie zero. impact.reported zawiera wartości
zgłoszone przez aplikację. Nie dodawaj ich do zmierzonych liczb.
Status odtworzenia
Wyzwalacz pochodzi z
event.request lub impact.reported.failed_action.
Oczekiwany błąd pochodzi z event.exception lub
event.request.response_status_code. Miejsce w kodzie to fix.location.
reproduction.baseline_occurrence_id to wybrane wystąpienie. Potwierdzenie
reproduction.evidence zapisuje każde wejście jako reproduction.trigger,
reproduction.expected_failure i reproduction.code_location. Status ready
nie dowodzi, że odtworzenie się udało. Nigdy nie wymyślaj treści żądań,
zamaskowanych wartości ani kroków.
Cykl życia i regresja
lifecycle.persisted_status to zapisany status. lifecycle.effective_status
ma wartość regressed, gdy wystąpienie pojawiło się po rozwiązaniu problemu.
Zapisany status pozostaje resolved, dopóki ktoś nie otworzy problemu
ponownie. lifecycle.regression.first_reappeared_occurrence wskazuje pierwsze
nowe wystąpienie.
Odpowiedź analizy pokazuje zarchiwizowany problem jako ignored w
subject.status i lifecycle. Zobacz Wartości statusu.
Obsłuż brakujące i ograniczone dowody
correlations.trace.status ma te wartości:
Przy
not_linked pracuj dalej na podstawie wyjątku, ramek, breadcrumbów i
innych zwróconych dowodów. Przy not_found zachowaj dokładne ID śladu. Przy
unavailable ponów próbę później. Żaden z tych statusów nie oznacza, że
aplikacja nie ma śladów. Ślad available może zawierać tylko span rejestracji
problemu. Zobacz Spany rejestracji.
correlations.logs zawiera logi z czasu zbliżonego do wystąpienia, z tego
samego wydania i środowiska. Gdy wystąpienie ma ID śladu, logi pochodzą z tego
śladu. Bez ID śladu pochodzą z tej samej usługi. actions, metrics i
related_issues wymagają ID śladu. Każda kolekcja ma status, swoje items
i truncated.
Nie mieszaj captured_fields, missing_fields, redacted_fields i
truncated_fields. Zamaskowane dane nie są brakujące. Obcięte dane nie są
kompletne. evidence.status ma wartość partial, gdy brakuje wymaganego pola
albo jest ono zamaskowane, obcięte lub niedostępne. Aktualizacje SDK nie dodają
dowodów do wcześniejszych zdarzeń.
Przechodź do powiązanych logów, problemów i wydań tylko przez dokładne ID.
Bliski znacznik czasu nie jest powiązaniem.
Wykonaj następne działania
Przetwarzajnext_actions w kolejności priority, jeśli twój klient obsługuje
dokładną parę code i target. Każde działanie ma też reason.
Zweryfikuj wdrożenie kandydujące
Użyj ID wystąpienia z błędem jako wystąpienia bazowego. ID wdrożenia kandydującego weź z dowodów wdrożenia lub z procesu wydawania.logbrew deploy zapisuje
wdrożenie.
422.
Odpowiedź liczy wystąpienia tego samego problemu, które LogBrew otrzymał od
zakończenia wdrożenia do czasu żądania (observed_after i observed_until).
Liczy też ślady z wydania kandydującego.
absence_is_proof ma zawsze wartość false. Brak ponownego wystąpienia w
oknie czasowym nie dowodzi trwałej poprawki. Zmień status zgodnie z przewodnikiem
Zarządzanie problemami dopiero
wtedy, gdy zespół zaakceptuje dowody.
Bezpiecznie obsłuż błędy
Odpowiedzi z błędem zawierają
error, code, next i next_action. Do
sterowania programem używaj code i next_action. next pokazuj jako
wskazówkę. Nie uruchamiaj go jako polecenia. Gdy odczyt się nie powiedzie, nie
zastępuj żądanego wystąpienia innym. Zobacz Błędy API
i dokumentację referencyjną API telemetrii.