İzleri ve servis haritalarını analiz etme

AWS'i İzleme ve Sorun Giderme

John Q. Martin

Principal Consultant

Servis haritası nedir?

 

İz verilerinden otomatik oluşturulur: elle kurulum yok

Satırlar halinde servisleri ve durum ışıklarını gösteren tren kalkış panosu: yeşil zamanında, kehribar gecikmeli, kırmızı durdu

Tek bakışta: yeşil = zamanında · kehribar = gecikmeli · kırmızı = durdu

 

Erişim:

  • X-Ray konsolu → Service map
  • Filters uygula
  • Bir düğmeye tıkla → ayrıntılı döküm
AWS'i İzleme ve Sorun Giderme

Servis haritası renk kodları

 

Servis haritası renk anahtarı: yeşil başarılı çağrılar, sarı istemci hataları, kırmızı sunucu hataları, mor kısıtlama, gri trafik yok

Bir servis haritası açtığında, doğrudan yeşil olmayanlara git.

Herhangi bir düğmeye tıkla: yanıt süresi dağılımı, HTTP durum dökümü, hata türleri.

AWS'i İzleme ve Sorun Giderme

Bir servis haritasını okumak

 

API Gateway ve OrderService'in DynamoDB Inventory'e ve sarı bir Payment servisine dallandığı servis haritası

AWS'i İzleme ve Sorun Giderme

Kritik yol analizi

 

Kritik yol = en uzun servis çağrı zinciri

API Gateway (50ms)
  -> OrderService (50ms)
    -> PaymentService (100ms)
      -> External API (200ms)

Toplam: 400ms

External API = toplam gecikmenin %50'si

 

Bununla ne yapmalı:

  • Optimizasyon hedefin: External API
  • Seçenekler: önbellekleme ekle, timeout + geri dönüş uygula, SLA pazarlığı yap

Alternatif yolu karşılaştır:

OrderService -> DynamoDB
Toplam: 120ms (hızlı)
AWS'i İzleme ve Sorun Giderme

Bağımlılık riskleri

 

Servis haritası bağımlılık riskleri: döngüsel bağımlılıklar, tek hata noktaları ve riskli dış bağımlılıklar

AWS'i İzleme ve Sorun Giderme

İz zaman çizelgelerini anlama

 

Zaman ekseni boyunca alt segmentlerle bir iz zaman çizelgesi; en uzun işlem olarak payment-api çağrısı

 

  • Yatay eksen zaman: işlemler ne zaman başladı ve ne kadar sürdü
  • Dikey eksen servis hiyerarşisi: alt segmentler üstlerinin altında girintili
  • payment-api'ye HTTP.POST (100-250ms) = tek başına en uzun işlem
AWS'i İzleme ve Sorun Giderme

Desen 1: Ardışık darboğazlar

 

Önce (ardışık - 80ms):

Sorgu 1 (10-30ms)
         -> Sorgu 2 (30-50ms)
                  -> Sorgu 3 (50-70ms)
                           -> Sorgu 4 (70-90ms)

 

Sonra (paralel - 20ms):

Dört sorgunun paralel çalışıp çakışarak 20ms'de bittiği iz zaman çizelgesi

AWS'i İzleme ve Sorun Giderme

Desen 2: N+1 sorgular ve geveze servisler

 

N+1 Sorgu Problemi:

Kullanıcı listesini al       (10-20ms)
Kullanıcı 1 detayları        (20-30ms)
Kullanıcı 2 detayları        (30-40ms)
... ×100 ardışık sorgu

Çözüm: toplu sorgular, eager loading

 

Geveze Servisler:

  • 1 toplu çağrı yerine iki servis arasında 50 küçük çağrı
  • Her çağrı: bağlantı kurulumu + serileştirme + gidiş-dönüş
  • 50× ek yük

Çözüm: toplu istekler, mesaj kuyrukları, önbellekleme

AWS'i İzleme ve Sorun Giderme

