Get in Touch
 Duration 14 hours

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.

Number of participants


Price per participant

Testimonials (2)

Upcoming Courses

Related Categories