Grupa System w menu Plik ▸ System — oraz Start ▸ System — otwiera trzynaście okien na sam serwer. Są dostępne tylko dla administratorów i każde z nich wyłącznie odczytuje: nic w tej grupie nie może zmienić serwera, i to odróżnia ją od sąsiedniej grupy Admin.
Od czego zacząć
Overview to okno, które warto otworzyć jako pierwsze. Pokazuje, na jakich wersjach Erlanga i Elixira zbudowano serwer, jak długo działa, ile ruchu przez niego przeszło i jak blisko jest trzech limitów, które by go zatrzymały: atomów, portów i procesów. Poniżej jeden pasek dzieli pamięć serwera na sześć rzeczy, które ją zajmują.
App Info odpowiada na drugie z pierwszych pytań — kto tu właściwie jest. Aktywne kanały, liczba różnych obecnych osób, trwające rozmowy, uruchomione wirtualne przestrzenie oraz lista kanałów, na których te osoby przebywają.
Listy
Procesy, aplikacje, tabele ETS, porty, gniazda i alokatory pamięci to to samo okno dla sześciu różnych zbiorów. Każde filtruje w trakcie pisania i sortuje według dowolnej kolumny ze strzałką — kliknij nagłówek raz, aby posortować według niego, a drugi raz, aby odwrócić kolejność.
Sama tabela jest ta sama, której używa każda lista w produkcie: przeciągnij prawą krawędź nagłówka, aby poszerzyć kolumnę, kliknij tę krawędź dwukrotnie, aby dopasować ją do najdłuższej wartości, a prawym przyciskiem myszy kliknij wiersz nagłówka, aby wyłączyć kolumny. Po zaznaczeniu wiersza można poruszać się po nich klawiszami strzałek, a Ctrl+C kopiuje zaznaczenie jako tekst rozdzielony tabulatorami. Listy i tabele obejmuje to wszystko.
- Procesy — posortuj według skrzynki pocztowej (Mailbox), aby znaleźć proces, który odbiera szybciej, niż nadąża przetwarzać. Tak od środka wygląda zablokowany serwer.
- Tabele ETS — posortowane według pamięci. Tabela w pamięci, której nikt nie czyści, to typowa przyczyna pamięci, która tylko rośnie.
- Gniazda — każde połączenie, które serwer trzyma otwarte, wraz z jego punktami końcowymi i licznikami bajtów.
- Alokatory pamięci — porównaj rozmiar bloku (Block size) z rozmiarem nośnika (Carrier size). Duża różnica oznacza fragmentację: pamięć, którą serwer zajmuje w systemie operacyjnym, ale nie może jej wykorzystać.
Metryki
Wykresy na żywo, po jednej grupie naraz: HTTP, LiveView, Baza danych, Oban, VM i Domena. Domena to własna instrumentacja serwera — tworzone kanały, osoby przychodzące i wychodzące, dołączenia do połączeń, ruch w wirtualnych przestrzeniach.
Wykresy zaczynają się puste i wypełniają w miarę zdarzeń. To nie błąd: przed otwarciem okna nic nie mierzono, a linia ciągnięta do lewej krawędzi byłaby zmyślona. Subskrybowana jest tylko grupa, którą oglądasz, więc okno nic nie kosztuje w przypadku grup, których nie śledzisz.
Kondycja Oban
Oban pokazuje system zadań w tle, stojący za trwałą pracą, taką jak odpytywanie feedów RSS, harmonogramy botów, dzienniki zdarzeń, porządkowanie i konserwacja, podglądy linków oraz trwałość preferencji. Karty nagłówkowe rozdzielają kondycję nadzorcy, aktywne zadania, ponawialne lub odrzucone błędy, pokrycie zadaniami następczymi i oczekującą pracę domenową.
Przeczytaj tabelę kolejki przez stan pierwszy: Dostępne oznacza, że praca może działać teraz, Planowane oznacza, że czeka na swój czas, Wykonanie oznacza, że pracownik ma go, Odzyskiwalne środki Oban będzie próbował ponownie, a Wyrzucone oznacza próby zostały wyczerpane lub pracownik zrezygnował. Tabele umów następnie pokazują, czy RSS feedy i harmonogramy bot mają miejsca pracy następców, czy zadania event- log są kopii zapasowej, i czy utrzymanie lub trwałość pracy jest w tyle.
Dane systemu operacyjnego i statystyki bazy danych
OS Data to widok z zewnątrz serwera: procesory hosta, średnie obciążenie, pamięć i dyski. Serwer może wyglądać zdrowo, choć maszyna, którą współdzieli, już nie. Odczyty, których host nie zgłasza, są pokazane jako myślnik, a nie jako zero — to dwa różne fakty.
Database Stats uruchamia jeden raport diagnostyczny naraz w bazie PostgreSQL: współczynniki trafień w pamięci podręcznej, nieużywane indeksy, rozdęcie tabel, długo trwające zapytania, co kogo blokuje. Nic nie działa, dopóki nie wybierzesz raportu, bo to prawdziwe zapytania do działającej bazy danych.
Log na żywo
Końcówka logu tego, co serwer zapisuje w tej chwili. Strumień płynie dopiero po naciśnięciu Stream i zatrzymuje się w chwili naciśnięcia Stop lub zamknięcia okna — strumień logów, którego nikt nie ogląda, to koszt bez odbiorcy.
Jeśli wybrany poziom jest niższy niż poziom, na którym loguje sam serwer, okno informuje o tym, zamiast milczeć. Wpisy poniżej poziomu serwera są odrzucane, zanim jakiekolwiek okno je zobaczy, bez względu na to, jak długo będziesz czekać.
Uczciwe czytanie wyników
Listy pokazują pierwsze wiersze przefiltrowanego zbioru, a liczba nad tabelą zawsze podaje, ile pozycji pasuje. „50 z 771” oznacza, że widzisz pierwszych pięćdziesiąt — nigdy nie zakładaj, że lista jest kompletna tylko dlatego, że wypełniła okno.
Żadne z tych okien nie odświeża się samo. Każde przejście kosztuje serwer realną pracę, więc odświeżanie to przycisk, który naciskasz, a nie licznik, o którym zapominasz, że go uruchomiłeś. Wyjątkiem jest Metrics: z natury jest to subskrypcja na żywo i kończy się po zamknięciu okna.