Prometheus w pełnej gotowości

Book description

Monitorowanie wydajności systemu jest ważnym zadaniem i nie polega tylko na obserwacji pracy procesora. Trzeba się orientować, pod jakim obciążeniem pracuje baza danych, czy przepustowość urządzeń sieciowych jest wystarczająca i jaki jest koszt niepełnego użycia bufora. Warto też wiedzieć, czy stopień wykorzystania droższych elementów uzasadnia ich utrzymywanie.

W tej książce znajdziesz bezcenne wskazówki dotyczące wdrażania serwera Prometheus i jego używania w rzeczywistych rozwiązaniach.

Julius Volz, współtwórca oprogramowania Prometheus

To drugie, zaktualizowane wydanie przewodnika po systemie Prometheus. Znajdziesz w nim wyczerpujące wprowadzenie do tego oprogramowania, a także wskazówki dotyczące monitorowania aplikacji i infrastruktury, tworzenia wykresów, przekazywania ostrzeżeń, bezpośredniej instrumentacji kodu i pobierania wskaźników pochodzących z systemów zewnętrznych. Zrozumiesz zasady konfiguracji systemu Prometheus, komponentu Node Exporter i menedżera ostrzeżeń Alertmanager. Zapoznasz się też z nowymi funkcjonalnościami języka PromQL, dostawców mechanizmu odkrywania usług i odbiorców menedżera ostrzeżeń Alertmanager. Dokładnie zaprezentowano tu również zagadnienia bezpieczeństwa po stronie serwera, w tym mechanizm TLS i uwierzytelniania podstawowego.

W książce między innymi:

czym jest Prometheus i jak wygląda jego architektura
monitorowanie infrastruktury za pomocą komponentów takich jak Node Exporter
instrumentacja w kodzie aplikacji
tworzenie paneli sterowania za pomocą Grafany
współpraca oprogramowania Prometheus i Kubernetes

Dzięki najlepszym praktykom i wskazówkom dotyczącym instrumentacji w kodzie ta książka pomoże Ci w niezawodnym monitorowaniu usług!

TJ Hoplock, starszy inżynier monitorowania, NS1

