Distributed tracing
- Node.js kursu
- Uzman
- Ders 33/47
- 5 dk
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
// 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
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?
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
return traceId + '____' + spanId;
return traceId + ':' + spanId;
Açıklama: İki kimlik ':' ile birleştirilir.