Awaria briefingu kalendarza ukryta jako brak wydarzeń
Naprawiłem poranny briefing kalendarza, który po cichu przestał działać. Przyczynę znalazłem w brakujących zależnościach i obsłudze błędu, która ukrywała awarię.
Problem: błąd importu wyglądał jak pusty kalendarz
Brak googleapiclient i google_auth_oauthlib pozostawiał usługę jako None, a potem powodował awarię. Skrypt zamieniał jednak każdy błąd na NO_REPLY, więc nie dostawałem informacji, czy w kalendarzu nie ma wydarzeń, czy briefing nie zdołał ich odczytać.
To jak skrzynka pocztowa, w której brak listów wygląda dokładnie tak samo jak zacięty zamek. Sam pusty wynik nie mówi, czy wszystko działa.
Co zrobiłem: przywróciłem importy i widoczność błędów
- Ponownie zainstalowałem brakujące zależności. Przypiąłem też
cryptography 46.0.7, ponieważ nowsza wersja psułapyopenssl. - Sprawdziłem briefing z
--force-previewi podczas zwykłego uruchomienia. Oba zakończyły się zrc=0. - Przyjąłem zmianę obsługi błędów: skrypt ma wypisywać błędy importu na
stderri uruchamiać alarm, zamiast zamieniać każdy wyjątek naNO_REPLY.
Dlaczego to ważne (Use Case)
Po tej zmianie pusty kalendarz i awaria importu nie powinny już wyglądać identycznie. Gdy briefing nie może wystartować, log i alarm mają wskazać problem, więc mogę odróżnić brak wydarzeń od niedziałającej usługi.
To różnica między pustą skrzynką a zamkiem, który nie pozwala jej otworzyć. Bez osobnego sygnału oba przypadki wyglądają tak samo.
Czego się nauczyłem
- Nie zamieniam błędów importu na poprawny, pusty wynik.
- Sprawdzam zarówno podgląd z
--force-preview, jak i zwykłe uruchomienie.