Śledzenie rozproszone i zdarzenia
Uzupełnij zestaw narzędzi do obserwowalności o śledzenie rozproszone przepływów żądań oraz zdarzenia Kubernetes dostarczające sygnałów na poziomie klastra.
Śledzenie rozproszone i zdarzenia to bezpłatna lekcja DevOps Bootcamp na CoddyKit. To lekcja 4 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej DevOps Bootcamp, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Trzy filary obserwowalności
Obserwowalność opiera się na trzech filarach: logach, metrykach i śladach. Logi i metryki zostały już omówione; ta lekcja wprowadza śledzenie oraz zdarzenia Kubernetes.
Czym jest śledzenie rozproszone
Śledzenie rozproszone śledzi pojedyncze żądanie podczas jego przechodzenia przez wiele usług. Pokazuje, gdzie zużywany jest czas i która usługa spowodowała błąd.
Spany i ślady
Ślad to pełna droga żądania. Każdy krok jest spanem zawierającym czas rozpoczęcia, czas trwania i metadane. Spany zagnieżdżają się, tworząc drzewo.
# A trace for one checkout request
# trace_id: abc123
# span: api-gateway (40ms)
# span: order-service (25ms)
# span: db-query (15ms)
# span: payment-service (10ms)Propagowanie kontekstu
Aby śledzenie działało, usługi przekazują kontekst śladu w nagłówkach żądań, dzięki czemu każdy kolejny etap zostaje powiązany z tym samym śladem.
# W3C Trace Context header
traceparent: 00-abc123def456-00f067aa0ba902b7-01OpenTelemetry
OpenTelemetry (OTel) to standard instrumentowania aplikacji i eksportowania śladów. OTel Collector może działać w klastrze, odbierając i przekazując spany.
Backendy śledzenia
Spany są wysyłane do backendu, takiego jak Jaeger lub Tempo, który przechowuje i wizualizuje ślady, umożliwiając analizowanie wolnych żądań z większą szczegółowością.
# deploy a collector that exports to Jaeger
kubectl get pods -n observability -l app=otel-collectorZdarzenia Kubernetes
Niezależnie od śladów aplikacji Kubernetes emituje zdarzenia opisujące działania klastra: planowanie, pobieranie obrazów, nieudane sondy i wiele innych.
kubectl get events --sort-by=.lastTimestampOdczytywanie zdarzeń zasobu
kubectl describe pokazuje zdarzenia powiązane z konkretnym obiektem. Często jest to najszybszy sposób, aby dowiedzieć się, dlaczego Pod utknął.
kubectl describe pod my-app
# Events:
# Warning FailedScheduling no nodes available
# Normal Scheduled assigned to node-2
# Warning BackOff restarting failed containerZdarzenia są krótkotrwałe
Domyślnie zdarzenia wygasają po około godzinie. Aby zachować długoterminową historię klastra, eksportuj je do backendu logów lub zdarzeń, żeby nie utracić tych informacji.
Korelowanie sygnałów
Prawdziwa siła tkwi w korelowaniu wszystkich źródeł: skok wartości metryki prowadzi do śladu, ślad wskazuje usługę, a jej logi i zdarzenia wyjaśniają przyczynę problemu.
Kiedy sięgnąć po śledzenie
- Żądanie jest wolne, ale nie wiadomo, która usługa jest za to odpowiedzialna
- Błędy pojawiają się głęboko w łańcuchu mikrousług
- Trzeba zrozumieć zależności między usługami
Szybkie sprawdzenie
Sprawdź swoją wiedzę na temat śledzenia.
Podsumowanie
Poznałeś trzeci filar obserwowalności: śledzenie rozproszone śledzi żądania przechodzące przez usługi za pomocą spanów i propagowania kontekstu, często z użyciem OpenTelemetry oraz Jaeger lub Tempo. Dowiedziałeś się także, jak odczytywać krótkotrwałe zdarzenia Kubernetes na potrzeby diagnostyki klastra oraz jak korelować ze sobą logi, metryki, ślady i zdarzenia.
Często zadawane pytania
Czy lekcja „Śledzenie rozproszone i zdarzenia” jest bezpłatna?
Tak — pełny tekst „Śledzenie rozproszone i zdarzenia” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu DevOps Bootcamp, przejdź na CoddyKit PRO. Kurs DevOps Bootcamp zawiera 4 lekcji w sumie.
Co nauczysz się w „Śledzenie rozproszone i zdarzenia”?
Uzupełnij zestaw narzędzi do obserwowalności o śledzenie rozproszone przepływów żądań oraz zdarzenia Kubernetes dostarczające sygnałów na poziomie klastra. Ćwiczysz DevOps Bootcamp z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć DevOps Bootcamp?
Nie wymagamy żadnego doświadczenia. DevOps Bootcamp w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 4 z 4.
Ile czasu zajmuje lekcja „Śledzenie rozproszone i zdarzenia”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji DevOps Bootcamp?
Tak. Każda lekcja DevOps Bootcamp zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Logowanie za pomocą kubectl logs
- Metryki z Prometheus i Grafana
- Kontrole stanu: sondy liveness i readiness
- Śledzenie rozproszone i zdarzenia