# Monitoring i Alerty PrestaShop (DataFirefly Monitor)

> DataFirefly Monitor stale pilnuje Twojego sklepu PrestaShop 8 lub 9 i ostrzega, gdy przestaje działać, zgłasza błędy, zwalnia lub przestaje przyjmować płatności. Dokumentacja obejmuje instalację, zadanie cron, kanały powiadomień, każde…

- Strona: <https://www.datafirefly.com/pl/documentation/dfmonitor/>
- Język: pl
- Zaktualizowano: 2026-10-07
- Inne języki: [fr](https://www.datafirefly.com/documentation/dfmonitor/index.md), [en](https://www.datafirefly.com/en/documentation/dfmonitor/index.md), [es](https://www.datafirefly.com/es/documentation/dfmonitor/index.md), [de](https://www.datafirefly.com/de/documentation/dfmonitor/index.md), [it](https://www.datafirefly.com/it/documentation/dfmonitor/index.md), [nl](https://www.datafirefly.com/nl/documentation/dfmonitor/index.md), [pt](https://www.datafirefly.com/pt/documentation/dfmonitor/index.md)
- Indeks: <https://www.datafirefly.com/pl/documentation/llms.txt>

DataFirefly Monitor stale pilnuje Twojego sklepu PrestaShop 8 lub 9 i ostrzega, gdy przestaje działać, zgłasza błędy, zwalnia lub przestaje przyjmować płatności. Dokumentacja obejmuje instalację, zadanie cron, kanały powiadomień, każde wykrywanie i obsługę alertów.

## Instalacja

1. W panelu administracyjnym otwórz **Moduły > Menedżer modułów**, kliknij **Prześlij moduł** i wyślij plik `dfmonitor-1.1.0.zip`.
2. Moduł tworzy swoje tabele i zakładkę **Zaawansowane > Monitoring i alerty**. Przycisk Konfiguruj modułu prowadzi prosto do niej.
3. Podczas instalacji e-mail sklepu jest ustawiany jako odbiorca, a status _Błąd płatności_ jako status niepowodzenia. Dzienniki PrestaShop sprzed instalacji nie są importowane.

Moduł jest zgodny z PrestaShop od 8.0 do 9.x, multistore i wielojęzycznością. Nie używa zależności Composer. Aktualizacja z wersji 1.0.0 polega na przesłaniu nowego pliku ZIP: skrypt aktualizacji dodaje nowe kolumny i uzupełnia źródło już zapisanych błędów.

## Pierwsze kroki

Pulpit pokazuje listę uruchomienia w czterech krokach, dopóki nie zostanie ukończona: odebrać pierwsze powiadomienie, dodać zadanie cron, sprawdzić statusy nieudanej płatności, dodać zewnętrzny heartbeat. Każdy krok prowadzi do właściwej zakładki ustawień.

## Zadanie cron

Błędy krytyczne i nieudane płatności są zgłaszane w czasie rzeczywistym. Resztę (dostępność, czas odpowiedzi, płatności, zamówienia, serwer, raport) ocenia zaplanowane zadanie, które powinno działać co 5 minut.

### Cron serwera (zalecany)

```
*/5 * * * * php /sciezka/do/prestashop/modules/dfmonitor/cron.php
```

Dokładne polecenie ze ścieżką Twojego serwera znajdziesz w **Ustawienia > Zaplanowane sprawdzanie**, z przyciskiem Kopiuj.

### Cron przez URL

Jeśli hosting pozwala tylko na crony webowe, wywołuj adres URL chroniony tokenem z tej samej zakładki, z panelu hostingu lub usługi takiej jak cron-job.org. Odpowiada w JSON i działa także w trybie konserwacji. Przycisk **Wygeneruj nowy token** unieważnia poprzedni adres.

### Bez crona

Przy PHP-FPM opcja zapasowa bez crona uruchamia sprawdzanie z ruchu odwiedzających, gdy cron nie działał od 10 minut, po wysłaniu strony. Sprawdzanie dostępności i heartbeat nie działają w tym trybie, a nocna awaria bez wizyt może zostać niezauważona.

### Zewnętrzny heartbeat

Moduł nie może zgłosić całkowitej awarii serwera. Utwórz check w Healthchecks.io lub Better Stack i wklej jego adres w polu **Adres URL heartbeat**: jest wywoływany przy każdym uruchomieniu crona, a usługa ostrzeże Cię, gdy wywołania ustaną.

## Kanały powiadomień

Włącz dowolną liczbę kanałów w **Ustawienia > Kanały powiadomień**. Każdy kanał ma minimalną ważność (ostrzeżenie i krytyczny lub tylko krytyczny) i przycisk **Zapisz i wyślij test**, który zapisuje formularz, a potem wysyła prawdziwą wiadomość. Wynik ostatniej wysyłki widać pod nazwą kanału.

### E-mail

Podaj jednego lub kilku odbiorców oddzielonych przecinkami. E-maile korzystają z konfiguracji poczty PrestaShop (**Zaawansowane > E-mail**) i domyślnego języka sklepu.

### Telegram

1. W Telegramie otwórz **@BotFather**, wyślij `/newbot` i postępuj zgodnie z instrukcjami.
2. Wklej otrzymany token w polu **Token bota**.
3. Wyślij wiadomość do bota lub dodaj go do grupy, a następnie kliknij **Wykryj mój czat**: ID czatu zostanie uzupełnione automatycznie.

### Slack

W Slacku: **Apps > Incoming Webhooks > Add to Slack**, wybierz kanał i skopiuj adres URL webhooka, zaczynający się od `https://hooks.slack.com/`.

### Discord

W Discordzie: **Ustawienia serwera > Integracje > Webhooki > Nowy webhook**, a następnie **Kopiuj adres URL webhooka**.

### Webhook

Dla Zapier, Make, n8n, narzędzia dyżurowego lub własnego skryptu. Przy każdym nowym alercie, przypomnieniu i rozwiązaniu wysyłany jest POST JSON z nagłówkiem `X-DataFirefly-Event`:

```
{
  "event": "open",
  "alert": {
    "id": 42, "key": "payment:1", "type": "payment", "severity": "critical",
    "title": "...", "message": "...", "occurrences": 3,
    "first_at": "2026-10-07 16:35:00", "last_at": "2026-10-07 16:45:00",
    "ack_url": "https://..."
  },
  "shop": { "name": "...", "url": "https://..." },
  "sent_at": "2026-10-07T16:45:01+02:00"
}
```

Wartości `event` to `open`, `repeat`, `resolved` i `test`. Jeśli ustawiono sekret podpisu, każde żądanie zawiera nagłówek `X-DataFirefly-Signature: sha256=…`, czyli HMAC SHA-256 surowej treści z tym sekretem.

## Reguły alertów

- **Przypomnienie o trwającym alercie**: odstęp między dwoma powiadomieniami o tym samym problemie (domyślnie 60 minut).
- **Maksymalna liczba powiadomień na godzinę**: domyślnie 20, 0 oznacza brak limitu.
- **Komunikat o rozwiązaniu**: wiadomość jest wysyłana, gdy zgłoszony problem znika.
- **Godziny ciszy**: w wybranym przedziale wysyłane są tylko alerty krytyczne. Ostrzeżenie nadal otwarte na koniec przedziału zostaje wysłane przy następnym uruchomieniu crona.
- **Raport podsumowujący e-mailem**: wyłączony, codziennie lub w każdy poniedziałek o wybranej godzinie. Zawiera dostępność, czas odpowiedzi, błędy PHP, zamówienia, nieudane płatności, alerty z okresu i najczęstsze błędy.

### Wstrzymanie

Przycisk **Wstrzymaj** w nagłówku zawiesza powiadomienia na 30 minut, 2, 8 lub 24 godziny, na przykład podczas aktualizacji. Problemy są nadal wykrywane i rejestrowane; te, które pozostaną otwarte po zakończeniu przerwy, zostaną zgłoszone.

## Co wykrywa moduł

### Błędy PHP

Moduł przechwytuje błędy krytyczne i ostrzeżenia (opcjonalnie także uwagi i deprecjacje) w sklepie oraz, jeśli opcja jest zaznaczona, w panelu. Identyczne błędy są grupowane. Nowy błąd krytyczny natychmiast wywołuje alert krytyczny; alert wygasa bez wiadomości po 24 godzinach bez nowego wystąpienia. Alert o skoku pojawia się powyżej 100 błędów i ostrzeżeń w 15 minut (regulowane, 0 wyłącza). Dzienniki PrestaShop o ważności 3 i 4 są importowane przy każdym uruchomieniu crona.

Każdy błąd otrzymuje **prawdopodobne źródło**: moduł, motyw, override, skompilowany szablon lub rdzeń. Gdy błąd powstaje w rdzeniu, wybierany jest pierwszy moduł znaleziony w stosie wywołań.

### Czas odpowiedzi i dostępność

- Czas odpowiedzi jest mierzony na prawdziwych wizytach w sklepie. **Odsetek mierzonych stron** ustawia się od 1 do 100%; każda mierzona strona to jeden zapis do bazy.
- Alert pojawia się, gdy 95. percentyl w 15 minut przekracza próg (domyślnie 3000 ms), od 20 zmierzonych stron.
- Alert krytyczny pojawia się, gdy odsetek błędów serwera (HTTP 5xx lub błąd krytyczny PHP) przekracza 5% w 15 minut, przy co najmniej 5 błędach.
- Strona główna jest ładowana przy każdym uruchomieniu crona serwera; dwa kolejne niepowodzenia otwierają alert krytyczny „Sklep niedostępny”. W trybie konserwacji sprawdzanie jest wstrzymane.

### Płatności i zamówienia

- **Nieudane płatności**: zamówienia, które w ostatniej godzinie przeszły w jeden z wybranych statusów, z podziałem na moduły płatności. Domyślny próg: 3. Sprawdzanie uruchamia się też, gdy tylko zamówienie zmieni status. Zaznacz statusy, których Twoje moduły płatności używają przy odrzuceniu.
- **Konwersja płatności**: moduł rejestruje każdy koszyk, który dociera do kroku płatności, a następnie porównuje w 2-godzinnym oknie, kończącym się 30 minut przed sprawdzeniem, odsetek tych koszyków zamienionych w zamówienia ze zwykłym odsetkiem z 28 dni. Sprawdzanie zaczyna się po około 40 koszykach historii i 8 koszykach w oknie (regulowane).
- **Spadek zamówień**: zamówienia z ostatnich 3 godzin (regulowane) są porównywane ze średnią z tego samego przedziału z 4 poprzednich tygodni. Sprawdzanie jest pomijane, gdy oczekuje się mniej niż 4 zamówień. Zero zamówień zamiast zwykłej aktywności daje alert krytyczny.
- **Czułość**: niska, średnia (zalecana) lub wysoka. Wysoka ostrzega wcześniej, ale daje więcej fałszywych alarmów.

W multistore płatności, konwersja i zamówienia są oceniane osobno dla każdego sklepu.

### Stan serwera

- **Certyfikat SSL**: odczytywany co 6 godzin z domeny sklepu. Ostrzeżenie 14 dni przed wygaśnięciem (regulowane), alert krytyczny na 3 dni przed.
- **Miejsce na dysku**: ostrzeżenie poniżej 2048 MB wolnego miejsca (regulowane), alert krytyczny poniżej jednej czwartej tego progu. Na hostingu współdzielonym z limitem odczytana wartość może dotyczyć całego dysku serwera.
- **Nadzór crona**: gdy cron serwera już raz działał, po 30 minutach bez uruchomienia pojawia się alert z ruchu odwiedzających lub z panelu.

## Obsługa alertów

Problem otwiera jeden alert, aktualizowany, dopóki trwa. Zakładka **Alerty** pokazuje historię i wysłane powiadomienia z wynikiem każdej wysyłki.

- **Potwierdź**: zatrzymuje przypomnienia. Komunikat o rozwiązaniu nadal zostanie wysłany.
- **Zamknij**: zamyka alert. Jeśli problem trwa, przy następnym sprawdzeniu otworzy się nowy alert.

### Potwierdzanie z powiadomienia

Każde powiadomienie o alercie zawiera link **Potwierdź i zatrzymaj przypomnienia**. Otwiera on stronę potwierdzenia w sklepie, dostosowaną do telefonu; alert jest potwierdzany dopiero po zatwierdzeniu, więc skanery poczty nie potwierdzą go, otwierając link.

## Strona błędów PHP

Filtruj według ważności lub źródła, szukaj komunikatu, pliku lub strony. Rozwinięty błąd pokazuje stronę, kontroler, daty, pełny komunikat i, dla ostrzeżeń, stos wywołań. Przycisk **Kopiuj raport dla programisty** kopiuje tekst z wersją PrestaShop i PHP, plikiem, źródłem, stroną, liczbą wystąpień, komunikatem i stosem wywołań. **Wycisz** nadal zlicza błąd, ale już nigdy nie alarmuje.

## Dane i prywatność

- Adresy stron są zapisywane bez parametrów URL.
- Stos wywołań jest zapisywany bez argumentów funkcji.
- Ścieżka serwera i nazwa folderu administracyjnego są usuwane ze wszystkich zapisywanych i wysyłanych tekstów.
- Tokeny Telegram i ścieżki webhooków są maskowane w dzienniku powiadomień.
- Historia jest czyszczona domyślnie po 30 dniach (od 7 do 365 dni); zamknięte alerty są przechowywane 90 dni.

## Znane ograniczenia

- Błąd krytyczny, który wystąpi przed załadowaniem modułów, nie jest przechwytywany przez obsługę błędów; zgłoszą go sprawdzanie dostępności i odsetek 5xx.
- Strony Symfony panelu administracyjnego nie przechodzą przez hook używany do przechwytywania błędów w panelu.
- Konwersja płatności opiera się na hooku `displayPaymentTop`. Jeśli Twój moduł checkoutu na jednej stronie go nie wywołuje, wyłącz to sprawdzanie: spadek zamówień nadal jest pilnowany.

## Rozwiązywanie problemów

### Test e-mail się nie udaje

Sprawdź konfigurację w **Zaawansowane > E-mail** i wyślij tam testowy e-mail. Dokładny komunikat błędu pojawia się po teście i w zakładce Alerty.

### Nadal widać „Nie wykryto crona serwera”

Za cron serwera uznawany jest tylko cron CLI lub adres URL crona. Uruchom polecenie ręcznie przez SSH: wyświetli raport JSON. Jeśli się nie powiedzie, sprawdź z dostawcą hostingu ścieżkę do PHP CLI.

### Test Telegram zwraca „chat not found”

Bot może pisać tylko do rozmowy, która już do niego napisała. Wyślij mu wiadomość, a potem kliknij Wykryj mój czat.
