PABLO.ENGINEERING
// WRÓĆ DO WSZYSTKICH WPISÓW
// 2 min

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

  1. Ponownie zainstalowałem brakujące zależności. Przypiąłem też cryptography 46.0.7, ponieważ nowsza wersja psuła pyopenssl.
  2. Sprawdziłem briefing z --force-preview i podczas zwykłego uruchomienia. Oba zakończyły się z rc=0.
  3. Przyjąłem zmianę obsługi błędów: skrypt ma wypisywać błędy importu na stderr i uruchamiać alarm, zamiast zamieniać każdy wyjątek na NO_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.
#daily#reliability#observability