logbrew login.
Problemy i wystąpienia
Lista problemów zwraca podsumowanie grupy, a nie pełne zdarzenie. Zanim otworzysz szczegóły, przeczytaj te pola:
Liczba wystąpień nie jest liczbą użytkowników, których dotyczy problem. Liczby
i czasy dotyczą zwróconego zakresu, a nie całej historii błędu. Filtr
--since lub --until ogranicza wystąpienia, które LogBrew liczy. Gdy
podajesz liczbę, podaj też filtry, które ją dały.
Wartości statusu
archived wcześniej nazywał się ignored. Obie nazwy wybierają te same
problemy i obie są akceptowane na wejściu. logbrew read, logbrew issues
oraz API w wersjach 2 i 3 pokazują archived. API w wersji 1 (domyślnej),
strumień obserwowania na żywo i odpowiedź analizy problemu pokazują ignored.
Pulpit pokazuje statusy jako „Nierozwiązany”, „Rozwiązany” i „Zarchiwizowany”.
Status dotyczy całego problemu, a nie jednego wystąpienia. Ważność pokazuje
pilność, a status zapisuje decyzję. Nie mieszaj tych pojęć. Problem critical
może mieć status resolved po zweryfikowanej poprawce. Problem archived
zachowuje zarejestrowaną ważność.
LogBrew nie otwiera ponownie rozwiązanego problemu automatycznie. Gdy po
rozwiązaniu pojawi się nowe wystąpienie, analiza zwraca
lifecycle.effective_status z wartością regressed. status pozostaje
resolved, dopóki ktoś nie otworzy problemu ponownie.
Priorytet
Priorytet ustala kolejność, w jakiej zespół przeprowadza triaż problemów:
Każdy problem ma priorytet. Jeśli nikt go nie ustawi, wynika on z ważności
problemu:
error i critical dają high, warning daje medium, a info
daje low. Gdy reguła problemów zmienia ważność, priorytet wynika z
triage.effective_severity. Wtedy priority_source ma wartość derived.
Gdy priorytet ustawi osoba, pozostaje on stały, a priority_source ma wartość
manual.
Aby wyświetlić problemy do zbadania w pierwszej kolejności:
Przypisz problemy
Przypisz problem, aby pokazać, kto odpowiada za następny krok. Problem może być przypisany najwyżej do 1 konta albo 1 zespołu.1
Sprawdź, kogo można przypisać
assignees zawiera każde konto, które może czytać projekt, z polami
user_id, name i email. teams zawiera każdy zespół organizacji
projektu, z polami team_id, slug i name. Nie można przypisać konta,
które nie może czytać projektu, ani zespołu z innej organizacji.2
Przypisz problem
me zamiast ID użytkownika. Aby
usunąć przypisanie, użyj logbrew issues unassign "<issue_id>" --json.
Dodaj --project, aby zmienić do 100 problemów jednego projektu.3
Odczytaj swoje problemy
--assignee my_teams, aby zobaczyć problemy swoich zespołów,
--assignee "team:<team_id>" dla jednego zespołu, a --assignee none dla
problemów, do których nikt nie jest przypisany.--assignee none. Jeśli członek odzyska dostęp, problemy znów go pokazują,
chyba że ktoś w międzyczasie zmienił lub usunął przypisanie.
Znajdź właściciela problemu
suggested_assignee. Każdy właściciel ma source:
inputs podaje, ile ścieżek ramek stosu, modułów, szablonów tras, tagów i
reguł sprawdził LogBrew. Jeśli lista jest pusta, a inputs nie pokazuje
żadnych ścieżek, problem nie ma dowodów do dopasowania. Nie oznacza to, że
problem nie ma właściciela.
Zapisz reguły własności w pliku tekstowym, po jednej regule w wierszu:
path pasuje do końca ścieżki ramki stosu, więc src/payments/**
pasuje do ramek w dowolnym katalogu wdrożenia. * pasuje do dowolnego tekstu.
Właścicielami są adresy e-mail kont lub #team-slug. Ostatnia pasująca reguła
ma pierwszeństwo. Następnie wyślij reguły, plik CODEOWNERS z GitHuba albo
jedno i drugie:
@org/team-slug wskazuje zespół o
tym slugu. Reguły, które wskazują konto bez dostępu do projektu lub nieznany
zespół, kończą się błędem 422. Właściciele z CODEOWNERS, którzy nie wskazują
nikogo, trafiają do unresolved_owners. Pusty plik czyści zapisany tekst
tego rodzaju.
Odczytaj historię problemu
first_seen. Konto, które straciło dostęp do projektu, zachowuje tylko swoje
ID. Aby odczytać więcej, użyj --limit i wartości next_cursor.
Sprawdź skrzynkę odbiorczą
unread liczy przypisania od twojego
znacznika odczytu. logbrew inbox read przesuwa znacznik odczytu na bieżącą
chwilę. LogBrew nie wysyła e-maili o tych przypisaniach. Skrzynka pokazuje
tylko projekty, które możesz teraz czytać.
Zalecany proces
1
Wyświetl nierozwiązane problemy w jednym zakresie
2
Odczytaj szczegóły problemu
3
Zbadaj jedno wystąpienie
subject.project_id, event.occurred_at, wydanie i środowisko ze swoim
zakresem. Zalecane wystąpienie może być starsze niż najnowsze. Pełny
przegląd dowodów opisuje przewodnik
Zbadaj problem.4
Korzystaj z dowodów ze śladu tylko wtedy, gdy są dostępne
Odczytaj ślad tylko wtedy, gdy Odczyt śladu nie ma filtra czasu. Jeśli status to
correlations.trace.status ma wartość
available. Użyj ID śladu z odpowiedzi. Nigdy go nie wymyślaj.not_linked, pracuj
dalej na podstawie dowodów z problemu.5
Zweryfikuj wdrożenie kandydujące
Jako wystąpienia bazowego użyj zbadanego wystąpienia. ID wdrożenia weź z
dowodów wdrożenia lub ze swojego procesu wydawania.Brak ponownego wystąpienia w oknie obserwacji nie dowodzi trwałej
poprawki. Jeśli
status ma wartość insufficient_traffic lub
unavailable, pozostaw problem w stanie unresolved. Wykonaj zwrócone
następne działanie.6
Zmień status, priorytet lub przypisanie
Uruchom jedno polecenie. Te polecenia nie proszą o potwierdzenie, więc
najpierw sprawdź ID problemu.Bez
--project każde polecenie przyjmuje 1 ID problemu. Sprawdź kod
wyjścia oraz zwrócone status, priority i assignee. Jeśli brakuje
wyniku, odczytaj problem ponownie przed następną zmianą.Starsze skrypty mogą używać logbrew set issue "<issue_id>" resolved
oraz skrótów resolve, ignore i reopen. ignore ustawia archived.Zmień wiele problemów naraz
Dodaj--project, aby jednym poleceniem zmienić do 100 problemów jednego
projektu:
Każdy wpis ma
issue_id, outcome i issue. issue to bieżący stan
problemu lub null dla not_found. Po awarii sieci możesz ponownie uruchomić
to samo polecenie. Problemy, które już się zmieniły, pokazują unchanged. Aby
zmienić ponad 100 problemów, uruchom więcej poleceń. Dla wyniku not_found
skopiuj ID ponownie z listy problemów tego projektu. Żądanie API opisuje sekcja
Zaktualizuj wiele problemów naraz.
Wybierz następny status
- Pozostaw
unresolved, gdy błąd nadal występuje lub poprawka nie jest zweryfikowana. Brak śladu nie jest powodem do archiwizacji problemu. - Ustaw
resolved, gdy zespół zaakceptuje dowody poprawki. Proponowana poprawka nie jest dowodem. - Ustaw
archiveddla zaakceptowanego stanu lub sygnału tylko testowego. Decyzja dotyczy każdego wystąpienia problemu. Polecenie nie ma pola na powód, więc zapisz powód w zapisach pracy zespołu. - Otwórz ponownie (
unresolved), gdy po rozwiązaniu pojawi się nowe wystąpienie. Wskazuje jelifecycle.regression.first_reappeared_occurrence. Porównaj je z wystąpieniem użytym przy rozwiązaniu. Nie twórz innego problemu.
Przekaż analizę
Przekaż następnej osobie odnośniki, a nie zrzut surowych zdarzeń:- ID problemu, status, priorytet, przypisanie i ważność.
- Projekt, usługa, środowisko i wydanie.
- Czas pierwszego wystąpienia, czas ostatniego wystąpienia i liczba wystąpień.
- ID wybranego wystąpienia i
occurrence_selection.reason. fix.status,cause.statusi ichprovenance.- Status śladu i ID śladu, jeśli są dostępne.
- Status odtworzenia i brakujące dowody.
- Wynik weryfikacji wdrożenia kandydującego.
- Następne działanie zwrócone w odpowiedzi.
Napraw błędy CLI
Zanim przetworzysz wynik, sprawdź kod wyjścia procesu. Przy powodzeniu JSON trafia na standardowe wyjście. Błąd parsowania kończy się kodem2. Błąd w
trakcie działania kończy się kodem 1. Błędy w formacie JSON trafiają na standardowe
wyjście błędów i zawierają ok: false, error, message i next. Pokazuj
next jako wskazówkę. Nie uruchamiaj go automatycznie.
Na przykład w logbrew issues archive "<issue_id_1>" "<issue_id_2>" --json
brakuje --project. Polecenie kończy się kodem 2 przed wysłaniem żądania, z
błędem invalid_issue_command.
Gdy API odrzuci żądanie, error ma wartość api_error. Status HTTP odczytasz
z status, a kod błędu API z api_code.
Nieudana odpowiedź nie dowodzi, że zmiana statusu, priorytetu lub osoby
przypisanej nie przyniosła efektu. Zanim spróbujesz ponownie, odczytaj
problem.
Co składa się na przydatny problem
- Jasny tytuł i czytelny komunikat.
- Stały odcisk palca.
- Ramki stosu, jeśli są dostępne.
- Kontekst wydania, środowiska i usługi.
- Kontekst śladu, jeśli zarejestrowano go razem z wystąpieniem.
- Małe, istotne atrybuty, a nie pełne zrzuty danych.
