Bir izleme (trace), dağıtık bir sistemde bir isteğin ilk hizmete girişinden nihai yanıtın alınmasına kadar geçen tüm yolunu kaydeder. ARMS bu verileri toplayarak her bir hizmet çağrısını, zamanlamasını ve başarı durumunu görüntülemenizi sağlar.
Avantajlar
Dağıtık bir sistemde tek bir istek genellikle birden fazla hizmete ulaşır. Bir istek zaman aşımına uğradığında, başarısız olduğunda veya bir özel durum (exception) fırlattığında kök nedeni belirlemek için tam çağrı zincirinin görünür olması gerekir. İzlemeler bu görünürlüğü sağlar:
Sorun giderme: İzlemeler, tam istek yolunu ve ilgili her hizmetin yürütme durumunu ortaya çıkarır; böylece hataları hızla izole edebilirsiniz.
Performans optimizasyonu: Span başına süreler, yürütme darboğazlarını ortaya koyarak optimizasyon için kesin hedefler sunar.
Sistem izleme: İzlemeler, sistem davranışına ilişkin gerçek zamanlı görünürlük sağlayarak operasyon mühendislerinin hizmet sağlığını ve kaynak kullanımını değerlendirmesine yardımcı olur.
Temel kavramlar
Trace (İzleme)
Bir trace, bir isteğin sisteme girdiği andan nihai yanıtı alana kadar geçen tüm yürütme sürecini kapsar. Örneğin, üç mikro hizmet arasında çağrılar tetikleyen bir kullanıcı eylemi, her bir uzak yordam çağrısı (RPC) ve veritabanı sorgusu dahil olmak üzere tüm yolculuğu kapsayan tek bir trace üretir.
Her trace, span'lardan oluşan bir ağaç yapısıdır. ARMS, her trace'e istek süresi boyunca tüm hizmetlerde kalıcı olan benzersiz bir trace ID atar. Aynı isteğe ait tüm span'lar bu trace ID'yi paylaşır; böylece hata ayıklama sırasında ilgili tüm span'ları tek bir yerde sorgulayabilirsiniz.
Ağacın kökünde yer alan span — root span — herhangi bir üst span'a sahip değildir. İzlemenin başlangıcını işaret eder. Diğer tüm span'lar, kendisini tetikleyen span'a geri bağlayan bir üst span ID'sine sahiptir ve bu yapı çağrı hiyerarşisini oluşturur.
Span
Span, bir izlemenin temel birimidir. Bir yöntem çağrısı, bir program bloğunun çalıştırılması, bir RPC veya bir veritabanı sorgusu gibi tek bir mantıksal işlemi temsil eder.
Her span aşağıdaki bilgileri kaydeder:
Benzersiz bir span ID
Başlangıç ve bitiş zaman damgaları
Bir üst span ID'si (root span'de bulunmaz)
Span'lar, gerçek hizmet çağrı hiyerarşisini yansıtarak izleme ağacını oluşturacak şekilde iç içe yerleşir.