Üretim ortamındaki mikroservislerde CPU kilitlenmelerini, bellek sızıntılarını (memory leaks) ve kilit bekleyen goroutine'leri tespit etmek için sürekli kod profilleme (Continuous Profiling) vazgeçilmezdir. Ancak Datadog veya Dynatrace gibi platformlar host başına aylık $40 - $58 ek ücret tahsil eder; 25-50 sunuculuk bir kümede profilleme faturası yılda $12.000 - $30.000 seviyesini aşar. Açık kaynaklı Grafana Pyroscope ve eBPF tabanlı Parca'yı kendi VDS sunucunuzda çalıştırarak; kaynak kod satırlarınızı yabancı bulutlara göndermeden, interaktif alev grafikleri (Flame Graphs) ve %95'in üzerinde net tasarruf elde edin.
version: '3.8'
services:
# Grafana Pyroscope: Sürekli Kod Profilleme Motoru (pprof & eBPF)
pyroscope:
image: grafana/pyroscope:latest
restart: unless-stopped
ports:
- "4040:4040"
volumes:
- pyroscope_data:/var/lib/pyroscope
command:
- "server"
- "-storage-path=/var/lib/pyroscope"
- "-analytics-opt-out=true"
# Grafana: Alev Grafikleri (Flame Graphs) Görselleştirme Arayüzü
grafana:
image: grafana/grafana:latest
restart: unless-stopped
ports:
- "3000:3000"
environment:
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_ROLE=Admin
volumes:
- grafana_data:/var/lib/grafana
depends_on:
- pyroscope
volumes:
pyroscope_data:
grafana_data:Geleneksel gözlemlenebilirlik üçlüsü (Loglar, Metrikler ve Dağıtık İzler - Tracing) size bir HTTP isteğinin neden yavaşladığını söyleyebilir; ancak bu yavaşlığın hangi fonksiyon satırındaki hatalı bir döngüden veya bellek tahsisinden kaynaklandığını gösteremez.
Sürekli profilleme, üretimdeki uygulamanızın çağrı yığınını (call stack) saniyede 100 kez örnekler ve hangi fonksiyonun ne kadar CPU ve RAM tükettiğini Alev Grafikleri (Flame Graphs) ile görselleştirir. Üstelik bu işlem canlı uygulamaya %1'den daha az CPU yükü bindirir.
Pyroscope; Go, Java, Python, Node.js, Ruby, Rust ve .NET için pprof veya eBPF ajanları sunar. Kod satırlarınızı derlemeden veya yeniden başlatmadan doğrudan profiller.
Grafana panolarında bir span (trace) veya log satırına tıklandığında, o isteğin tam olarak hangi satırda ne kadar CPU tükettiği tek tıkla alev grafiğinde açılır.
Şirketinizin tescilli algoritmaları, fonksiyon adları ve bellek yapıları yabancı üçüncü taraf SaaS sunucularına aktarılmaz; kendi VDS diskinizde şifreli kalır.
Pyroscope, toplanan profilleri zaman serisi blokları halinde gruplar ve ZSTD algoritmasıyla sıkıştırır. 30 farklı mikroservisin 1 aylık kesintisiz tam profili yalnızca 10 - 25 GB disk alanı kaplar. Bu sayede 4 vCPU / 8 GB RAM'li tek bir VDS ($24/ay) üzerinde onlarca sunuculuk bir küme yıllarca sıfır ek masrafla profillenebilir.