CodeBlanks Logo Icon CodeBlanks

Distributed tracing

Distributed tracing ve OpenTelemetry öğrenirsin.

Distributed tracing

Distributed tracing (dağıtık izleme), bir isteğin birden çok hizmetten geçişini tek bir görünümde toplar. OpenTelemetry, izlerin standart biçimde toplanmasını sağlayan açık standarttır. Her iz bir trace ID, her adım bir span ID ile etiketlenir.

Bir traceContext(traceId, spanId) fonksiyonu bu ilişkiyi modeller: iki kimliği ':' ile birleştirir. Örnek: traceContext('abc123', 'span01') 'abc123:span01' döndürür. Gerçek OpenTelemetry'de bu bağlam HTTP başlıklarıyla yayılır; burada yalnızca kimliklerin nasıl eşleştiğini görüyoruz. trace ID tüm isteği bağlar; span ID bir adımı işaretler. Bu ayırım, milyonlarca log arasından bir isteğin yolunu bulmanın anahtarıdır.

Bağlam yayma

Bir iz bağlamı, hizmetler arasında HTTP başlıklarıyla yayılır. OpenTelemetry traceparent başlığı bunu taşır: 00-<traceId>-<spanId>-<flags> biçimindedir. Her hizmet gelen bağlamı okur, kendi span'ini ekler ve sonraki hizmete iletir.

Basit modelimizde traceContext('abc123', 'span01') 'abc123:span01' döndürür; gerçek traceparent başlığı 00-abc123-span01-01 olur. İki kimliği birleştirmek, bağlamın yapısını gösterir; ayrıntılı başlık biçimi ileride gelir. Bu model, dağıtık izlemenin özünü yakalar: her adımı tek bir trace ID altında zincirlemek. Böylece bir hatanın hangi hizmetten geldiğini hızla bulursun.

Uygulama Trace bağlam fonksiyonu yaz

function traceContext(traceId, spanId) yaz. return traceId + ':' + spanId ile döndür. console.log(traceContext('abc123', 'span01')) ile yazdır.

Başlangıç kodu

index.js
// traceContext fonksiyonu yaz
// iki kimliği ':' ile birleştirerek döndür
// 'abc123' ve 'span01' ile çağır ve yazdır
// buraya yaz

Örnek çözüm

index.js
function traceContext(traceId, spanId) {
  return traceId + ':' + spanId;
}
console.log(traceContext('abc123', 'span01'));

Beklenen çıktı

abc123:span01

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Parçayı rolüne eşle

Kavram Anlamı
trace ID İsteği bağlar
span ID Bir adımı işaretler
OpenTelemetry Açık standart
traceContext Kimlikleri birleştirir

2 OpenTelemetry'de bir iz neyle ilişkilendirilir?

index.js
traceContext('abc123', 'span01')
  • Yalnızca span
  • Trace ID ve span ID Doğru cevap
  • Yalnızca bayrak
  • Yalnızca bağlam

Açıklama: Bir iz trace ID ve span ID ile ilişkilendirilir.

3 Birleştirme ayracını tamamla

Soru
return traceId + '____' + spanId;
Cevap
return traceId + ':' + spanId;

Açıklama: İki kimlik ':' ile birleştirilir.

Uzman bölümündeki tüm dersler