Loading video player...
Pernah debug bug di microservices yang lompat-lompat antar service, dan akhirnya nyerah cuma karena nggak tau request nyangkut di mana? Ini akhir dari penderitaan itu. Di video ini, kita bangun 4 microservices polyglot dari nol dengan stack yang sengaja dibikin "berantakan": - Order Service - Java 21 + Spring Boot 3 - Product Service - Bun + TypeScript - Payment Service - Go - Notification Service - Node.js + Express - PostgreSQL untuk semua database (4 schema terpisah) Empat bahasa berbeda, empat runtime berbeda - dan kita sambung semua nya pake OpenTelemetry + Jaeger UI supaya bisa lihat satu trace lengkap dari awal request sampai akhir, lewat semua service, lengkap sampai ke query SQL-nya. Yang kalian dapet di video ini: - Setup OpenTelemetry untuk 4 bahasa berbeda - masing-masing punya pendekatan sendiri (Java agent zero-code, manual instrumentation di Bun, otelhttp + otelpgx di Go, auto-instrumentations di Node) - Cara propagasi trace antar service via W3C TraceContext header - biar trace ID konsisten dari ujung ke ujung - Pakai Jaeger UI buat ngebedah waterfall trace, cari span yang lambat, dan lokasiin error dengan cepat - Trik real-world yang biasa nggak diomongin di tutorial: gimana caranya ngirim trace ID ke client (buat dipake di support ticket), dan gimana trace non-API call seperti goroutine fire-and-forget yang context-nya dibatalin abis HTTP response selesai Bonus drama: video ini ada bug live yang harus kita debug pake Jaeger sendiri - kerasa banget kenapa observability bukan barang opsional di dunia microservices. Source code lengkapnya bisa di-clone di sini: https://github.com/ProgrammerZamanNow/opentelemetry-demo-microservices ===== TIMELINE ===== 0:00 Intro 1:10 Pengenalan OpenTelemetry 7:31 Membuat Microservices 13:18 Test Microservices 16:49 Implementasi OpenTelemetry di Microservices 22:05 Menggunakan Jaeger UI 25:02 Tracing Problem di OpenTelemetry 29:09 Trik Memberi Informasi Trace ke Client 30:44 OpenTelemetry untuk Non API Call 31:47 Outro ===== SOURCE CODE ===== https://github.com/ProgrammerZamanNow/opentelemetry-demo-microservices ===== STACK & TOOLS ===== - Java 21, Spring Boot 3.3, OpenTelemetry Java Agent 2.10 - Bun 1.1, TypeScript, @opentelemetry/sdk-node (manual instrumentation) - Go 1.22, otelhttp, otelpgx, pgx/v5 - Node.js 20, Express, @opentelemetry/auto-instrumentations-node - PostgreSQL 16 - Jaeger 1.69 (all-in-one, OTLP HTTP receiver) - Podman / Docker Compose #opentelemetry #jaeger #microservices #observability #springboot #golang #nodejs #bun #typescript #java #postgresql #docker #podman #distributedtracing #devops #backend #softwareengineering JOIN PREMIUM : https://www.youtube.com/ProgrammerZamanNow/join DISCORD PREMIUM : https://www.youtube.com/post/UgxBHnvjdwwAioDHe0x4AaABCQ Donasi : Saweria : https://saweria.co/ProgrammerZamanNow Social Media : Instagram : https://www.instagram.com/ProgrammerZamanNow Facebook : https://www.facebook.com/ProgrammerZamanNow Telegram : https://t.me/ProgrammerZamanNow Youtube : https://www.youtube.com/c/ProgrammerZamanNow