App enlight - agregator logów i stanu zdrowia twojej aplikacji
App enlight, wcześniej errormator to polski startup i aplikacja-usługa zbierająca logi z naszej aplikacji i raportująca o nieprawidłowościach. W odróżnieniu od np. Sentry nie tylko zbiera logi wyjątków, ale też zbiera dane z obsługi każdego nadesłanego żądania, dzięki czemu otrzymujemy raporty o stanie naszej aplikacji - jak efektywnie działa i temu podobne. Możemy np. przejrzeć listę najwolniej wykonywanych widoków, czy zapytań do baz danych. Jak to wygląda w praktyce?
Instalacja i konfiguracja
Zaczynamy od zainstalowania klienta appenlight. Oficjalne są dwa - do Pythona i do JavaScriptu. Społeczność utrzymuje kilka klientów dla innych języków. W przypadku np. Pythona i Django instalujemy:
A następnie podpinamy go w settings.py naszego projektu Django:
import appenlight_client.client as e_client
APPENLIGHT = e_client.get_config({'appenlight.api_key': 'TUTAJ_KLUCZ_APLIKACJI'})
Gdzie TUTAJ_KLUCZ_APLIKACJI to klucz aplikacji jaki dostajemy po stworzeniu jej w panelu appenlight. Dodatkowo do MIDDLEWARE_CLASSES musimy dodać (na początku listy):
Teraz każde żądanie obsługiwane przez naszą aplikację Django zostanie zalogowane w appenlight.
Panel App enlight
Interfejs appenlight dynamicznie się rozwija, a o nowościach można przeczytać na blogu projektu. W skrócie dostajemy przeglądarkę logów z różnymi opcjami ich agregacji. Do tego narzędzia do pracy grupowej (przypisywanie issue/zadań członkom projektu itp.) i integracje z innymi aplikacjami np. issues na GitHubie.
Główny ekran to zestawienie zagregowanych danych - liczba żądań, wyjątków i wykresy przedstawiające czasy odpowiedzi, ilość nadsyłanych żądań na minutę, ilość powolnych odpowiedzi itp.
Na zakończenie
Appenlight to całkiem fajna aplikacja. Jeżeli nadal będzie się dynamicznie rozwijać może stać się całkiem popularna pośród developerów różnorakich aplikacji. Poza logowaniem 500 daje też wgląd w stan aplikacji - jak rzeczywiście działa i jak wprowadzane zmiany wpływają na jej stan (czy nagle pewna grupa użytkowników będzie miała problemy przez wolno wykonujące się zapytanie, długo renderowaną listę w szablonie itp).
Testowałem usługę na aplikacji Django i działa to całkiem fajnie (choć zawsze można chcieć więcej raportów, zestawień, czy podpowiedzi). Czekam też aż klient do JavaScriptu zacznie też logować/agregować wydajność, co na pewno będzie przydatne przy rozwijaniu i optymalizowaniu mocno frontendowych aplikacji (używających embera, angulara, czy inne tego typu frameworki). Raven-js zaloguje błąd do Sentry, ale nie powie że np. komuś zamroziło Firefoksa na operacjach w localStorage na minutę, czy dwie ;)
Zachęcam więc wszystkich do przetestowania app enlight i podzielenia się wrażeniami, sugestiami z twórcami aplikacji.
Comment article