Desen 3: Cold start'lar ve kademeli hatalar

 

İki zaman çizgisi çubuğu: cold start'ta büyük turuncu başlatma bloğu ve küçük yeşil handler; warm start yalnızca küçük yeşil handler

Lambda Cold Start:

  • Cold: 3000ms (2500ms init + 500ms handler)
  • Warm: 500ms (yalnızca handler)
  • İlk çağrıda büyük init segmenti olarak görünür

Çözüm: sağlanan eşzamanlılık, başlatmayı optimize et

 

Kademeli Hata (Cascading Failure):

Service A [Error]
  -> Service B [Timeout 5s]
    -> Service C [Timeout 5s]
      -> Database [Timeout 5s]

Zaman aşımı blokları iz hiyerarşisi boyunca üst üste görünür

Çözüm: zaman aşımı, circuit breaker'lar, geri dönüşler

AWS'i İzleme ve Sorun Giderme

Açıklamalarla izleri filtreleme

X-Ray konsolunda izleri açıklama anahtar-değer çiftleriyle filtreleme

Grupları karşılaştır:

  • Premium kullanıcılar ort. 200ms vs. ücretsiz kullanıcılar ort. 150ms → premium özellikler gecikme ekliyor
  • EU West, US East'ten 3× yavaş → bölgeler arası veri erişimi sorunu
AWS'i İzleme ve Sorun Giderme

İz analizi iş akışı

 

  1. Belirle - filtrele: response_time > 1000ms, süreye göre sırala
  2. Analiz et - en uzun işlemleri, ardışık darboğazları, paralel fırsatları bul
  3. Açıkla - iş bağlamı için açıklamaları kontrol et: kullanıcı ID'si, sipariş ID'si, ortam
  4. Gözden geçir - metaveriyi incele: istek ayrıntıları, hata mesajları
  5. İlişkilendir - CloudWatch Logs ile çapraz kontrol
  6. Teşhis et - kök neden: yavaş sorgu, zaman aşımı, algoritma, kaynak tükenmesi
  7. Düzelt - kodu optimize et, önbellek ekle, paralelleştir, ölçeklendir
  8. Doğrula - önce/sonra izlerini karşılaştır, gecikme ve hata oranlarını izle
AWS'i İzleme ve Sorun Giderme

X-Ray verilerinden uyarılar oluşturma

 

# Yüksek gecikme alarmı
aws cloudwatch put-metric-alarm \
  --alarm-name HighLatency \
  --metric-name ResponseTime \
  --namespace AWS/XRay \
  --statistic Average \
  --period 300 \
  --threshold 1000 \
  --comparison-operator GreaterThanThreshold

 

# Yüksek hata sayısı alarmı
aws cloudwatch put-metric-alarm \
  --alarm-name HighErrorCount \
  --metric-name ErrorCount \
  --namespace AWS/XRay \
  --statistic Sum \
  --period 300 \
  --threshold 50 \
  --comparison-operator GreaterThanThreshold
AWS'i İzleme ve Sorun Giderme

Video özeti

 

  • Servis haritaları - otomatik oluşturulan mimari diyagramlar: düğümler (servisler), kenarlar (bağlantılar), renk kodlu sağlık
  • Renk kodları - yeşil (başarı), sarı (4xx), kırmızı (5xx hatalar), mor (429), gri (trafik yok)
  • Kritik yol - en uzun çağrı zinciri, optimizasyon hedefini belirler
  • İz zaman çizelgeleri - ardışık darboğazları, N+1 sorguları, cold start'ları, kademeli hataları ortaya çıkarır
  • Açıklamalar - izleri iş bağlamına göre filtrele ve grupla
  • İş akışı - sekiz adım: belirle → analiz et → açıkla → gözden geçir → ilişkilendir → teşhis et → düzelt → doğrula
AWS'i İzleme ve Sorun Giderme

İzleri ve servis haritalarını analiz etme

AWS'i İzleme ve Sorun Giderme

Preparing Video For Download...