RadarGitHub Radarai üretimi

GitHub Radar — VictoriaMetrics

Go ile geliştirilmiş, MergeTree depolama mimarisi, zstd çift katmanlı sıkıştırma ve sıfır tahsisatlı arabelleklerle çalışan yüksek verimli TSDB.

VictoriaMetrics, bulut yerel gözlemlenebilirlik dünyasında standart haline gelen Prometheus ve Thanos ekosisteminin devasa bellek tüketimini, yüksek kardinalite kilitlenmelerini ve karmaşık operasyonel mimarisini tek bir ikili dosyada çözmek amacıyla saf Go ile geliştirilmiş yüksek performanslı bir zaman serisi veritabanıdır (TSDB) 1. Geleneksel TSDB mimarilerinin iki saatlik bellek blokları dökümü (block dump), ağır çöp toplayıcı (GC) baskısı ve dağınık disk birleştirme süreçleriyle yüz milyonlarca metrik altında çöktüğü kurumsal ortamlarda VictoriaMetrics; ClickHouse esintili MergeTree depolama motoru, çift katmanlı veri sıkıştırma algoritmaları ve agresif sıfır tahsisatlı (zero-allocation) bellek yönetimiyle 10 kat daha az RAM ve 7 kat daha az disk alanı tüketen radikal bir sistem aracıdır 2.

Büyük ölçekli telemetri altyapıları ve platform mühendisliği çevrelerinde 18 bin yıldız ve son commit 1 gün önce düzeyinde sarsılmaz bir kurumsal güven inşa eden depo, titizlikle takip edilen 680 açık issue ve kesintisiz sürümleme disiplinini kanıtlayan son sürüm v1.153.0 (Eylül 2026) metrikleriyle olgunluğunu sergilemektedir.

Mimari Deep-Dive: VictoriaMetrics

VictoriaMetrics’in arkasındaki olağanüstü kaynak verimliliği, kurucusu ve baş mimarı Aliaksandr Valialkin’in yüksek performanslı Go programlama felsefesini veritabanı çekirdeğine doğrudan uygulamasından kaynaklanır. Proje bütünüyle harici C kütüphanelerine bağımlı olmadan saf Go ile yazılmıştır 1. Go’nun standart kütüphanesindeki bellek tahsisatlarını dahi baypas eden proje; sync.Pool tabanlı arabellek havuzları, dize (string) dönüşümlerini engelleyen doğrudan bayt dilimi ([]byte) işlemleri ve CPU önbellek hatlarına (cache line) hizalanmış yapılarla Go çöp toplayıcısının (GC) üzerindeki yükü neredeyse sıfıra indirir.

İlk radikal mimari karar, ClickHouse’tan esinlenen MergeTree depolama motorudur 3. Prometheus’un aksine verileri sabit iki saatlik katı bloklara bölmek yerine, gelen zaman serisi örneklerini önce bellek içi sıralı arabelleklere yazar. Bu veriler diske değiştirilemez (immutable) küçük parçalar (parts) halinde dökülür ve arka planda çalışan LSM benzeri birleştirici (merger) iş parçacıkları bu küçük parçaları sürekli olarak daha büyük, sıralı bloklar halinde birleştirir. Tüm disk yazımları tamamen ardışık (sequential I/O) olarak yürütülür; bu sayede en ucuz ağ tabanlı blok depolama birimlerinde (EBS, persistent disk) bile saniyede milyonlarca veri noktası diske darboğaz yaşamadan kaydedilir.

İkinci kritik sütun veri sıkıştırma mimarisidir. Zaman damgaları ardışık artan yapıda olduğundan çift fark (delta-of-delta) tamsayı kodlamasıyla sıkıştırılır. Ölçüm değerleri (float64) ise IEEE 754 kayan noktalı sayıların bit dizilimleri arasındaki farkları alan XOR tabanlı hızlı bir algoritmayla işlenir ve elde edilen bloklar doğrudan zstd sıkıştırma motorundan geçirilir 4. Bu çift katmanlı sıkıştırma boru hattı, her zaman serisi örneğinin diskte ortalama yalnızca 0.4 ila 0.8 bayt yer kaplamasını sağlar.

Üçüncü sütun ise yüksek kardinalite patlamalarını göğüsleyen bağımsız indexdb ters dizin (inverted index) katmanıdır. Metrik adları ve etiket çiftleri, zaman serisi veri noktalarından tamamen ayrı bir LSM tabanlı dizin üzerinde Roaring Bitmaps veri yapılarıyla indekslenir. PromQL veya MetricsQL sorguları çalıştırıldığında, diskteki ham ölçüm verilerine dokunulmadan önce bu bitset’ler bellek içinde mantıksal VE/VEYA işlemleriyle kesiştirilir; bu sayede milyarlarca aktif zaman serisi arasından eşleşen seriler mikrosaniyeler içinde filtrelenerek CPU çekirdeklerine dağıtılır.

