COMPUTER ENGINEER

Örneklere git
Blog
Next.js / ASP.NET Core / SQL6 dk çalışma
36/ 41

Dayanıklılık ve gözlem

Yapılandırılmış log, korelasyon ve dağıtık izleme

Üretimde neler olduğunu görebilmek: loglar, metrikler ve izler.

AnlaÖrneği inceleKendin uygula

Kavramı anlayalım

Gözlemlenebilirliğin üç temel sinyali vardır. Loglar tek tek olayları anlatır: ‘mesaj kaydedildi’, ‘giriş başarısız’. Metrikler zaman içindeki sayıları ölçer: saniyedeki istek, hata oranı, yanıt süresi yüzdelikleri. İzler (trace) tek bir isteğin bütün servisler boyunca yolculuğunu süreleriyle birlikte gösterir.

Loglar yapılandırılmış olmalıdır. ‘Kullanıcı 42 yazı 7’yi sildi’ gibi birleştirilmiş metin yerine şablon ve alanlar kullanılır: logger.LogInformation("User {UserId} deleted post {PostId}", userId, postId). Böylece log sistemi alanlara göre arama ve gruplama yapabilir. Seviyeler anlamlı seçilir: Information olağan olaylar, Warning beklenmedik ama tolere edilen durumlar, Error başarısız işlemler için.

Dağıtık bir sistemde aynı isteğin kayıtları farklı servislerde oluşur. W3C traceparent başlığı ve .NET’in Activity altyapısı, Next.js’ten API’ye ve veritabanına kadar aynı izleme kimliğini taşır. OpenTelemetry bu veriyi standart biçimde toplayıp bir izleme sistemine gönderir. Loglara asla parola, token veya kişisel veri yazılmaz.

NERESİNDE KULLANIRSIN?

Göremediğin bir sorunu düzeltemezsin; üretimde hata ayıklayıcı yoktur, yalnız sinyaller vardır.

SIK YAPILAN HATA

String birleştirmeyle log yazmak veya istek gövdesini (parola dahil) olduğu gibi loglamak.

01 / UYGULAMA

Aynı konu. Üç farklı derinlik.

Temsili örnek
// ✗ aranamaz metin
logger.LogInformation("Post " + id + " published by " + user);
// ✓ yapılandırılmış
logger.LogInformation("Post {PostId} published by {UserId}", id, userId);

Şablon alanları log sisteminde ayrı ayrı sorgulanabilir.

Bu sayfa gerçek bir sunucuya veya veritabanına bağlanmaz. Kod örnekleri .NET 8, Next.js ve SQL Server için temsilîdir; süreler simülasyondaki örnek değerlerdir, ölçüm değildir. Örnekleri yalnız kendi geliştirme ortamında dene; gerçek bağlantı dizesi, token veya parola paylaşma.

02 / SIRA SENDE

Önce kendin dene.

Ortalama yanıt süresi 120 ms ama kullanıcılar ‘bazen çok yavaş’ diyor. Hangi metriğe bakarsın ve neden ortalama yanıltıcıdır?

Çözümü ve açıklamasını göster
Açıklamalı çözüm
p95 / p99 yanıt süresi (yüzdelikler).
Ör. p50 = 80 ms, p99 = 4.2 s → her 100 istekten biri 4 saniyeden uzun.
Ortalama, nadir ama çok yavaş istekleri gizler.

Kullanıcı deneyimini en kötü durumlar belirler; yüzdelikler kuyruktaki yavaşlığı gösterir.