Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
6 yazı bulundu #opentelemetry
Job Dashboard, Monitoring ve Alerting: Hangfire Dashboard, Quartz 4 Dashboard ve OpenTelemetry
Backend SERİ 10

Job Dashboard, Monitoring ve Alerting: Hangfire Dashboard, Quartz 4 Dashboard ve OpenTelemetry

Hangfire Dashboard varsayılan olarak yalnız local isteklere açık, ama aynı makinedeki bir proxy'den gelen istek de local sayılıyor: Docker üzerinden gelen istek 200 aldı. Production'da dashboard'u bir authorization policy'ye ve read-only moda bağla; Quartz 4 dashboard'u yetkilendirme olmadan hiç başlamıyor. "Son başarılı çalışma 26 saatten eski" health check'i, Quartz 4'ün OpenTelemetry span ve metric'leri ve JobId taşıyan structured log'lar görünürlüğü tamamlar.

8 Kas 2026 10 dk 1
Mesajlaşmada Observability: OpenTelemetry Trace Context, Queue Depth ve Consumer Lag
Backend SERİ 12

Mesajlaşmada Observability: OpenTelemetry Trace Context, Queue Depth ve Consumer Lag

RabbitMQ.Client 7'nin hazır ActivitySource'unu dinle, Kafka'da traceparent'ı propagator ile header'a kendin yaz; bir siparişin API, RabbitMQ, Billing, Kafka ve Notification yolculuğu tek trace'te beş span olarak görünür. Log scope'unda MessageId ve CorrelationId, messaging.process.duration histogram'ı, kardinalite, queue depth ve Kafka consumer lag ölçümü gerçek çıktılarla.

8 Kas 2026 11 dk 1
.NET 11 ile Caching'de Gelenler: MemoryCache Metric'leri, HybridCache Factory Context ve IOutputCachePolicyProvider
Backend SERİ 10

.NET 11 ile Caching'de Gelenler: MemoryCache Metric'leri, HybridCache Factory Context ve IOutputCachePolicyProvider

.NET 11 caching'e üç şey getiriyor: MemoryCache, TrackStatistics açıkken dotnet.cache.requests, evictions, entries ve estimated_size metric'lerini kendiliğinden yayınlıyor; HybridCache factory'si süreyi değere göre seçebiliyor; IOutputCachePolicyProvider policy'leri çalışma anında çözüyor. Ölçtük: yeni HybridCache overload'u bugünkü paketle atomik değil, 20 soğuk key'de factory 20 yerine 40 kez çalıştı; özel provider ise AddPolicy tanımlarını devreden çıkarıyor.

8 Kas 2026 18 dk 1
Cache'i Ölçmek ve Test Etmek: Hit Ratio, Metric'ler, Bellek Kullanımı ve Tutarlılık Testleri
Backend SERİ 09

Cache'i Ölçmek ve Test Etmek: Hit Ratio, Metric'ler, Bellek Kullanımı ve Tutarlılık Testleri

Cache'in faydası hit ratio'yla değil p95 ve veritabanı yüküyle kanıtlanır: rapor cache'i p95'i 245 ms'den 1,3 ms'ye, 3.001 sorguyu 1'e indirdi; %87 hit ratio'lu kitap cache'i p95'i değiştirmedi ama sorguları %87 azalttı; %16 hit ratio'lu cache kaldırılmalı. .NET 10'da TrackStatistics, Meter ve HybridCache EventSource ile ölçülür; FakeTimeProvider ve Testcontainers testleri tag invalidation'ın diğer sunucuya ulaşmadığını yakaladı.

8 Kas 2026 16 dk 2
Seq ile Structured Log'ları Okumak: Docker Kurulumu, Sorgular, Signal'lar ve Alert'ler
Backend SERİ 05

Seq ile Structured Log'ları Okumak: Docker Kurulumu, Sorgular, Signal'lar ve Alert'ler

Seq'i Docker'da parola ve ayrı ingestion portuyla kuruyor, yalnız Ingest yetkili API key ile Serilog ve OTLP üzerinden log gönderiyoruz. Filtreler, group by ve percentile sorguları, aynı TraceId'deki log ve span'ler, signal, alert ve signal'a bağlı retention gerçek sonuçlarla; 8 hatanın neden 16 event olduğu ve OTLP'deki ERROR seviyesi tuzağı dahil.

8 Kas 2026 12 dk 1
Serilog Sink'leri: Console, File, Seq ve OpenTelemetry — Async, Batching ve Kayıp Log
Backend SERİ 04

Serilog Sink'leri: Console, File, Seq ve OpenTelemetry — Async, Batching ve Kayıp Log

Container'da log stdout'a compact JSON olarak yazılır; dosya gerekiyorsa rolling ve retention açıkça ayarlanır. Serilog 4'ün core batching'i ve async wrapper, yavaş bir sink karşısında ya event atar ya uygulamayı bekletir: 2.000 event'ten 101'i ulaştı ya da döngü 2,4 saniye sürdü. SelfLog, OTLP'ye çıkış ve sink bazında seviye ayırmak.

8 Kas 2026 11 dk 2
Blog Haritası