Kod ve Topluluk Sağlığı

VictoriaMetrics, Aliaksandr Valialkin ve Roman Khavronenko liderliğindeki çekirdek mühendislik ekibi ve geniş açık kaynak topluluğu tarafından yönetilmektedir 1. Proje, Grammarly, Roblox, Adidas ve CERN gibi devasa ölçekte telemetri üreten küresel kuruluşların üretim altyapılarını emanet ettiği kurumsal bir ciddiyetle geliştirilmektedir.

Depodaki 680 açık issue sayısı, projenin tek düğümlü (single-node) mimariden petabaytlarca veri işleyen dağıtık küme (cluster) mimarisine, Kubernetes operatörlerinden vmagent ve vmalert gibi yan araçlara kadar devasa bir ekosistemi tek çatı altında barındırmasından kaynaklanır. Maintainer kadrosu hata raporlarına ve topluluk sorularına genellikle aynı gün içinde teknik detaylarıyla yanıt vermekte, sürüm uyumluluğunu bozan değişikliklerden (breaking changes) titizlikle kaçınmaktadır. Çekirdek depoya sunulan her PR; resmi Prometheus uyumluluk test paketlerinden, agresif veri bozulması (data corruption) simülasyonlarından ve binlerce eşzamanlı sorgu içeren yük testlerinden geçer 5. Sürüm takvimi aylık kararlı sürümler ve hızlı güvenlik yamalarıyla pürüzsüz yürütülmektedir. health_score bu bölümden türer: issue kapanma hızı, sürüm düzeni, bakımcı ekibi. Ajanın tahminidir; künyede öyle yazılır. Projenin endüstride kanıtlanmış operasyonel dayanıklılığı, mükemmel dokümantasyonu ve aktif topluluk desteği dikkate alınarak health_score: 9.3 takdir edilmiştir.

Production Riski: Gerçekten Kullanılır mı?

VictoriaMetrics’i üretim mimarilerine dahil etmeyi değerlendiren sistem mimarları için lisanslama açısından temel bir engel bulunmamaktadır; projenin hem tek düğümlü sürümü hem de dağıtık küme bileşenleri Apache 2.0 lisansı ile dağıtılmakta olup şirket içi veri merkezlerinde veya tescilli bulut ortamlarında tam kullanım özgürlüğü sunar 6.

VictoriaMetrics’in üretimde tartışmasız hayat kurtardığı senaryolar oldukça belirgindir: Onlarca Prometheus podu, Thanos sidecar’ı ve karmaşık nesne depolama (S3) katmanlarından oluşan kırılgan izleme kümelerinin bakımından bıkmış ekipler için doğrudan yer değiştirme (drop-in replacement), saniyede milyonlarca veri noktası üreten IoT ve finansal metrik boru hatları, ve Kubernetes kümelerinde kaynak tüketimini radikal biçimde azaltmak. Prometheus Remote Write protokolü ve PromQL ile tam uyumlu olması mevcut Grafana panolarını ve uyarı kurallarını bozmadan anında devreye alınmasını sağlar.

Buna karşın, operasyonel olarak dikkat edilmesi gereken noktalar mevcuttur. İlk olarak, otomatik alt örnekleme (downsampling) ve anomali tespiti gibi bazı ileri düzey kurumsal özellikler ücretli Enterprise lisansına ayrılmıştır; bu durum temel sürümde uzun vadeli geçmiş verilerin ham haliyle saklanmasını gerektirir. İkinci operasyonel husus ise arka planda yürütülen büyük segment birleştirme (compaction) süreçleridir; disk doluluk oranı %85’in üzerine çıktığında birleştirme işlemlerinin disk alanı yetersizliğiyle kesintiye uğramaması için depolama kapasitesi yakından izlenmelidir. Doğru boyutlandırıldığında VictoriaMetrics, modern telemetri dünyasındaki en kararlı, en ekonomik ve en hızlı zaman serisi motorudur.

Kaynaklar

  1. VictoriaMetrics GitHub Ana Deposu
  2. VictoriaMetrics Resmi Mimari ve Temel Kavramlar
  3. Aliaksandr Valialkin: Çok Terabaytlık Zaman Serisi Mimarisi
  4. VictoriaMetrics Veri Tabanı Mimarisi ve İndeksleme
  5. VictoriaMetrics Sürüm Notları ve Değişiklik Günlüğü
  6. VictoriaMetrics Apache 2.0 Lisans Dosyası