Konsep dan arsitektur X-Ray

Pemantauan dan Pemecahan Masalah AWS

John Q. Martin

Principal Consultant

Tantangan sistem terdistribusi

 

Aplikasi monolitik

  • Alur linier, dalam satu proses
  • Mudah di-debug

 

Aplikasi terdistribusi

  • Satu permintaan menyentuh banyak layanan, DB, API eksternal
  • Saat gagal, layanan mana penyebabnya?

Simpul kusut benang warna-warni yang menggambarkan sulitnya menelusuri satu permintaan di sistem terdistribusi

Pemantauan dan Pemecahan Masalah AWS

Apa itu AWS X-Ray?

 

X-Ray adalah layanan penelusuran terdistribusi yang:

  • Melacak permintaan lintas layanan end-to-end
  • Mengukur latensi dan mendeteksi error di tiap langkah
  • Memvisualisasikan arsitektur sebagai peta layanan

 

Contoh jalur permintaan:

  Diagram jalur permintaan yang mengalir melalui banyak layanan dalam penelusuran terdistribusi

Pemantauan dan Pemecahan Masalah AWS

Lima kemampuan inti

 

Lima kemampuan inti X-Ray: penelusuran permintaan, analisis kinerja, deteksi error, peta layanan, dan wawasan

Pemantauan dan Pemecahan Masalah AWS

Cara kerja tracing

 

Alur penelusuran terdistribusi: sebuah permintaan masuk ke Service A, yang memanggil Service B lalu Service C, masing-masing meneruskan Trace ID di header HTTP; setiap layanan mengirim segmen dengan Trace ID yang sama ke daemon X-Ray, yang meneruskannya ke X-Ray untuk dirakit menjadi satu trace lengkap

Pemantauan dan Pemecahan Masalah AWS

Propagasi Trace ID dan header

 

Format Trace ID:

Format Trace ID X-Ray dengan nomor versi, stempel waktu Unix dalam heksadesimal, dan pengenal unik

 

Header HTTP:

X-Amzn-Trace-Id:
  Root=1-5e8c1234-...;
  Parent=abc123;
  Sampled=1
  • Root, Trace ID, sama di semua layanan
  • Parent, ID segmen hulu
  • Sampled, 0 atau 1, ditelusuri atau dilewati
Pemantauan dan Pemecahan Masalah AWS

Daemon X-Ray

 

Fungsinya:

  • Mendengarkan pada port UDP 2000
  • Menerima data segmen dari aplikasi Anda
  • Menyangga, mengelompokkan, dan meneruskan ke X-Ray API
  • Memisahkan aplikasi Anda dari layanan X-Ray

 

Penerapan per lingkungan:

Penerapan daemon X-Ray per lingkungan: otomatis di Lambda, sebagai layanan di EC2, dan sidecar di ECS

Pemantauan dan Pemecahan Masalah AWS

Sampling

 

Aturan default:

  • Permintaan pertama per detik - selalu ditelusuri
  • 5% permintaan sisanya - di-sample

Bidang aturan kustom:

  • fixed_target - permintaan/dtk yang selalu ditelusuri
  • rate - persentase permintaan tambahan
  • priority - angka lebih rendah menang

 

Contoh strategi:

Rule 1 (priority 1):
  5xx errors -> 100% sampling

Rule 2 (priority 10):
  Normal traffic -> 5% sampling
Pemantauan dan Pemecahan Masalah AWS

Segmen

 

Apa yang dicatat segmen:

  • Nama layanan
  • Waktu mulai dan selesai
  • Trace ID
  • Detail permintaan dan respons HTTP
  • Akun dan region AWS

 

Status segmen:

Lima status segmen X-Ray: in progress, ok, error, fault, dan throttle

Pemantauan dan Pemecahan Masalah AWS

Subsegmen

 

Perbandingan linimasa: tanpa subsegmen satu batang total 800 ms; dengan subsegmen, 800 ms dipecah menjadi DynamoDB 50 ms, panggilan PaymentService 400 ms disorot sebagai hambatan, dan panggilan InventoryService 300 ms

Fungsi subsegmen:

  • Memberi pengukuran waktu rinci di dalam segmen
  • Melacak panggilan hilir
  • Memecah total 800 ms menjadi:
    • DynamoDB.PutItem: 50 ms
    • Panggilan PaymentService: 400 ms
    • Panggilan InventoryService: 300 ms

 

Namespace:

Tiga namespace subsegmen: aws untuk panggilan AWS, remote untuk HTTP eksternal, dan local untuk kode kustom

Pemantauan dan Pemecahan Masalah AWS

Anotasi

 

Fakta utama:

  • Pasangan kunci-nilai yang diindeks - dapat dicari dan difilter
  • Batas: 50 yang diindeks per trace
  • Tipe: string, number, boolean

Gunakan untuk:

  • user_id, order_id, environment
  • version, feature flags, kode error

 

Sintaks filter:

annotation.user_id = "user-123"
annotation.environment = "production"
AND annotation.version = "1.2.3"
Pemantauan dan Pemecahan Masalah AWS

Metadata

 

Fakta utama:

  • Tidak diindeks - tidak bisa dicari atau difilter
  • Tanpa batas ukuran
  • Mendukung struktur JSON apa pun

Gunakan untuk:

  • Seluruh body permintaan dan respons
  • Pesan error dan stack trace
  • Konteks bisnis (item pesanan, alamat)

 

Anotasi vs. Metadata:

Tabel perbandingan: anotasi diindeks dan dapat dicari, sedangkan metadata terperinci dan tidak diindeks

Pemantauan dan Pemecahan Masalah AWS

Struktur trace lengkap

 

Struktur trace lengkap dengan empat segmen dan API pembayaran eksternal sebagai operasi paling lambat

Pemantauan dan Pemecahan Masalah AWS

Ringkasan pelajaran

 

  • X-Ray - layanan penelusuran terdistribusi untuk visibilitas end-to-end lintas layanan
  • Mekanisme tracing - propagasi Trace ID via header HTTP, segmen dikumpulkan daemon, aturan sampling dapat dikonfigurasi
  • Komponen trace:
    • Segmen - catatan pekerjaan tingkat layanan
    • Subsegmen - waktu operasi hilir yang rinci
    • Anotasi - pasangan kunci-nilai terindeks untuk pemfilteran dan pencarian
    • Metadata - konteks terperinci, tidak diindeks
Pemantauan dan Pemecahan Masalah AWS

Ayo berlatih!

Pemantauan dan Pemecahan Masalah AWS

Preparing Video For Download...