CodeBlanks Logo Icon CodeBlanks

Distributed

Distributed tracing ve event sourcing eklersin.

Dağıtık izleme katmanı

Üçüncü derste dağıtık izleme katmanını ekleriz. OpenTelemetry, hizmetler arası isteğin yolunu tek bir trace ID ile izlemenin açık standardıdır. Bu projede gerçek OpenTelemetry çatısını kurmak yerine, onu temsil eden bir distributedLayer fonksiyonu yazıyoruz.

distributedLayer fonksiyonu { tracing: 'OpenTelemetry', status: 'hazır' } döndürür. Çıktıya yeni satır olarak OpenTelemetry: hazır eklenir. Başlangıç kodu, setupProject ve nativeAddon çözümlerinin üzerine yazılır. Bu birikimli büyüme, ileride integrationReport tüm katmanları çağırırken doğru sırayı garantiler. Gerçek bir OpenTelemetry entegrasyonu @opentelemetry/node paketi ve HTTP başlık yayma ile yapılır; burada modelleme yeterli.

İzleme bağlamı

Bir dağıtık izleme bağlamı, trace ID ve span ID ile çalışır. Bu projede distributedLayer yalnızca izleme çatısının adını taşır; gerçek bağlam yayma ileride gelir. Yine de çağrı deseni önceki katmanlarla aynıdır.

Örnek: console.log(distributedLayer().tracing + ': ' + distributedLayer().status). Bu, OpenTelemetry: hazır satırını üretir. Önceki satırlar (ExpertProject, 1.0, N-API: hazır) korunur; yenisinin ardından eklenir. Birikimli büyüme sayesinde her dersin çıktısı bir öncekinin devamıdır. Bu, ileride integrationReport tüm katmanları tek dizede toplarken her parçanın doğru sırada yer almasını sağlar.

Uygulama Dağıtık izleme katmanını ekle

Önceki dersin setupProject ve nativeAddon çözümlerini al. function distributedLayer() ekle; return { tracing: 'OpenTelemetry', status: 'hazır' } döndürsün. console.log(distributedLayer().tracing + ': ' + distributedLayer().status) ile yazdır.

Başlangıç kodu

index.js
function setupProject() {
  return { name: 'ExpertProject', version: '1.0' };
}
console.log(setupProject().name);
console.log(setupProject().version);
function nativeAddon() {
  return { api: 'N-API', status: 'hazır' };
}
console.log(nativeAddon().api + ': ' + nativeAddon().status);
// distributedLayer fonksiyonu yaz
// OpenTelemetry izleme bilgisini taşıyan bir nesne döndürsün
// tracing ve status'u yazdır
// buraya yaz

Örnek çözüm

index.js
function setupProject() {
  return { name: 'ExpertProject', version: '1.0' };
}
console.log(setupProject().name);
console.log(setupProject().version);
function nativeAddon() {
  return { api: 'N-API', status: 'hazır' };
}
console.log(nativeAddon().api + ': ' + nativeAddon().status);
function distributedLayer() {
  return { tracing: 'OpenTelemetry', status: 'hazır' };
}
console.log(distributedLayer().tracing + ': ' + distributedLayer().status);

Beklenen çıktı

ExpertProject
1.0
N-API: hazır
OpenTelemetry: hazır

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ı
OpenTelemetry İzleme standardı
distributedLayer Katman fonksiyonu
tracing İzleme adı
trace ID İsteği bağlar

2 Dağıtık izlemede tracing kimliği ne işe yarar?

index.js
function distributedLayer() { return {tracing: 'OpenTelemetry', status: 'hazır'}; }
  • Veritabanı şifresi
  • İstek yolunu işaretler Doğru cevap
  • Kullanıcı oturumu
  • Yalnızca önbellek

Açıklama: tracing kimliği istek yolunu işaretler; tüm hizmetleri bağlar.

3 tracing alanını tamamla

Soru
return { tracing: '____', status: 'hazır' };
Cevap
return { tracing: 'OpenTelemetry', status: 'hazır' };

Açıklama: tracing alanı 'OpenTelemetry' değerini taşır.

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