Śledzenie rozproszone z AWS X-Ray i ustrukturyzowane logowanie

Wdrażanie aplikacji na AWS

Dunieski Otano

Amazon Web Services Solutions Architect

Wolne żądanie, którego nikt nie mógł znaleźć

  • Jedno żądanie trwa cztery sekundy
  • Logi każdej usługi wyglądają dobrze osobno
  • Nikt nie widzi całej ścieżki

Lupa śledząca jedno wolne żądanie na mapie usług rozproszonych z czerwonym węzłem wąskiego gardła

Wdrażanie aplikacji na AWS

Co rozwiązuje śledzenie rozproszone

Odizolowane silosy logów poszczególnych usług na czerwono po lewej, a po prawej na zielono zunifikowana oś czasu śledzenia X-Ray łącząca to samo żądanie przez API Gateway, Lambda, DynamoDB i zewnętrzne API

  • Jedno żądanie przechodzi przez wiele usług
  • Same logi nie pokazują całej ścieżki
  • Ślad spaja całe żądanie w całość
  • Widać dokładnie, gdzie upłynął czas
Wdrażanie aplikacji na AWS

Segmenty, podsegmenty i mapa usług

  • Segment: praca wykonana przez jedną usługę
  • Podsegment: jednostka wewnątrz segmentu, np. wywołanie bazy danych
  • Mapa usług: wizualny graf wszystkich segmentów
  • Opóźnienia i błędy widoczne na każdym węźle

Anatomia śladu X-Ray: segment na usługę z podsegmentami dla wywołań bazy danych, złożone w graf mapy usług pokazujący opóźnienia i wskaźnik błędów na każdym węźle

Wdrażanie aplikacji na AWS

Adnotacje a metadane


Adnotacje

  • Indeksowane pary klucz-wartość, więc są filtrowane
  • Używaj ich do atrybutów, po których będziesz szukać, np. poziom klienta

Metadane

  • Dodatkowe szczegóły, nieindeksowane
  • Dołącz je dla kontekstu, ale nie można ich przeszukiwać
Wdrażanie aplikacji na AWS

Korelowanie logów z identyfikatorami śladu

  • Każdy ślad ma unikalny identyfikator śladu
  • Umieszczaj identyfikator śladu w ustrukturyzowanych logach
  • Przejdź od wolnego śladu do dokładnych linii logu
  • Logi i ślady tworzą jedno dochodzenie

Linia ustrukturyzowanego logu z wyróżnionym polem xray_trace_id, strzałka wskazująca z widoku śladu X-Ray na pasujące linie logu w CloudWatch Logs przy skorelowanym dochodzeniu

Wdrażanie aplikacji na AWS

Jak czytać mapę usług, by znaleźć wąskie gardło

Mapa usług X-Ray z wyróżnionym węzłem o wysokim opóźnieniu, przejście do osi czasu śladu pokazującej najdłuższy pasek segmentu zidentyfikowany jako wąskie gardło

  • Zacznij od mapy usług, nie od logów
  • Znajdź węzeł z najwyższym opóźnieniem
  • Przejdź do jego osi czasu śladu
  • Najdłuższy segment to twój podejrzany
Wdrażanie aplikacji na AWS

Śledzenie całego żądania

  • API Gateway, Lambda i wywołania zewnętrzne — wszystkie śledzone
  • Każda usługa dodaje swój segment do tego samego śladu
  • Jeden identyfikator śladu łączy logi i segmenty
  • Pełna widoczność każdego żądania od początku do końca

Rozproszony ślad od końca do końca: od API Gateway przez Lambda do DynamoDB i zewnętrznego API; jeden identyfikator śladu widoczny w nagłówku każdego segmentu łączący wszystkie logi i segmenty

Wdrażanie aplikacji na AWS

Czas na praktykę!

Wdrażanie aplikacji na AWS

Preparing Video For Download...