Performance & Scalability serimizin bir parçası
Tam kılavuzu okuyunİzleme ve Gözlemlenebilirlik: APM, Günlüğe Kaydetme ve Uyarı En İyi Uygulamaları
Olgun gözlemlenebilirlik uygulamalarına sahip şirketler, Splunk'un Gözlemlenebilirlik Durumu raporuna göre olayları %69 daha hızlı çözer. İzleme size bir şeyin bozuk olduğunu söyler. Gözlemlenebilirlik size neden bozulduğunu ve nereye bakmanız gerektiğini söyler. Her üretim sorununu saatlerce söndürmek ile bunları dakikalar içinde çözmek arasındaki fark, sistemlerinizi ne kadar iyi donattığınıza, günlüklerinizi nasıl yapılandırdığınıza ve uyarılarınızı ne kadar iyi tasarladığınıza bağlıdır.
Önemli Çıkarımlar
- Gözlemlenebilirliğin üç temel direği (metrikler, günlükler ve izler) her biri farklı soruları yanıtlar ve sistemin eksiksiz olarak anlaşılmasını sağlamak için birlikte çalışır
- Uyarı yorgunluğunu azaltmaya ve yeni hata modlarını yakalamaya yönelik nedenler (dahili ölçümler) değil, belirtiler (kullanıcının karşılaştığı etki) hakkında uyarı
- Korelasyon kimlikleriyle yapılandırılmış JSON kaydı, hizmetler arasında arama yapılmasına ve istek akışlarının yeniden yapılandırılmasına olanak tanır
- SLO'lar (Hizmet Düzeyi Hedefleri), izlemeyi "bozuk bir şey var mı"dan "kullanıcılara olan taahhütlerimizi yerine getiriyor muyuz"a dönüştürür
Gözlemlenebilirliğin Üç Temeli
Gözlemlenebilirlik üç tamamlayıcı veri türü üzerine kuruludur. Her sütun, sisteminizin davranışıyla ilgili farklı soruları yanıtlar.
Metrikler
Metrikler düzenli aralıklarla toplanan sayısal ölçümlerdir. "Ne oluyor" sorularına cevap veriyorlar: Saniyede kaç istek var? Ortalama yanıt süresi nedir? Ne kadar bellek kullanılıyor?
Özellikler:
- Toplu ve kompakt - zaman serisi sayaçlarına sıkıştırılmış milyonlarca olay
- Depolaması ucuz - trafik hacminden bağımsız olarak sabit boyutlu veriler
- Kontrol panelleri ve uyarılar için idealdir
- Sınırlı bağlam -- yanıt süresinin arttığını biliyorsunuz ancak hangi spesifik isteklerin yavaş olduğunu bilmiyorsunuz
Önemli metrik türleri:
- Sayaç -- monoton olarak artan değer (toplam istekler, toplam hatalar)
- Gösterge -- artan ve azalan değer (geçerli CPU kullanımı, etkin bağlantılar)
- Histogram -- değerlerin dağılımı (tepki süresi yüzdelikleri, yük boyutları)
- Özet -- müşteri tarafında önceden hesaplanmış yüzdelikler
Günlükler
Günlükler, ayrı olayların zaman damgalı metin kayıtlarıdır. "Ne oldu" sorularını yanıtlıyorlar: Kullanıcı hangi hata mesajını gördü? Başarısız olan işleve hangi parametreler aktarıldı? Sorun oluştuğunda sistemin durumu neydi?
Özellikler:
- Zengin bağlam - bireysel olaylarla ilgili keyfi ayrıntılar
- Büyük ölçekte pahalı - yüksek trafikli sistemler saatte gigabaytlarca günlük üretir
- Aranabilir - tam metin aramasıyla belirli olayları bulun
- Yapı gerektirir -- yapılandırılmamış günlük satırlarının ayrıştırılması ve ilişkilendirilmesi zordur
İzler
İzlemeler birden fazla hizmette tek bir isteği takip eder. "Zaman nerede harcanıyor" sorularına cevap veriyorlar: Hangi servis çağrısı yavaş? İstek yolu nerede ayrılıyor? Hangi veritabanı sorgusu darboğazdır?
Özellikler:
- Nedenselliği gösterin - işlemler arasındaki ebeveyn-çocuk ilişkilerini
- Dağıtılmış sistem davranışını ortaya çıkarın - hizmet sınırları boyunca gecikme
- Geniş ölçekte numune alınması gerekir; her talebin izlenmesi pahalıdır
- Mikro hizmetler için gereklidir; iz bırakmadan, çoklu hizmet akışlarında hata ayıklamak tahmine dayalıdır
Gözlemlenebilirlik Aracı Ekosistemi
| Kategori | Açık Kaynak | Ticari | Bulutta Yerel |
|---|---|---|---|
| Metrikler | Prometheus + Grafana | Datadog, Yeni Kalıntı | AWS CloudWatch, Google Bulut İzleme |
| Günlükler | Loki, ELK Yığını (Elasticsearch, Logstash, Kibana) | Datadog Günlükleri, Splunk | AWS CloudWatch Günlükleri, Google Bulut Günlüğü |
| İzler | Jaeger, Zipkin | Datadog APM, Yeni Kalıntı | AWS X-Ray, Google Bulut İzleme |
| Hepsi bir arada | Grafana Yığını (Prometheus + Loki + Tempo) | Datadog, Yeni Kalıntı, Dynatrace | — |
| Hata izleme | Nöbetçi (açık çekirdek) | Nöbetçi, Bugsnag, Rollbar | — |
| Çalışma süresi izleme | — | Daha İyi Çalışma Süresi, Pingdom | AWS Route 53 durum kontrolleri |
Bir Yığın Seçmek
Büyüyen işletmelerin çoğu için aşağıdakilerden başlamanızı öneririz:
- Hata izleme için Sentry - tam yığın izlemeleri, kaynak haritaları ve sürüm izlemeyle istisnaları yakalar
- Metrikler için Prometheus + Grafana - açık kaynak, savaşta test edilmiş, kapsamlı entegrasyon ekosistemi
- Yönetilen bir hizmete yapılandırılmış günlük kaydı -- Bulut sağlayıcınıza bağlı olarak Datadog Logs, AWS CloudWatch veya Grafana Loki
- Enstrümantasyon için OpenTelemetry - her türlü arka uçla çalışan, tedarikçiden bağımsız standart
Tek bir tedarikçi isteyen ekipler için Datadog, en iyi hepsi bir arada deneyimi sunar, ancak bunu geniş ölçekte önemli bir maliyetle sağlar. Grafana'nın açık kaynak yığını (Prometheus, Loki, Tempo), daha düşük lisans maliyeti ancak daha yüksek operasyonel yük ile eşdeğer yetenekler sağlar.
Yapılandırılmış Günlüğe Kaydetme En İyi Uygulamaları
Error processing order 12345 for user [email protected] gibi yapılandırılmamış günlük satırları insanlar tarafından okunabilir ancak makinelere düşmandır. Yapılandırılmış JSON günlükleri, belirli alanlarda arama, filtreleme, toplama ve uyarı verme olanağı sağlar.
Günlük Yapısı
Her günlük girişi şunları içermelidir:
| Alan | Amaç | Örnek |
|---|---|---|
| zaman damgası | Olayın meydana geldiği zaman | 2026-03-15T14:30:00.123Z |
| seviye | Önem derecesi (hata ayıklama, bilgi, uyarı, hata) | hata |
| mesaj | İnsan tarafından okunabilen açıklama | Sipariş işleme başarısız oldu |
| hizmet | Günlüğü hangi hizmet oluşturdu | API sunucusu |
| korelasyon kimliği | Hizmetler genelinde izleme isteğinde bulunun | req-abc123 |
| kullanıcı kimliği | Kim etkilendi | usr-456 |
| süre | Operasyon ne kadar sürdü | 1523 (ms) |
| hata.adı | Hata sınıfı | Veritabanı Bağlantı Hatası |
| hata.yığın | Yığın izleme (yalnızca hatalar) | ... |
Korelasyon Kimlikleri
Korelasyon kimliği, her isteğin başlangıcında oluşturulan ve her aşağı akışlı hizmet çağrısına, veritabanı sorgusuna ve arka plan işine iletilen benzersiz bir tanımlayıcıdır. Bir sorunu araştırırken korelasyon kimliğine göre arama yapmak, tüm hizmetlerde söz konusu özel istekle ilgili her günlük girişini gösterir.
Uygulama: API ağ geçidinde veya yük dengeleyicide bir UUID oluşturun, bunu X-Request-ID üstbilgisine iletin ve her günlük girişine ekleyin. NestJS'de, korelasyon kimliğini çıkaran veya oluşturan ve bunu eşzamansız yerel depolama bağlamında depolayan bir ara yazılım kullanın.
Günlük Düzeyleri
Günlük düzeylerini tutarlı bir şekilde kullanın:
- DEBUG -- ayrıntılı tanılama bilgileri, aktif olarak hata ayıklama yapılmadığı sürece üretimde devre dışı bırakılır
- BİLGİ -- önemli ticari olaylar (sipariş verildi, kullanıcı kaydedildi, ödeme işlendi)
- UYARI -- sistemin ele aldığı ancak araştırılması gereken beklenmedik durumlar (yeniden deneme başarılı, önbellek hatası, kullanım dışı API çağrısı)
- HATA -- kullanıcı deneyimini etkileyen hatalar (istek başarısız oldu, ödeme reddedildi, harici hizmet kullanılamıyor)
- FATAL -- uygulama devam edemiyor (veritabanına erişilemiyor, gerekli yapılandırma eksik)
Günlük Tutma ve Maliyet Yönetimi
Günlükler, saklanması en pahalı gözlemlenebilirlik verileridir. Katmanlı saklamayı uygulayın:
- Sıcak depolama (30 gün) -- tam metinde arama yapılabilir, hızlı sorgular, yüksek maliyet
- Sıcak depolama (90 gün) -- sıkıştırılmış, daha yavaş sorgular, makul maliyet
- Soğuk depolama (1 yıl+) -- arşivlenmiş, isteğe bağlı sorgulama, düşük maliyetli
- Hata ayıklama günlükleri -- aktif olarak sorun giderme işlemi yapılmadığı sürece üretimde saklanmaz
Uyarıcı Tasarım
Kötü uyarı, uyarı yorgunluğuna neden olur; çoğu yanlış pozitif veya düşük öncelikli gürültü olduğundan ekipler uyarılara yanıt vermeyi bırakır. İyi uyarı, insan müdahalesi gerektiren gerçek sorunları ortaya çıkarır.
Sebepler Değil, Belirtiler Hakkında Uyarı
Belirtiye dayalı uyarı (iyi): "/api/orders'taki hata oranı 5 dakika boyunca %1'i aştı" -- bu, altta yatan nedenden bağımsız olarak doğrudan kullanıcı etkisini gösterir.
Nedene dayalı uyarı (kötü): "Veritabanı CPU'su %90'ı aştı" -- bu, kullanıcıları etkileyebilir veya etkilemeyebilir. Veritabanı %95 CPU'yu gayet iyi işliyor olabilir veya %50 CPU'da olmasına rağmen tamamen kilitlenmiş olabilir.
Sebebe dayalı ölçümler, uyarı kurallarına değil, araştırma amaçlı kontrol panellerine aittir.
Uyarı Önem Düzeyleri
| Şiddet | Kriterler | Yanıt | Bildirim |
|---|---|---|---|
| Kritik (P1) | Geliri etkiliyor, tüm kullanıcılar etkileniyor | Anında müdahale, uyandırma mühendisleri | PagerDuty telefon görüşmesi, Slack |
| Yüksek (P2) | Özellik bozuldu, kullanıcıların alt kümesi etkilendi | 30 dakika içinde yanıt verin | PagerDuty push, Slack |
| Orta (P3) | Performans düştü, özellik kaybı yok | 4 saat içinde yanıt verin | Slack kanalı, e-posta |
| Düşük (P4) | Anormallik algılandı, kullanıcı etkisi yok | 24 saat içinde yanıt verin | E-posta, bilet |
Uyarı Gürültüsünün Azaltılması
- Grupla ilgili uyarılar -- veritabanı çökerse, ona bağlı olan her hizmetten 50 uyarı değil, bir "veritabanı kullanılamıyor" uyarısı alırsınız
- Sürekli ihlal gerektir -- Geçici ani artışları önlemek için "CPU 1 saniye boyunca %90'ın üzerinde" değil "CPU 5 dakika boyunca %90'ın üzerinde"
- Otomatik çözümleme -- durum çözüldüğünde uyarılar otomatik olarak silinmelidir
- Haftalık uyarı incelemesi -- tetiklenen tüm uyarıları inceleyin, insan eylemi gerektirmeyen uyarıları tanımlayın ve düzeltin veya susturun
- Çağrı üzerine geri bildirim döngüsü -- Her çağrı rotasyonundan sonra mühendis hangi uyarıların eyleme dönüştürülebilir olduğunu ve hangilerinin ayarlanması gerektiğini belgeler
SLO'lar: Hizmet Düzeyi Hedefleri
SLO'lar, izlemeyi reaktif ("bir şey bozuldu, düzeltin") yerine proaktif ("hata bütçemizi tüketiyoruz, kullanıcılar farkına varmadan araştıralım") dönüştürür.
SLO'ları tanımlama
SLO, bir hizmetin hedef güvenilirliğini tanımlar. Şunlardan oluşur:
- SLI (Hizmet Düzeyi Göstergesi) -- ölçülen metrik (talep başarı oranı, gecikme yüzdelik dilimi)
- Hedef -- kabul edilebilir performansı tanımlayan eşik (%99,9 başarı oranı, 200 ms'nin altında P95)
- Pencere -- hedefin değerlendirildiği dönem (30 güne kayan)
Bir e-Ticaret Platformu için örnek SLO'lar
| Hizmet | SLI | Hedef | Hata Bütçesi (30 gün) |
|---|---|---|---|
| Ürün API'si | Başarılı yanıtlar (5xx olmayan) | %99,9 | 43 dakikalık kesinti |
| Ödeme | Başarılı işlemler | %99,95 | 21 dakikalık kesinti |
| Ara | Sonuçlar 500 ms'nin altında döndürüldü | %99 | 7,2 saat yavaş yanıt |
| Yönetici kontrol paneli | Sayfa 3 saniyeden kısa sürede yükleniyor | %95 | 36 saat yavaş yükleme |
Hata Bütçeleri
Hata bütçesi, SLO hedefinizin tersidir. %99,9'luk bir SLO, %0,1 hataya izin verir; yani ayda yaklaşık 43 dakikalık kesinti süresi. Hata bütçesi tükendiğinde ekip, odak noktasını özelliklerden güvenilirlik çalışmasına kaydırır.
Hata bütçeleri, mühendislik ve ürün ekipleri arasında ortak bir dil sağlar. Bir hizmetin "yeterince güvenilir" olup olmadığını tartışmak yerine, her iki ekip de hata bütçesinin ne kadar kaldığını tam olarak görebilir ve yeni özelliklerin sunulması veya istikrara yatırım yapılması konusunda veriye dayalı kararlar alabilir.
Sıkça Sorulan Sorular
Geniş ölçekte gözlemlenebilirliğin maliyeti ne kadardır?
Gözlemlenebilirlik maliyetleri, açık kaynak yığınları (Prometheus, Grafana, Loki) için ana bilgisayar başına aylık 10-50 ABD doları ile ticari çözümler (Datadog, New Relic) için ana bilgisayar başına 30-100 ABD dolarının üzerinde değişir. En büyük maliyet etkeni günlük hacmidir; hata ayıklama günlüklerini örnekleyerek, saklanan günlükleri sıkıştırarak ve uygun saklama sürelerini ayarlayarak optimize edin. 50 sunucunun altındaki çoğu işletme için maliyet aylık 500-2.000 ABD dolarıdır.
OpenTelemetry'yi mi yoksa satıcıya özel aracıları mı kullanmalıyım?
OpenTelemetry'yi kullanın. Bu, tüm büyük gözlemlenebilirlik sağlayıcıları tarafından desteklenen, enstrümantasyon için endüstri standardıdır ve satıcıya bağımlı kalmayı önler. Kodunuzu yeniden düzenlemeden arka uçları (örneğin Datadog'dan Grafana'ya) değiştirebilirsiniz. Satıcıya özel temsilciler bazen daha derin entegrasyon sunar, ancak taşınabilirlik konusunda ödün vermek buna değmez.
Bir NestJS uygulaması için izlemeyi nasıl kurarım?
NestJS'de istek zamanlaması için önleyicileri, hata takibi için istisna filtrelerini ve korelasyon kimliğinin yayılması için ara yazılımı kullanın. Hata takibi için Sentry'yi @sentry/nestjs ile entegre edin. Prometheus metriklerini /metrics uç noktasında kullanıma sunulan prom-client kitaplığıyla dışa aktarın. JSON çıkışı için yapılandırılmış nestjs-pino veya winston ile yapılandırılmış günlük kaydını kullanın.
İzleme ve gözlemlenebilirlik arasındaki fark nedir?
İzleme, önceden tanımlanmış şeylerin ne zaman ters gittiğini size bildirir (CPU yüksek, hata oranı arttı, disk dolu). Gözlemlenebilirlik, yeni enstrümantasyon dağıtmadan sistem davranışı hakkında yeni sorular sormanıza olanak tanır. Bir sistemin iç durumunu dış çıktılarından (ölçümler, günlükler, izler) anlayabildiğinizde sistem gözlemlenebilirdir. Uygulamada iyi izleme, gözlemlenebilirliğin bir alt kümesidir.
Ekibimi gözlemlenebilirliğe yatırım yapmaya nasıl ikna edebilirim?
Gözlemlenebilirlik iyileştirmelerinden önce ve sonra üretim olayları için Ortalama Çözüme Kadar Süreyi (MTTR) izleyin. Gözlemlenebilirliği iyi olan ekipler genellikle MTTR'yi %60-70 oranında azaltır. Yatırım getirisini göstermek için mühendislik maliyetiyle tasarruf edilen süreyi çarpın. Ayrıca izleme yoluyla tespit edilen olayların sayısını kullanıcı raporlarına göre takip edin; proaktif tespit müşterinin güvenini oluşturur.
Sırada Ne Var
Hiçbir şeyiniz yoksa hata takibiyle (Sentry) başlayın; üretim hatalarını yakalayıp uyararak en hızlı değeri sağlar. Daha sonra, korelasyon kimlikleriyle yapılandırılmış günlük kaydı ekleyin. Daha sonra Prometheus ve Grafana kontrol panelleriyle metrik toplama işlemini uygulayın. Son olarak, birden fazla hizmetiniz olduğunda dağıtılmış izlemeyi ekleyin.
Performans mühendisliği bağlamının tamamı için iş platformunuzu ölçeklendirme hakkındaki temel kılavuzumuza bakın. İzleme sisteminizin izlediği altyapıyı optimize etmek için altyapı ölçeklendirme kılavuzumuzu okuyun.
ECOSIRE, Odoo ERP ve özel mimarilerde çalışan iş platformları için gözlemlenebilirlik yığınları uygular. İzleme ve gözlemlenebilirlik değerlendirmesi için DevOps ekibimizle iletişime geçin.
ECOSIRE tarafından yayınlandı — işletmelerin Odoo ERP, Shopify eCommerce ve OpenClaw AI genelinde yapay zeka destekli çözümlerle ölçeklenmesine yardımcı oluyor.
Yazan
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
ECOSIRE
ECOSIRE ile İşinizi Büyütün
ERP, e-Ticaret, yapay zeka, analitik ve otomasyon genelinde kurumsal çözümler.
İlgili Makaleler
Web Kancası Hata Ayıklama ve İzleme: Eksiksiz Sorun Giderme Kılavuzu
Arıza modellerini, hata ayıklama araçlarını, yeniden deneme stratejilerini, izleme kontrol panellerini ve en iyi güvenlik uygulamalarını kapsayan bu eksiksiz kılavuzla webhook hata ayıklama konusunda uzmanlaşın.
Monorepo Projeleri için GitHub Actions CI/CD
Turborepo monorepos için GitHub Actions CI/CD kılavuzunu tamamlayın: yalnızca etkilenen derlemeler, paralel işler, önbelleğe alma stratejileri, ortam tabanlı dağıtımlar ve en iyi güvenlik uygulamaları.
Üretimde Yapay Zeka Aracılarını Test Etme ve İzleme
Üretim ortamlarında yapay zeka aracılarını test etmeye ve izlemeye yönelik eksiksiz bir kılavuz. OpenClaw dağıtımları için değerlendirme çerçevelerini, gözlemlenebilirliği, sapma tespitini ve olay müdahalesini kapsar.
Performance & Scalability serisinden daha fazlası
Web Kancası Hata Ayıklama ve İzleme: Eksiksiz Sorun Giderme Kılavuzu
Arıza modellerini, hata ayıklama araçlarını, yeniden deneme stratejilerini, izleme kontrol panellerini ve en iyi güvenlik uygulamalarını kapsayan bu eksiksiz kılavuzla webhook hata ayıklama konusunda uzmanlaşın.
k6 Yük Testi: Lansmandan Önce API'lerinize Stres Testi Yapın
Node.js API'leri için k6 yük testinde uzmanlaşın. Sanal kullanıcı artışlarını, eşikleri, senaryoları, HTTP/2, WebSocket testini, Grafana kontrol panellerini ve CI entegrasyon modellerini kapsar.
Nginx Üretim Yapılandırması: SSL, Önbelleğe Alma ve Güvenlik
Nginx üretim yapılandırma kılavuzu: SSL sonlandırma, HTTP/2, önbelleğe alma başlıkları, güvenlik başlıkları, hız sınırlama, ters proxy kurulumu ve Cloudflare entegrasyon modelleri.
Odoo Performans Ayarlama: PostgreSQL ve Sunucu Optimizasyonu
Odoo 19 performans ayarlaması için uzman kılavuzu. Kurumsal dağıtımlar için PostgreSQL yapılandırmasını, indekslemeyi, sorgu optimizasyonunu, Nginx önbelleğe almayı ve sunucu boyutlandırmayı kapsar.
Odoo ve Acumatica: Büyüyen İşletmeler için Bulut ERP
Odoo ve Acumatica'nın 2026 karşılaştırması: benzersiz fiyatlandırma modelleri, ölçeklenebilirlik, üretim derinliği ve hangi bulut ERP'nin büyüme yörüngenize uyduğu.
Üretimde Yapay Zeka Aracılarını Test Etme ve İzleme
Üretim ortamlarında yapay zeka aracılarını test etmeye ve izlemeye yönelik eksiksiz bir kılavuz. OpenClaw dağıtımları için değerlendirme çerçevelerini, gözlemlenebilirliği, sapma tespitini ve olay müdahalesini kapsar.