Dokumentacja
Typy monitorów
Jeden monitor to jeden cel sprawdzany w Twoim interwale. Każdy monitor główny zajmuje jedno miejsce w Twoim planie; dodatkowe sprawdzenia, które z nim przychodzą (SSL, wygaśnięcie domeny, historia DNS, PageSpeed), nie zajmują.
Strona (HTTP / HTTPS)
Żądanie GET do strony, z podążaniem za maksymalnie 5 przekierowaniami.
- Działa oznacza odpowiedź
2xxlub3xx(albo dokładnie ustawiony przez Ciebie status). - Słowo kluczowe: opcjonalnie wymagaj słowa na stronie albo wymagaj, by go nie było (przydatne dla „maintenance” lub tekstu błędu).
- Przy każdym sprawdzeniu zapisujemy czas odpowiedzi serwera w podziale na DNS, połączenie, TLS i czas do pierwszego bajtu. Waga całej strony (JavaScript, CSS, obrazy i fonty) pochodzi z Google PageSpeed (zobacz wydajność).
Zawieszony hosting, zaparkowane domeny i strony domyślne
Niektóre niedziałające strony nadal odpowiadają 200. Rozpoznajemy trzy przypadki i pokazujemy je jako awarię, bo odwiedzający też nie widzą strony:
- Zawieszony hosting: dostawca zamiast strony pokazuje komunikat o zawieszeniu (cPanel, DirectAdmin). Zwykle nieopłacona faktura lub przekroczone zasoby.
- Zaparkowana domena: strona parkingowa lub z ofertą sprzedaży (GoDaddy, Sedo, ParkingCrew, Bodis, Dan.com, Afternic, HugeDomains, Namecheap). Zwykle wygasła rejestracja albo DNS wskazujący na rejestratora.
- Domyślna strona serwera: domyślna strona nginx, Apache, IIS, cPanel, Plesk lub DirectAdmin. Zwykle brak plików strony, DNS wskazujący na niewłaściwy serwer albo zresetowana konfiguracja serwera.
Dopasowujemy tylko dokładne sygnatury (adres, na który przekierowuje panel, tytuł strony domyślnej, adres usługi parkingowej), nigdy słowa w Twojej treści, więc strona, która pisze o zawieszeniach, nie jest dotknięta. Nowo dodana strona, która już pokazuje jedną z tych stron, to niedokończona konfiguracja: brak incydentu, dopóki nie pokaże prawdziwej strony. Jeśli celowo monitorujesz serwer bez strony, włącz Ustawienia → Domyślna strona serwera jest oczekiwana. Strony zawieszenia i parkingu zawsze liczą się jako awaria.
Strony chronione hasłem
Strony testowe i deweloperskie są często chronione przez HTTP Basic auth. Bez hasła taka strona odpowiada 401, a my pokazujemy to jako Wymagane hasło, nie jako awarię.
- Podaj nazwę użytkownika i hasło przy dodawaniu strony (Strona jest chroniona hasłem (HTTP Basic auth)) albo później w Ustawienia → Ochrona hasłem monitora. Wysyłamy je przy każdym sprawdzeniu jako nagłówek
Authorization. Hasło jest przechowywane w postaci zaszyfrowanej i nigdy więcej nie jest wyświetlane. - Jeśli strona odrzuca wysyłane przez nas hasło (zostało zmienione), monitor pokazuje Hasło odrzucone.
- Nowo dodana strona, która prosi o hasło, to niedokończona konfiguracja, nie awaria: brak incydentu, dopóki go nie podasz.
- Odrzucone hasło to ostrzeżenie, nie awaria: bez SMS-a i bez wpływu na dostępność, bo nie widzimy, czy strona działa.
- Strona, która była otwarta, a nagle prosi o hasło, to awaria: odwiedzający też nie mogą jej otworzyć.
- Obsługujemy tylko Basic auth. Strona, która wymaga Digest auth, jest tak oznaczona; przepuść nasze sprawdzenia za pomocą nagłówka.
- Google PageSpeed nie działa dla strony chronionej hasłem: nie może wysłać hasła i zmierzyłby tylko okno logowania.
- Potwierdzanie własności plikiem działa: przy pobieraniu pliku wysyłamy to samo hasło.
Port TCP
Otwiera połączenie z portem i je zamyka. Nic nie jest wysyłane: nie posługujemy się protokołem usługi, więc monitor TCP mówi, że port przyjmuje połączenia, a nie, że usługa za nim działa prawidłowo. db.example.com:5432 i db.example.com:6379 to dwa monitory.
Ping
Żądania ICMP echo do nazwy hosta lub adresu IP. Niektóre sieci odrzucają ICMP; jeśli działający serwer nigdy nie odpowiada, użyj monitora TCP.
Endpoint API
Żądanie z Twoją metodą (GET, POST, PUT, PATCH, DELETE, HEAD), nagłówkami i treścią. Nagłówki są przechowywane w postaci zaszyfrowanej, więc używaj ich do kluczy API.
- Działa oznacza domyślnie odpowiedź
2xxalbo dokładnie ustawiony przez Ciebie status. - Asercje: do 5 sprawdzeń odpowiedzi JSON. Ścieżka używa kropek, a dla elementów listy liczb:
data.status,items.0.id.
| Operator | Przechodzi, gdy |
|---|---|
| equals / not equals | wartość pod ścieżką jest (nie jest) dokładnie podaną wartością |
| contains | wartość zawiera podany tekst |
| less than / greater than | liczba jest mniejsza / większa od podanej wartości |
| exists / not exists | ścieżka (nie) występuje w odpowiedzi |
Odpowiedź, która nie jest JSON-em (na przykład strona błędu HTML), nie spełnia żadnej asercji i ma własny komunikat błędu, więc łatwo ją rozpoznać.
Heartbeat cron
Odwrotnie: to Twoje zadanie wywołuje nas, gdy się uruchamia. Zobacz heartbeaty cron. Heartbeaty mają własny limit i nie zajmują miejsc na monitory.