Observability nedir? Log, metric ve trace arasındaki fark nedir ve her biri ne için kullanılır?

Cevap

Observability, bir sistemin dışarıya verdiği sinyallerden içerideki durumunu anlayabilme yeteneğidir. Monitoring "bilinen sorunları" izlerken, observability "daha önce hiç görmediğiniz" bir sorunun nedenini bulmanızı sağlar. Üç temel sinyal vardır:

SinyalNedirSorusuAraç örnekleri
LogZaman damgalı olay kayıtlarıTam olarak ne oldu?Loki, Elasticsearch/OpenSearch, CloudWatch
MetricZaman içinde toplanmış sayısal değerlerNe kadar, ne sıklıkla, trend ne?Prometheus, Grafana, Datadog
TraceBir isteğin servisler arasındaki yolculuğu (span'lar)Zaman nerede harcandı, hangi servis yavaş?Jaeger, Tempo, Zipkin

Log'lar: structured logging

Düz metin yerine JSON loglayın; böylece alanlara göre filtrelenebilir.

{"ts":"2026-10-22T10:15:02Z","level":"error","service":"order-api",
 "trace_id":"4bf92f3577b34da6a3ce929d0e0e4736","user_id":"u_123",
 "msg":"payment failed","error":"timeout after 2000ms"}
  • Her logda trace_id / correlation id olsun; böylece log ile trace birbirine bağlanır.
  • Parola, token, kart numarası gibi hassas verileri asla loglamayın.

Metric'ler: RED ve USE

  • RED (servisler için): Rate (istek/sn), Errors (hata oranı), Duration (gecikme dağılımı, p50/p95/p99).
  • USE (kaynaklar için): Utilization, Saturation, Errors.
  • Ortalama gecikme yanıltıcıdır; percentile (histogram) kullanın.
  • Metric label'larına user_id gibi yüksek kardinaliteli değer koymayın; Prometheus'u şişirir.

Pratik akış

Alarm metric'ten gelir (hata oranı arttı) → trace ile hangi servis ve hangi çağrının yavaş olduğunu bulursunuz → ilgili log'larda hatanın detayını okursunuz.

Bugün standart yaklaşım, üç sinyali de OpenTelemetry ile üretip istediğiniz backend'e göndermektir.

  1. Distributed tracing nasıl çalışır? Trace context servisler arasında nasıl taşınır ve OpenTelemetry'nin rolü nedir?ZorDocker & DevOpsBackend
  2. Rolling update, blue-green ve canary deployment stratejileri arasındaki farklar nelerdir?OrtaDocker & DevOpsBackend
  3. Ortam değişkenleri ve secret'lar (şifre, API anahtarı) güvenli şekilde nasıl yönetilir?OrtaDocker & DevOpsBackend
  4. CI/CD nedir? Tipik bir backend CI/CD pipeline'ının aşamaları nelerdir?OrtaDocker & DevOpsBackend
  5. İyi bir Dockerfile nasıl yazılır? Multi-stage build ne işe yarar?OrtaDocker & DevOpsBackend
  6. Docker Compose ne işe yarar? Basit bir örnekle açıklayın.KolayDocker & DevOpsBackend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle