Node.js
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.
Örnek çözümü göster
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);
Kendini test et
-
Parçayı rolüne eşle
- OpenTelemetry
- İzleme standardı
- distributedLayer
- Katman fonksiyonu
- tracing
- İzleme adı
- trace ID
- İsteği bağlar
-
Dağıtık izlemede tracing kimliği ne işe yarar?
function distributedLayer() { return {tracing: 'OpenTelemetry', status: 'hazır'}; }
- Veritabanı şifresi
- İstek yolunu işaretler
- Kullanıcı oturumu
- Yalnızca önbellek
Cevabı göster
İstek yolunu işaretler — tracing kimliği istek yolunu işaretler; tüm hizmetleri bağlar.
-
tracing alanını tamamla
return { tracing: '____', status: 'hazır' };
Cevabı göster
return { tracing: 'OpenTelemetry', status: 'hazır' };
Sıradaki ders: Performance