Glimpse – analiza działania ASP.NET MVC

Glimpse

Tworząc aplikację, w pierwszej kolejności skupiamy się na aspektach funkcjonalnych. Inne rzeczy, takie jak wydajność, odkładamy na późniejszy okres. Niestety bardzo często później nie starcza nam na to czasu, więc musimy reagować już po wdrożeniu aplikacji i na szybko ją poprawiać. Myślę, że taki stan rzeczy jest spowodowany przede wszystkim tym, że nie używamy prostych narzędzi, które na bieżąco będą nas informować o tym, jak działa nasza aplikacja. Dla aplikacji ASP.NET takim właśnie narzędziem jest tytułowe Glimpse (github biblioteki), które udostępnia bardzo dużo przydatnych informacji.

W projektach, w których biorę udział, testerzy również korzystają z tej biblioteki i mają za zadanie sprawdzenie, czy podstawowa wydajność aplikacji jest OK (np. żądanie zostało obsłużone w określonym czasie lub czy nie ma zbyt dużej liczby zapytań do bazy – np. brakujący Include w Entity Framework oraz problem n + 1 zapytań).

Instalacja

Bibliotekę instalujemy za pomocą nugeta. Do samej biblioteki możemy zainstalować sporo różnych rozszerzeń, które dostarczą dodatkowych informacji. Ja na ogół na początku zawsze instaluję następujące pakiety (z czasem ewentualnie dodaje kolejne, w zależności od tego, czego używam aktualnie w projekcie):

  • Glimpse
  • Glimpse.Ado
  • Glimpse.EF6
  • Glimpse.AspNet
  • Glimpse.Mvc5

Darmowy kurs Visual Studio

Pracując z setkami programistów, zauważyłem, że większość osób nie pracuje efektywnie w Visual Studio. W skrajnych przypadkach korzystali z kopiowania z wykorzystaniem menu Edit. Wiem, że to dziwne, ale naprawdę niektórzy tak pracują. Dlatego postanowiłem stworzyć kurs Visual Studio – aby pomóc koleżankom i kolegom w efektywniejszej pracy.

Przygotowałem 20 lekcji e-mail, w których pokażę Ci, w jaki sposób pracować efektywniej i szybciej w Visual Studio. Poznasz dodatki, bez których nie wyobrażam sobie pracy w tym IDE.

Po więcej informacji zapraszam na dedykowaną stronę kursu: Darmowy Kurs Visual Studio.

Quiz C#

Ostatnio przygotowałem również quiz C#, w którym możesz sprawdzić swoją wiedzę. Podejmiesz wyzwanie?

Uruchamianie

Po zainstalowaniu biblioteki w aplikacji dostępna jest nowa strona pod adresem [adres aplikacji]/glimpse.axd. Na tej stronie możemy włączyć w danej przeglądarce bibliotekę (tak naprawdę jest ustawiany plik cookie, który mówi, że ma ona działać). Dodatkowo można też skonfigurować to, jakie elementy mają być analizowane. Poniżej widać zrzut ekranu tej strony:

Glimpse konfiguracja

Glimpse – konfiguracja

Po włączeniu biblioteki na każdej stronie aplikacji pojawi się pasek na dole ekranu, który dostarcza wielu przydatnych informacji:

Glimpse panel

Glimpse – panel

Jak widać powyżej, biblioteka wyświetla informacje o czasie żądania (w tym czasie po stronie serwera oraz klienta), czasie wykonywania akcji po stronie serwera (czas akcji, generowanie widoku, liczba zapytań do bazy i ich czas) czy też informacje o operacjach ajaxowych. Dodatkowo poszczególne obszary możemy powiększyć, aby zobaczyć jeszcze więcej informacji:

Glimpse panel popup

Glimpse panel popup

Klikając w ikonę biblioteki w prawym rogu, możemy rozwinąć cały panel, w którym znajdują się różnego rodzaju zakładki dostarczające jeszcze więcej informacji. Dla przykładu poniżej znajduje się zakładka z informacją o wykonywanych zapytaniach do bazy danych:

Glimpse pane rozwinięcie

Glimpse pane rozwinięcie

 

Konfiguracja

Korzystając z biblioteki, warto pamiętać jeszcze o jednej rzeczy. Z racji tego, że biblioteka udostępnia dużo istotnych informacji o aplikacji (np. wykonywane zapytania na bazie), warto odpowiednio zabezpieczyć dostęp do niej. Domyślnie biblioteka działa tylko lokalnie, ale to na dłuższą metę jest problematyczne, szczególnie przy środowiskach innych niż developerskie, w których aplikacja jest wrzucona na jakiś serwer.

Nuget podczas instalacji pakietu głównego Glimpse dodaje również do katalogu głównego aplikacji klasę GlimpseSecurityPolicy, która domyślnie jest zakomentowana. Klasa ta umożliwia dodanie logiki, która będzie określać, kto ma może uruchomić Glimpse i z niego korzystać. Można na przykład w środowisku testowym udostępnić bibliotekę dla wszystkich, natomiast w środowisku produkcyjnym tylko dla użytkowników w roli administratora.

Dodatkowo warto pomyśleć również o zmianie domyślnego adresu glimpse.axd. Dzięki temu, gdy zrobimy błąd na przykład w klasie GlimpseSecurityPolicy, to mamy dodatkowe zabezpieczenie przed udostępnieniem informacji z biblioteki.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *