Hook Performance Profiler – znajdź moduł, który spowalnia sklep
Moduł mierzy czas każdego wywołania hooka, osobno dla każdego modułu, na prawdziwym ruchu w sklepie. Panel pokazuje ranking najcięższych modułów, hooków, adresów URL i kontrolerów, oś czasu pojedynczej odsłony oraz listę skrajnie wolnych wywołań.
O module
Każdy zainstalowany moduł podpina się pod hooki PrestaShop i dokłada swój czas do generowania strony. Kiedy sklep zwalnia, zwykle nie wiadomo, który to moduł, a wyłączanie ich po kolei na produkcji jest ryzykowne i czasochłonne.
Hook Performance Profiler mierzy czas wykonania każdego hooka i przyrost pamięci, osobno dla każdego modułu, i zbiera te pomiary z prawdziwych odsłon sklepu i panelu. Dane trafiają do bazy jednym zapytaniem na koniec żądania, a próbkowanie pozwala profilować tylko część ruchu. Moduł używa jednego override'u, klasy Hook, i nie zmienia warstwy bazy danych PrestaShop.
Jak to działa
- Zainstaluj moduł. W menu pojawi się zakładka „Profiler wydajności”.
- Ustaw próbkowanie (np. 10–20% ruchu na produkcji), próg ostrzeżenia w ms i czas przechowywania logów.
- Po kilku godzinach lub dniach ruchu otwórz dashboard: podsumowanie liczy się od razu, a pełny raport wczytujesz jednym przyciskiem.
- Sprawdź ranking modułów i hooków, a w trybie zaawansowanym ranking kontrolerów i analizę kohortową.
- Kliknij „Zobacz” przy wolnym wywołaniu, żeby zobaczyć waterfall całej odsłony. Raport wyeksportujesz do CSV albo PDF.
Dla kogo
- Właściciele sklepów, w których strona zwolniła po instalacji lub aktualizacji modułów.
- Agencje i developerzy PrestaShop, którzy muszą szybko wskazać klientowi konkretny moduł i hook.
- Sklepy z dużą liczbą modułów, gdzie ręczne wyłączanie po kolei nie wchodzi w grę.
- Zespoły, które chcą sprawdzać wydajność przed i po wdrożeniu zmian.
Czym ten moduł nie jest
Nie przyspiesza sklepu sam z siebie: pokazuje, gdzie jest problem, a naprawa zależy od modułu, którego dotyczy. Nie mierzy sieciowego TTFB w przeglądarce (czas przetwarzania jest liczony po stronie PHP), nie liczy zapytań SQL i nie widzi kodu wykonywanego poza mechanizmem hooków.
Co rozwiązuje
-
Sklep zwolnił i nie wiadomo dlaczego
Po instalacji lub aktualizacji modułu strony ładują się dłużej, ale nic nie wskazuje, który element jest winny.
-
Dziesiątki modułów na każdej stronie
Na jednej odsłonie wykonuje się kilkadziesiąt hooków z różnych modułów. Bez pomiaru trudno ocenić, ile kosztuje każdy z nich.
-
Wyłączanie modułów po kolei to ryzyko
Testowanie metodą prób i błędów na produkcji psuje sklep klientom, a na kopii deweloperskiej nie ma prawdziwego ruchu.
-
Narzędzia deweloperskie nie nadają się na produkcję
Tryb debugowania i profilowanie PrestaShop pokazują tylko bieżące żądanie i nie zbierają historii z ruchu klientów.
-
Problem pojawia się tylko czasem
Pojedyncze, bardzo wolne wywołania łatwo przegapić. Bez logu ostrzeżeń nie da się do nich wrócić.
Najważniejsze funkcje
-
Ranking najcięższych modułów
Średni i maksymalny czas na odsłonę dla każdego modułu, liczba odsłon i wywołań. Moduły powyżej progu ostrzeżenia są oznaczone jako WOLNY.
-
Ranking hooków z listą modułów
Czas hooków, łączna liczba wywołań i średnia liczba wywołań na odsłonę. W trybie zaawansowanym lista modułów wpiętych pod hook ze statusem: aktywny, bez wywołań albo wyłączony.
-
Ranking URL-i i kontrolerów
Które adresy i które typy stron (np. karta produktu, kategoria, panel zamówień) są systemowo wolne, wraz z listą „co się tu wywołuje” dla każdego URL-a.
-
Waterfall pojedynczej odsłony
Oś czasu wszystkich wywołań hooków jednej odsłony: kolejność, start, czas trwania i pamięć. Hooki akcyjne i wyświetlające są oznaczone kolorami.
-
Ostrzeżenia i rekomendacje
Lista wywołań powyżej progu z adresem strony i przejściem do waterfalla. Rekomendacje oparte na regułach wskazują najcięższe moduły, rosnący czas przetwarzania i zbyt wysokie próbkowanie.
-
Trend i analiza kohortowa
Dzienny trend czasu przetwarzania serwera i tygodniowa siatka kohort modułów pomagają ustalić, po której instalacji lub aktualizacji sklep zwolnił.
-
Bezpieczny na produkcji
Jeden override (klasa Hook), błędy profilera nigdy nie przerywają działania sklepu, zapis jednym zapytaniem na koniec żądania, próbkowanie ruchu i automatyczne czyszczenie starych logów.
-
Szybki dashboard
Podsumowanie liczy się od razu, pełny raport i tryb zaawansowany wczytujesz na żądanie. Złożone indeksy i cache nazw modułów skracają ładowanie przy dużej ilości logów.
-
Eksport CSV i PDF, trzy języki
Raport do arkusza albo do wysłania klientowi. Panel, ustawienia i eksport są dostępne po polsku, angielsku i francusku.
Najczęstsze pytania
Które wersje PrestaShop są obsługiwane?
PrestaShop od 1.7 do 8.x, na PHP od 7.1. Moduł testowaliśmy na PrestaShop 8.0 i 8.2. Na PrestaShop 9 sprawdź go najpierw na kopii testowej.
Czy moduł spowalnia sklep?
Narzut jest mały: pomiar to dwa odczyty czasu na wywołanie, a zapis do bazy odbywa się jednym zapytaniem na koniec żądania. Panel pokazuje zmierzony narzut profilera. Na dużym ruchu ustaw próbkowanie na 5–20%.
Czy mogę go używać na sklepie produkcyjnym?
Tak, do tego służy próbkowanie i automatyczne czyszczenie logów. Przed pierwszą instalacją na produkcji zalecamy sprawdzenie na kopii testowej, jak w przypadku każdego modułu z override'em.
Co, jeśli inny moduł też nadpisuje klasę Hook?
PrestaShop zgłosi konflikt override'ów przy instalacji. To rzadkie (np. niektóre moduły cache). Wtedy pomożemy połączyć oba override'y w jednym pliku.
Czy pokazuje prawdziwy TTFB?
Nie. Moduł mierzy czas przetwarzania po stronie PHP, od startu żądania do zakończenia generowania strony. Nie obejmuje sieci, DNS, TLS ani serwera WWW przed PHP.
Czy liczy zapytania SQL?
Nie. Liczenie SQL wymagałoby nadpisania klasy bazy danych PrestaShop, z czego świadomie zrezygnowaliśmy ze względów bezpieczeństwa. Moduł mierzy czas i pamięć.
Jak długo przechowywane są dane?
Tyle dni, ile ustawisz w konfiguracji (domyślnie 30). Starsze logi są usuwane automatycznie. Odinstalowanie modułu usuwa tabelę z danymi.
Co obejmuje licencja?
Jednorazowy zakup dla jednej domeny produkcyjnej, domeny testowe bez ograniczeń, 12 miesięcy aktualizacji i wsparcia. Po tym czasie moduł działa dalej, tylko bez nowych wersji.
Zgodność i warunki
- Kompatybilność
- PS 1.7 – 8.x
- PHP
- 7.1+
- PrestaShop
- 1.7 – 8.x
- PHP
- 7.1+
- Override
- 1 (klasa Hook)
- Języki
- PL, EN, FR
- Eksport
- CSV, PDF
- Wsparcie
- 12 miesięcy
- Typ licencji
- Jednorazowy zakup, 1 domena, 12 miesięcy aktualizacji
- Dla kogo
- Sklepy PrestaShop 1.7–8.x, agencje, developerzy
- Demo
- Zrzuty ekranu dashboardu na życzenie
- Kontakt
- Email techniczny lub formularz
Changelog
2.2.0
- Pełne tłumaczenie panelu, ustawień oraz eksportu CSV i PDF na angielski i francuski.
- Nazwa zakładki w menu w języku pracownika (migracja dla istniejących instalacji).
- Eksport CSV z polskimi znakami zamiast transliteracji.
- Nowe logo modułu.
1.2.0
- Dodano ranking hooków wg średniego czasu na odsłonę.
- Filtrowanie i sortowanie kolumn w tabelach.
- Pełne nazwy modułów zamiast nazw technicznych.
1.1.0
- Eksport raportu do PDF i CSV.
- Konfigurowalny próg ostrzeżenia i próbkowanie ruchu.
Starsze wersje (1)
1.0.0
- Pierwsza wersja modułu.