Course Outline
Dzień 1. Od zera do zinstrumentowanych usług
Signals + the collector as a local agent.
• Dlaczego OpenTelemetry?
• System bazowy: Node.js + Go + Python + Postgres + MinIO, bez telemetrii
• Ślady (traces) - automatyczna instrumentacja, propagacja kontekstu, OTLP
• Metryki (metrics) - liczniki, histogramy, egzemplarze (exemplars), wysyłanie danych przez OTLP (push)
• Przerwa
• Logi (logs) - eksport przez OTLP, atrybuty zasobów, korelacja z trace'ami
• Selektywna, ręczna instrumentacja
• Środowisko wielojęzyczne (polyglot) - usługa w Go i jeden trace obejmujący Node.js oraz Go
• Collector jako lokalny agent - aplikacje przestają znać szczegóły backendów
• Podsumowanie i pytania (Q&A)
Oczekiwane rezultaty dnia 1
• Zinstrumentowanie usług w co najmniej dwóch językach programowania i zebranie wszystkich trzech sygnałów w jednym backendzie.
• Zrozumienie różnic między atrybutami zasobów (resource attributes), spanów (span attributes) i logów oraz zasad propagacji kontekstu.
• Praktyczne poznanie problemów związanych z konfiguracją eksporterów bezpośrednio w aplikacjach - i zrozumienie, dlaczego warto przenieść tę odpowiedzialność do Collectora.
Dzień 2. Collector w środowisku produkcyjnym
Receivers / processors / exporters - pipelines that survive production.
• Powtórka - potoki przetwarzania (pipelines), memory_limiter i batch, agent a gateway
• Rozsyłanie danych do wielu backendów (fan-out) - jeden Collector, dwa backendy, niezależność od dostawcy
• Kubernetes - agent jako DaemonSet, gateway, RBAC, pułapka związana z równoważeniem obciążenia gRPC
• Przerwa
• Logi na dużą skalę - wysyłanie przez OTLP a odczyt plików (file tailing), parsery, zapamiętywanie pozycji odczytu (offsets)
• Kontrola przeciążenia (backpressure) - trwałe kolejki, odrzucanie danych zamiast doprowadzania do błędu OOM
• Monitorowanie samego Collectora - jego metryki oraz spanmetrics i metryki RED
• Potoki i procesory - wzbogacanie danych, filtrowanie, redakcja danych wrażliwych za pomocą OTTL
• Próbkowanie (sampling) — polityki oparte na całych trace'ach (tail-based sampling), zachowywanie błędów, wpływ na metryki
• Ćwiczenie podsumowujące (opcjonalne / praca domowa) - własny komponent przy użyciu OTel Builder
Oczekiwane rezultaty dnia 2
• Zaprojektowanie i uzasadnienie architektury z agentem i gatewayem zarówno dla Dockera, jak i Kubernetesa.
• Zapewnienie odporności na niedostępność backendu oraz potwierdzenie jej działania za pomocą metryk samego Collectora.
• Wdrożenie redakcji danych wrażliwych, filtrowania i próbkowania jako konfiguracji podlegającej przeglądom i przechowywanej w systemie Git.
Requirements
-
Wymagania wstępne
• Umiejętność czytania i rozumienia kodu w Node.js, Go i Pythonie.
• Docker w wersji 24 lub nowszej oraz Docker Compose w wersji 2.24 lub nowszej.
• Minimum 8 GB pamięci RAM.
• Podstawowa znajomość Gita.
Wcześniejsza znajomość OpenTelemetry ani Grafany nie jest wymagana.Organizacja szkolenia
Przygotowanie przed szkoleniem
• Zainstalowany Docker.
• Wstępne pobranie obrazu grafana/otel-lgtm (ok. 1 GB).
• Skopiowanie pliku .env.example do .env.
• Opcjonalnie: klucz API z serwisu weatherapi.com.
Testimonials (2)
All of the training was great. Especially liked the training documentation to reference. Looking forward to the Advanced Training, when we are ready.
Amy Gregg - Qualfon
Course - Boomi Integration Fundamentals
I've find out new interesting things about Lambda and Serverless