Table of contents

  1. Wprowadzenie
    1. Rozszerzanie znanego
    2. Ewolucja systemu Prometheus
    3. Konwencje zastosowane w książce
    4. Użycie przykładowych kodów
    5. Podziękowania
  2. Część I. Wprowadzenie
  3. Rozdział 1. Czym jest Prometheus?
    1. Czym jest monitorowanie?
      1. Krótka i niepełna historia monitorowania
      2. Kategorie monitorowania
        1. Profilowanie
        2. Śledzenie
        3. Rejestrowanie danych
        4. Wskaźniki
    2. Architektura systemu Prometheus
      1. Biblioteki klienta
      2. Komponenty eksportujące
      3. Odkrywanie usług
      4. Zbieranie danych
      5. Pamięć masowa
      6. Panele sterowania
      7. Reguły rejestrowania i ostrzeżeń
      8. Zarządzanie ostrzeżeniami
      9. Długoterminowa pamięć masowa
    3. Czym Prometheus nie jest?
  4. Rozdział 2. Rozpoczęcie pracy z systemem Prometheus
    1. Uruchamianie systemu Prometheus
    2. Używanie przeglądarki wyrażenia
    3. Uruchamianie komponentu Node Exporter
    4. Ostrzeganie
  5. Część II. Monitorowanie aplikacji
  6. Rozdział 3. Instrumentacja
    1. Prosty program
    2. Licznik
      1. Zliczanie wyjątków
      2. Zliczanie wielkości
    3. Miernik
      1. Używanie miernika
      2. Wywołanie zwrotne
    4. Podsumowanie
    5. Histogram
      1. Kubełki
    6. Instrumentacja testów jednostkowych
    7. Podejścia w zakresie instrumentacji
      1. Dlaczego należy stosować instrumentację?
        1. Instrumentacja usługi
        2. Instrumentacja biblioteki
      2. Jak daleko powinna sięgać instrumentacja?
      3. Dlaczego należy nadawać nazwy wskaźnikom?
        1. Znaki
        2. Styl snake_case
        3. Przyrostki wskaźnika
        4. Jednostki
        5. Nazwa
        6. Biblioteka
  7. Rozdział 4. Ekspozycja
    1. Python
      1. WSGI
      2. Twisted
      3. Wiele procesów i Gunicorn
    2. Go
    3. Java
      1. HTTPServer
      2. Servlet
    4. Pushgateway
    5. Most
    6. Analizator składni
    7. Format ekspozycji tekstu
      1. Typy wskaźników
      2. Etykiety
      3. Cytowanie znaków
      4. Znaczniki czasu
      5. Sprawdzenie wskaźników
    8. OpenMetrics
      1. Typy wskaźników
      2. Etykiety
      3. Znaczniki czasu
  8. Rozdział 5. Etykiety
    1. Czym są etykiety?
    2. Etykiety instrumentacji i systemów przeznaczonych do monitorowania
    3. Instrumentacja
      1. Wskaźnik
      2. Wiele etykiet
      3. Element potomny
    4. Agregacja
    5. Wzorce etykiet
      1. Enum
      2. Info
    6. Kiedy używać etykiet?
      1. Liczność
  9. Rozdział 6. Tworzenie paneli sterowania za pomocą Grafany
    1. Instalacja
    2. Źródło danych
    3. Panele sterowania
      1. Unikanie ściany wykresów
    4. Panel szeregu czasowego
      1. Kontrolki czasu
    5. Panel Stat
    6. Panel Table
    7. Panel State Timeline
    8. Zmienne szablonu
  10. Część III. Monitorowanie infrastruktury
  11. Rozdział 7. Node Exporter
    1. Komponent pobierający dane dotyczące procesora
    2. Komponent pobierający dane systemu plików
    3. Komponent pobierający dane dysku
    4. Komponent pobierający dane netdev
    5. Komponent pobierający dane meminfo
    6. Komponent pobierający dane hwmon
    7. Komponent pobierający dane stat
    8. Komponent pobierający dane uname
    9. Komponent pobierający dane systemu operacyjnego
    10. Komponent pobierający dane loadavg
    11. Komponent pobierający dane dotyczące obciążenia
    12. Komponent pobierający dane z pliku tekstowego
      1. Używanie komponentu pobierającego dane z pliku tekstowego
      2. Znaczniki czasu
  12. Rozdział 8. Mechanizm wykrywania usług
    1. Mechanizmy wykrywania usług
      1. Podejście statyczne
      2. Bazujący na pliku mechanizm wykrywania usług
      3. Bazujący na HTTP mechanizm wykrywania usług
      4. Consul
      5. EC2
    2. Zmiana etykiety
      1. Wybór danych, które mają być pobierane
      2. Etykiety systemów przeznaczonych do monitorowania
        1. Akcja replace
        2. Etykiety job, instance i __address__
        3. Akcja labelmap
        4. Wielkość znaków etykiety
        5. Listy
    3. Jak pobierać dane?
      1. metric_relabel_configs
        1. Akcje labeldrop i labelkeep
      2. Kolizje etykiet i opcja honor_labels
  13. Rozdział 9. Kontenery i Kubernetes
    1. cAdvisor
      1. Procesor
      2. Pamięć
      3. Etykiety
    2. Kubernetes
      1. Działanie w Kubernetes
      2. Mechanizm wykrywania usług
        1. Mechanizm node
        2. Mechanizm service
        3. Mechanizm endpointslice
        4. Mechanizm pod
        5. Mechanizm ingress
      3. Komponent kube-state-metrics
    3. Wdrożenia alternatywne
  14. Rozdział 10. Najczęściej używane komponenty eksportujące
    1. Consul
    2. MySQLd
    3. Komponent eksportujący Grok
    4. Czarna skrzynka
      1. Próbkowanie za pomocą ICMP
      2. Próbkowanie za pomocą TCP
      3. Próbkowanie za pomocą HTTP
      4. Próbkowanie za pomocą DNS
      5. Konfiguracja systemu Prometheus
  15. Rozdział 11. Współpraca z innymi systemami monitorowania
    1. Inne systemy monitorowania
    2. InfluxDB
    3. StatsD
  16. Rozdział 12. Tworzenie komponentu eksportującego
    1. Telemetria narzędzia Consul
    2. Niestandardowy komponent pobierający dane
      1. Etykiety
    3. Wskazówki
  17. Część IV. PromQL
  18. Rozdział 13. Wprowadzenie do PromQL
    1. Podstawy agregacji
      1. Miernik
      2. Licznik
      3. Podsumowanie
      4. Histogram
    2. Selektory
      1. Dopasowania
      2. Wektor natychmiastowy
      3. Wektor zakresu
      4. Podzapytanie
      5. Przesunięcie
      6. Modyfikator at
    3. API HTTP
      1. Punkt końcowy query
      2. Punkt końcowy query_range
        1. Dane wyrównane
  19. Rozdział 14. Operatory agregacji
    1. Grupowanie
      1. Klauzula without
      2. Klauzula by
    2. Operatory
      1. sum
      2. count
        1. Unikatowe wartości etykiet
      3. avg
      4. group
      5. stddev i stdvar
      6. min i max
      7. topk i bottomk
      8. quantile
      9. count_values
  20. Rozdział 15. Operatory binarne
    1. Praca z wartościami skalarnymi
      1. Operatory arytmetyczne
      2. Operator trygonometryczny
      3. Operatory porównania
        1. Modyfikator bool
    2. Dopasowanie wektora
      1. Dopasowanie typu jeden do jednego
      2. Dopasowanie typu wiele do jednego i group_left
      3. Wiele do wielu i operatory logiczne
        1. Operator or
        2. Operator unless
        3. Operator and
    3. Kolejność wykonywania operatorów
  21. Rozdział 16. Funkcje
    1. Zmiana typu
      1. vector()
      2. scalar()
    2. Funkcje matematyczne
      1. abs()
      2. ln(), log2() i log10()
      3. exp()
      4. sqrt()
      5. ceil() i floor()
      6. round()
      7. clamp(), clamp_max() i clamp_min()
      8. sgn()
      9. Funkcje trygonometryczne
    3. Data i godzina
      1. time()
      2. minute(), hour(), day_of_week(), day_of_month(), day_of_year(), days_in_month(), month() i year()
      3. timestamp()
    4. Etykiety
      1. label_replace()
      2. label_join()
    5. Brakujące szeregi czasowe oraz funkcje absent() i absent_over_time()
    6. Sortowanie za pomocą sort() i sort_desc()
    7. Histogram za pomocą funkcji histogram_quantile()
    8. Liczniki
      1. rate()
      2. increase()
      3. irate()
      4. resets()
    9. Zmiana mierników
      1. changes()
      2. deriv()
      3. predict_linear()
      4. delta()
      5. idelta()
      6. holt_winters()
    10. Agregacja na przestrzeni czasu
  22. Rozdział 17. Reguły rejestrowania
    1. Używanie reguł rejestrowania
    2. Kiedy używać reguł rejestrowania?
      1. Zmniejszenie liczności
      2. Tworzenie funkcji wektora zakresu
      3. Reguły dla API
      4. Jak nie używać reguł?
    3. Nazewnictwo reguł rejestrowania
  23. Część V. Ostrzeganie
  24. Rozdział 18. Ostrzeganie
    1. Reguły ostrzegania
      1. for
      2. Etykiety ostrzeżenia
      3. Adnotacje i szablony
      4. Jak wygląda dobre ostrzeżenie?
    2. Konfigurowanie menedżera ostrzeżeń Alertmanager w oprogramowaniu Prometheus
      1. Etykiety zewnętrzne
  25. Rozdział 19. Menedżer ostrzeżeń Alertmanager
    1. Potok powiadomienia
    2. Plik konfiguracyjny
      1. Drzewo routingu
        1. Grupowanie
        2. Ograniczanie i powtarzanie
      2. Odbiorcy
        1. Szablony powiadomień
        2. Powiadomienia rozwiązane
      3. Wstrzymywanie
    3. Interfejs sieciowy menedżera ostrzeżeń Alertmanager
  26. Rozdział 20. Zapewnienie bezpieczeństwa po stronie serwera
    1. Funkcje bezpieczeństwa dostarczane przez system Prometheus
    2. Włączenie obsługi TLS
    3. Opcje zaawansowane TLS
    4. Włączenie uwierzytelniania podstawowego
  27. Rozdział 21. Zebranie wszystkiego w całość
    1. Planowanie wdrożenia
    2. Rozbudowa systemu Prometheus
    3. Podejście globalne z wykorzystaniem federacji
    4. Długoterminowa pamięć masowa
    5. Uruchamianie systemu Prometheus
      1. Sprzęt
      2. Zarządzanie konfiguracją
      3. Sieci i uwierzytelnianie
    6. Planowanie pod kątem awarii
      1. Klastrowanie Alertmanager
      2. Monitorowanie meta i cross
    7. Zarządzanie wydajnością działania
      1. Wykrywanie problemu
      2. Wyszukiwanie kosztownych wskaźników i systemów przeznaczonych do monitorowania
        1. Hashmod
      3. Zmniejszenie obciążenia
      4. Sharding poziomy
    8. Zarządzanie zmianami
    9. Uzyskiwanie pomocy
    10. O autorach
    11. Kolofon

Product information

  • Title: Prometheus w pełnej gotowości
  • Author(s): Julien Pivotto, Brian Brazil
  • Release date: February 2024
  • Publisher(s): Helion
  • ISBN: 9788328905290