Bölüm 28 / 33
Loglama, İzleme ve Operasyon
Production sistemlerinin durumunu anlamak, hata tespit etmek ve olaylara müdahale etmek için gereken kavramlar.
3 canlı örnek — seçerek incele
İlgili kavramlar: Logging, Log Level
Log satırları
INFO request_id=ab12 GET /api/products 200 18ms WARN stock low sku=TRX-42 remaining=3 ERROR payment failed order=ord_9 gateway_timeout
Sistemin dış çıktılarından iç durumunu anlayabilme yeteneği.
Önceden belirlenmiş metrik ve koşulları sürekli izleme.
Uygulama ve sistem olaylarını zaman damgalı kayıt olarak yazma.
Zaman içinde ölçülen sayısal sistem değeri.
Bir request'in servis ve bileşenler arasındaki uçtan uca yolculuğu.
Tek bir olayın zaman, seviye ve mesajla kaydı.
Olayın gerçekleştiği tarih ve saat.
Mesajın önem ve ayrıntı düzeyi.
Çok ayrıntılı akış bilgisi.
Geliştirme ve teşhis için ayrıntılı bilgi.
- INFOT
Normal işleyişte önemli olay.
- WARNT
İşlem sürse de dikkat gerektiren olağan dışı durum.
Belirli işlemin başarısız olduğunu gösteren hata.
Uygulamanın çalışmasını sürdüremeyeceği kritik hata.
Log alanlarını JSON gibi makine okunabilir anahtar-değer formatında yazma.
Serbest metin biçimindeki log mesajı.
request id, user id, tenant id ve order id gibi olayı anlamlandıran alanlar.
Aynı iş akışındaki farklı log ve servis kayıtlarını ilişkilendiren kimlik.
Tek HTTP isteğini loglar boyunca tanımlayan kimlik.
Dağıtık request'in tüm span'lerini birleştiren kimlik.
Trace içindeki tek operasyon veya servis çağrısını tanımlayan kimlik.
Request'in birden fazla servis ve bağımlılıktaki süre ve hatalarını takip etme.
- SpanO
Trace içindeki başlangıç, bitiş ve attribute taşıyan işlem parçası.
Trace, metric ve log üretimi/aktarımı için açık gözlemlenebilirlik standardı.
Uygulama koduna ölçüm ve trace üretme yeteneği ekleme.
Framework ve kütüphaneleri kodu az değiştirerek otomatik izleme.
Önemli domain işlemleri için geliştiricinin özel span ve metric eklemesi.
Telemetry verisini alıp işleyerek gözlem backend'lerine gönderen servis.
Zaman serisi metric toplama ve sorgulama sistemi.
Uygulama veya sistem metriklerini Prometheus formatında sunan bileşen.
Prometheus'un metric endpoint'lerini periyodik çekmesi.
Zaman damgasına bağlı sayısal ölçüm dizisi.
Yalnızca artan request veya hata sayacı metriği.
CPU veya queue depth gibi artıp azalabilen anlık metrik.
Gözlemleri bucket'lara ayırarak latency dağılımı ölçer.
İstemci tarafında quantile ve toplam ölçüm üreten metrik türü.
Metrikleri method, route veya status gibi boyutlarla ayıran metadata.
Metric label kombinasyonlarının benzersiz sayısı.
User id gibi çok fazla benzersiz label nedeniyle metric maliyetini büyüten durum.
Metric, log ve trace verilerini dashboard ve alert'lerle görselleştiren platform.
Bir servis veya iş akışının önemli grafik ve değerlerini bir arada gösterir.
Dashboard içindeki tek grafik, tablo veya sayı.
Belirli metric veya log koşulu oluştuğunda bildirim üreten kural.
Eşik, süre ve değerlendirme mantığını tanımlayan alarm kuralı.
Alarmın tetiklenmesi için aşılması gereken değer.
Çok fazla veya kalitesiz alarm nedeniyle önemli uyarıların gözden kaçması.
Aksiyon gerektirmeyen tekrar eden alarm veya log bilgisi.
Alıcının ne yapacağını ve etkisini anlayabildiği alarm.
Belirli alarm veya olay için teşhis ve müdahale adımlarını açıklayan doküman.
Belirli zaman aralığında production olaylarına müdahale sorumluluğu.
Olay yanıtlanmazsa sıradaki kişi veya ekibe aktarılma kuralı.
Hizmet kalitesini veya kullanıcıları etkileyen plansız olay.
Olayı tespit, sınırlama, düzeltme ve iletişim süreci.
Büyük olayda koordinasyon ve karar akışını yöneten kişi.
Olay etkisini SEV1, SEV2 gibi seviyelerle sınıflandırma.
Etkilenen kullanıcı, işlem ve iş değerinin kapsamı.
Olayın başlaması ile fark edilmesi arasındaki süre.
- MTTDO
Olayları tespit etmek için geçen ortalama süre.
- MTTAO
Alarmdan birinin olayı kabul etmesine kadar geçen ortalama süre.
- MTTRO
Hizmeti normal duruma döndürmek için geçen ortalama süre.
Olayın tamamen çözülmesine kadar geçen süre.
Olayın zaman çizelgesi, nedenleri ve kalıcı aksiyonlarını belgeleyen çalışma.
Kişi suçlamak yerine sistem ve süreç iyileştirmesine odaklanan analiz.
Olayın temel teknik ve organizasyonel nedenlerini araştırma.
Tek başına kök neden olmayan ancak olay etkisini artıran koşul.
Mevcut problemi gidermek için alınan aksiyon.
Benzer olayın tekrarını önlemeyi hedefleyen kalıcı aksiyon.
- SLOO
Hizmet güvenilirliği için belirlenen ölçülebilir hedef.
- SLIO
Availability veya latency gibi hizmet kalitesini ölçen gösterge.
- SLAT
Müşteriyle üzerinde anlaşılan hizmet seviyesi ve sonuçları.
Hizmetin kullanılabilir olduğu zamanın toplam zamana oranı.
Sistemin kesintisiz çalıştığı süre veya oran.
Hizmetin kullanılamadığı süre.
Hatalı isteklerin toplam isteklere oranı.
Başarıyla tamamlanan işlemlerin oranı.
SLO hedefi içinde kabul edilebilir toplam başarısızlık veya kesinti payı.
Error budget'ın ne hızla tüketildiğini gösteren oran.
Latency, traffic, errors ve saturation temel gözlem sinyalleri.
Request rate, error rate ve duration ile servis gözlemleme yaklaşımı.
Kaynakları utilization, saturation ve errors ile izleme yaklaşımı.
Servisin temel çalışma durumunu kontrol eden endpoint.
Sürecin canlı olup olmadığını gösterir.
Servisin trafik almaya hazır olup olmadığını gösterir.
Database, Redis ve harici API bağlantılarının durumunu kontrol eder.
Gerçek kullanıcı olmadan belirli akışları periyodik robot testlerle ölçme.
HTTP, TCP veya ping ile servisin erişilebilirliğini kontrol eder.
Gerçek kullanıcı tarayıcılarından performans ve hata verisi toplama.
- APMO
Uygulama performansı, trace, transaction ve hata analiz platformu.
Exception'ları stack trace, kullanıcı ve sürümle gruplayarak izleme.
Benzer stack trace ve hata mesajlarını tek issue altında toplama.
Hataları uygulama sürümü ve deployment ile ilişkilendirme.
Minify frontend hatalarını kaynak koda çevirmek için source map'i hata servisine gönderme.
Birden fazla server ve container logunu merkezi sistemde toplama.
Logları tek arama ve saklama platformunda birleştirme.
Elasticsearch, Logstash ve Kibana tabanlı log sistemi.
- LokiO
Label tabanlı ve Grafana ile entegre log toplama sistemi.
Logların ne kadar süre saklanacağını belirleyen politika.
Log dosyalarını boyut veya zamana göre bölme ve eski kayıtları silme.
Parola, token ve kişisel verinin loglara yazılmaması gereksinimi.
Hassas alanları log çıktısında maskeleme veya kaldırma.
Kritik kullanıcı ve yönetim işlemlerinin güvenilir kayıt geçmişi.
Değiştirilmesi veya silinmesi zor olacak şekilde saklanan audit kayıtları.
Sunucu CPU, RAM, disk, network ve process durumlarını izleme.
İşlemci kapasitesinin kullanılan yüzdesi.
CPU üzerinde çalışan ve bekleyen işlerin zaman ortalaması.
Kullanılan RAM miktarı.
Disk tabanlı sanal bellek kullanım miktarı.
Dosya sistemi doluluk oranı.
Diskin saniyede gerçekleştirdiği okuma/yazma işlemi.
Disk işleminin tamamlanma gecikmesi.
Birim zamanda gönderilen ve alınan veri miktarı.
Gönderilen ağ paketlerinin hedefe ulaşmama oranı.
Aktif ağ veya veritabanı bağlantı sayısı.
Sorgu süresi, bağlantı, lock, cache ve disk davranışını izleme.
Beklenen süreyi aşan veritabanı sorgusu.
Havuzdaki tüm bağlantıların kullanımda olması.
Transaction'ın başka lock'un serbest kalmasını beklemesi.
Replica'nın primary değişikliklerinin gerisinde kalma süresi.
Hit ratio, memory, eviction ve latency ölçümlerini izleme.
Queue depth, lag, failure ve processing duration ölçümleri.
Yeni sürüm sonrası hata, latency ve kaynak değişikliklerini izleme.
Yeni sürüm metriklerini eski sürümle karşılaştırarak güvenli yayın kararı verme.
Hizmetlerin güncel çalışma ve olay durumunu kullanıcılara gösteren sayfa.
Planlı bakımın yapılacağı ve kullanıcılara duyurulan zaman aralığı.
| Kavram | Seviye | Kısa açıklama |
|---|---|---|
| Observability | O | Sistemin dış çıktılarından iç durumunu anlayabilme yeteneği. |
| Monitoring | T | Önceden belirlenmiş metrik ve koşulları sürekli izleme. |
| Logging | T | Uygulama ve sistem olaylarını zaman damgalı kayıt olarak yazma. |
| Metric | T | Zaman içinde ölçülen sayısal sistem değeri. |
| Trace | O | Bir request'in servis ve bileşenler arasındaki uçtan uca yolculuğu. |
| Log Entry | T | Tek bir olayın zaman, seviye ve mesajla kaydı. |
| Timestamp | T | Olayın gerçekleştiği tarih ve saat. |
| Log Level | T | Mesajın önem ve ayrıntı düzeyi. |
| TRACE | O | Çok ayrıntılı akış bilgisi. |
| DEBUG | T | Geliştirme ve teşhis için ayrıntılı bilgi. |
| INFO | T | Normal işleyişte önemli olay. |
| WARN | T | İşlem sürse de dikkat gerektiren olağan dışı durum. |
| ERROR | T | Belirli işlemin başarısız olduğunu gösteren hata. |
| FATAL | T | Uygulamanın çalışmasını sürdüremeyeceği kritik hata. |
| Structured Logging | O | Log alanlarını JSON gibi makine okunabilir anahtar-değer formatında yazma. |
| Unstructured Log | T | Serbest metin biçimindeki log mesajı. |
| Log Context | O | request id, user id, tenant id ve order id gibi olayı anlamlandıran alanlar. |
| Correlation ID | O | Aynı iş akışındaki farklı log ve servis kayıtlarını ilişkilendiren kimlik. |
| Request ID | T | Tek HTTP isteğini loglar boyunca tanımlayan kimlik. |
| Trace ID | O | Dağıtık request'in tüm span'lerini birleştiren kimlik. |
| Span ID | O | Trace içindeki tek operasyon veya servis çağrısını tanımlayan kimlik. |
| Distributed Tracing | İ | Request'in birden fazla servis ve bağımlılıktaki süre ve hatalarını takip etme. |
| Span | O | Trace içindeki başlangıç, bitiş ve attribute taşıyan işlem parçası. |
| OpenTelemetry | O | Trace, metric ve log üretimi/aktarımı için açık gözlemlenebilirlik standardı. |
| Instrumentation | O | Uygulama koduna ölçüm ve trace üretme yeteneği ekleme. |
| Auto Instrumentation | O | Framework ve kütüphaneleri kodu az değiştirerek otomatik izleme. |
| Manual Instrumentation | O | Önemli domain işlemleri için geliştiricinin özel span ve metric eklemesi. |
| Collector | O | Telemetry verisini alıp işleyerek gözlem backend'lerine gönderen servis. |
| Prometheus | O | Zaman serisi metric toplama ve sorgulama sistemi. |
| Exporter | O | Uygulama veya sistem metriklerini Prometheus formatında sunan bileşen. |
| Scrape | O | Prometheus'un metric endpoint'lerini periyodik çekmesi. |
| Time Series | O | Zaman damgasına bağlı sayısal ölçüm dizisi. |
| Counter | T | Yalnızca artan request veya hata sayacı metriği. |
| Gauge | T | CPU veya queue depth gibi artıp azalabilen anlık metrik. |
| Histogram | O | Gözlemleri bucket'lara ayırarak latency dağılımı ölçer. |
| Summary | O | İstemci tarafında quantile ve toplam ölçüm üreten metrik türü. |
| Label | O | Metrikleri method, route veya status gibi boyutlarla ayıran metadata. |
| Cardinality | İ | Metric label kombinasyonlarının benzersiz sayısı. |
| High Cardinality | İ | User id gibi çok fazla benzersiz label nedeniyle metric maliyetini büyüten durum. |
| Grafana | O | Metric, log ve trace verilerini dashboard ve alert'lerle görselleştiren platform. |
| Dashboard | T | Bir servis veya iş akışının önemli grafik ve değerlerini bir arada gösterir. |
| Panel | T | Dashboard içindeki tek grafik, tablo veya sayı. |
| Alert | T | Belirli metric veya log koşulu oluştuğunda bildirim üreten kural. |
| Alert Rule | T | Eşik, süre ve değerlendirme mantığını tanımlayan alarm kuralı. |
| Threshold | T | Alarmın tetiklenmesi için aşılması gereken değer. |
| Alert Fatigue | O | Çok fazla veya kalitesiz alarm nedeniyle önemli uyarıların gözden kaçması. |
| Noise | O | Aksiyon gerektirmeyen tekrar eden alarm veya log bilgisi. |
| Actionable Alert | O | Alıcının ne yapacağını ve etkisini anlayabildiği alarm. |
| Runbook | O | Belirli alarm veya olay için teşhis ve müdahale adımlarını açıklayan doküman. |
| On-call | O | Belirli zaman aralığında production olaylarına müdahale sorumluluğu. |
| Escalation Policy | O | Olay yanıtlanmazsa sıradaki kişi veya ekibe aktarılma kuralı. |
| Incident | T | Hizmet kalitesini veya kullanıcıları etkileyen plansız olay. |
| Incident Response | O | Olayı tespit, sınırlama, düzeltme ve iletişim süreci. |
| Incident Commander | O | Büyük olayda koordinasyon ve karar akışını yöneten kişi. |
| Severity Level | T | Olay etkisini SEV1, SEV2 gibi seviyelerle sınıflandırma. |
| Impact | T | Etkilenen kullanıcı, işlem ve iş değerinin kapsamı. |
| Detection Time | O | Olayın başlaması ile fark edilmesi arasındaki süre. |
| MTTD | O | Olayları tespit etmek için geçen ortalama süre. |
| MTTA | O | Alarmdan birinin olayı kabul etmesine kadar geçen ortalama süre. |
| MTTR | O | Hizmeti normal duruma döndürmek için geçen ortalama süre. |
| Resolution Time | T | Olayın tamamen çözülmesine kadar geçen süre. |
| Postmortem | O | Olayın zaman çizelgesi, nedenleri ve kalıcı aksiyonlarını belgeleyen çalışma. |
| Blameless Postmortem | O | Kişi suçlamak yerine sistem ve süreç iyileştirmesine odaklanan analiz. |
| Root Cause Analysis | O | Olayın temel teknik ve organizasyonel nedenlerini araştırma. |
| Contributing Factor | O | Tek başına kök neden olmayan ancak olay etkisini artıran koşul. |
| Corrective Action | T | Mevcut problemi gidermek için alınan aksiyon. |
| Preventive Action | T | Benzer olayın tekrarını önlemeyi hedefleyen kalıcı aksiyon. |
| SLO | O | Hizmet güvenilirliği için belirlenen ölçülebilir hedef. |
| SLI | O | Availability veya latency gibi hizmet kalitesini ölçen gösterge. |
| SLA | T | Müşteriyle üzerinde anlaşılan hizmet seviyesi ve sonuçları. |
| Availability | T | Hizmetin kullanılabilir olduğu zamanın toplam zamana oranı. |
| Uptime | T | Sistemin kesintisiz çalıştığı süre veya oran. |
| Downtime | T | Hizmetin kullanılamadığı süre. |
| Error Rate | T | Hatalı isteklerin toplam isteklere oranı. |
| Success Rate | T | Başarıyla tamamlanan işlemlerin oranı. |
| Error Budget | İ | SLO hedefi içinde kabul edilebilir toplam başarısızlık veya kesinti payı. |
| Burn Rate | İ | Error budget'ın ne hızla tüketildiğini gösteren oran. |
| Golden Signals | O | Latency, traffic, errors ve saturation temel gözlem sinyalleri. |
| RED Method | O | Request rate, error rate ve duration ile servis gözlemleme yaklaşımı. |
| USE Method | O | Kaynakları utilization, saturation ve errors ile izleme yaklaşımı. |
| Health Check | T | Servisin temel çalışma durumunu kontrol eden endpoint. |
| Liveness | T | Sürecin canlı olup olmadığını gösterir. |
| Readiness | T | Servisin trafik almaya hazır olup olmadığını gösterir. |
| Dependency Health | O | Database, Redis ve harici API bağlantılarının durumunu kontrol eder. |
| Synthetic Monitoring | O | Gerçek kullanıcı olmadan belirli akışları periyodik robot testlerle ölçme. |
| Uptime Monitor | T | HTTP, TCP veya ping ile servisin erişilebilirliğini kontrol eder. |
| Real User Monitoring | O | Gerçek kullanıcı tarayıcılarından performans ve hata verisi toplama. |
| APM | O | Uygulama performansı, trace, transaction ve hata analiz platformu. |
| Error Tracking | T | Exception'ları stack trace, kullanıcı ve sürümle gruplayarak izleme. |
| Error Grouping | O | Benzer stack trace ve hata mesajlarını tek issue altında toplama. |
| Release Tracking | O | Hataları uygulama sürümü ve deployment ile ilişkilendirme. |
| Source Map Upload | O | Minify frontend hatalarını kaynak koda çevirmek için source map'i hata servisine gönderme. |
| Log Aggregation | O | Birden fazla server ve container logunu merkezi sistemde toplama. |
| Centralized Logging | O | Logları tek arama ve saklama platformunda birleştirme. |
| ELK Stack | O | Elasticsearch, Logstash ve Kibana tabanlı log sistemi. |
| Loki | O | Label tabanlı ve Grafana ile entegre log toplama sistemi. |
| Log Retention | T | Logların ne kadar süre saklanacağını belirleyen politika. |
| Log Rotation | T | Log dosyalarını boyut veya zamana göre bölme ve eski kayıtları silme. |
| Sensitive Data Logging | T | Parola, token ve kişisel verinin loglara yazılmaması gereksinimi. |
| Log Redaction | O | Hassas alanları log çıktısında maskeleme veya kaldırma. |
| Audit Log | T | Kritik kullanıcı ve yönetim işlemlerinin güvenilir kayıt geçmişi. |
| Immutable Log | İ | Değiştirilmesi veya silinmesi zor olacak şekilde saklanan audit kayıtları. |
| Infrastructure Monitoring | T | Sunucu CPU, RAM, disk, network ve process durumlarını izleme. |
| CPU Utilization | T | İşlemci kapasitesinin kullanılan yüzdesi. |
| Load Average | O | CPU üzerinde çalışan ve bekleyen işlerin zaman ortalaması. |
| Memory Usage | T | Kullanılan RAM miktarı. |
| Swap Usage | T | Disk tabanlı sanal bellek kullanım miktarı. |
| Disk Usage | T | Dosya sistemi doluluk oranı. |
| Disk IOPS | O | Diskin saniyede gerçekleştirdiği okuma/yazma işlemi. |
| Disk Latency | O | Disk işleminin tamamlanma gecikmesi. |
| Network Throughput | T | Birim zamanda gönderilen ve alınan veri miktarı. |
| Packet Loss | O | Gönderilen ağ paketlerinin hedefe ulaşmama oranı. |
| Connection Count | O | Aktif ağ veya veritabanı bağlantı sayısı. |
| Database Monitoring | T | Sorgu süresi, bağlantı, lock, cache ve disk davranışını izleme. |
| Slow Query | T | Beklenen süreyi aşan veritabanı sorgusu. |
| Connection Pool Saturation | O | Havuzdaki tüm bağlantıların kullanımda olması. |
| Lock Wait | O | Transaction'ın başka lock'un serbest kalmasını beklemesi. |
| Replication Lag | O | Replica'nın primary değişikliklerinin gerisinde kalma süresi. |
| Cache Monitoring | T | Hit ratio, memory, eviction ve latency ölçümlerini izleme. |
| Queue Monitoring | T | Queue depth, lag, failure ve processing duration ölçümleri. |
| Deployment Monitoring | T | Yeni sürüm sonrası hata, latency ve kaynak değişikliklerini izleme. |
| Canary Analysis | İ | Yeni sürüm metriklerini eski sürümle karşılaştırarak güvenli yayın kararı verme. |
| Status Page | T | Hizmetlerin güncel çalışma ve olay durumunu kullanıcılara gösteren sayfa. |
| Maintenance Window | T | Planlı bakımın yapılacağı ve kullanıcılara duyurulan zaman aralığı. |
Bölüm uygulamaları
Bu bölümü bitirmeden önce şunları deneyin veya açıklayın.
- Web, API, PostgreSQL, Redis ve worker için ayrı dashboard ve alert metrikleri tanımlayın.
- Bir ödeme hatası için request id, order id, tenant id ve trace id kullanan structured log örneği hazırlayın.
- SEV1 production olayı için runbook, iletişim akışı ve blameless postmortem şablonu oluşturun.