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:

pip install appenlight-client

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):

'appenlight_client.django_middleware.AppenlightMiddleware',

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.

Zestawienie danych na stronie głównej

Zestawienie danych na stronie głównej

Slow log - co działa najwolniej w naszej aplikacji

Slow log - co działa najwolniej w naszej aplikacji

Żądania na sekundę

Żądania na sekundę

Widok szczegółowy długo wykonywanego widoku

Widok szczegółowy długo wykonywanego widoku

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.

RkBlog

Django, 6 April 2014

Comment article
Comment article RkBlog main page Search RSS Contact