GlitchTip vs Sentry: Hata İzleme Platformu Karşılaştırması
GlitchTip vs Sentry: Hata Izleme Platformu Karsilastirmasi
Production'da bir hata oldu. Kullanici bildirmeden once haberiniz olsa guzel olmaz miydi? Sentry bu isin standardi, neredeyse herkes kullaniyor veya duymus. Ama Sentry'nin self-hosted kurulumu 16GB RAM ve 12+ container istiyor. Kucuk-orta projeler icin bu fazla. GlitchTip tam bu boslugu dolduruyor: Sentry API uyumlu, acik kaynak, hafif ve 1GB RAM ile calisiyor. Bu yazida ikisini projelerimden orneklerle karsilastirdim.
Hata Izleme (Error Tracking) Nedir?
Uygulamanizda bir exception firlatildiginda, error tracking araci bu hatayi otomatik yakalayip merkezi bir panelde gosterir. Sadece hata mesaji degil, stack trace, kullanici bilgisi, tarayici, isletim sistemi, request verisi -- her seyi toplar.
Laravel'de try-catch ile yakalayamayacaginiz veya yakalamak istemediginiz hatalar icin bu araclar hayat kurtarici. 500 hatasi alan bir kullanici size bildirmez, sessizce gider. Ama Sentry veya GlitchTip aninda bildirim gonderir.
Sentry: Endustri Standardi
Sentry 2012'den beri var ve su an en yaygin kullanilan error tracking platformu. Python ile yazilmis, 90'dan fazla dili ve framework'u destekliyor.
Temel Ozellikler
- Error Tracking: Stack trace, breadcrumbs, context bilgisi
- Performance Monitoring: Transaction tracing, database sorgu sureleri
- Session Replay: Kullanicinin ekranini kaydedip hatayi gorsel olarak izleme
- Cron Monitoring: Zamanlanmis gorevlerin calisip calismadigini takip
- Code Profiling: Performans darbogazlarini kod seviyesinde tespit
- Distributed Tracing: Mikroservisler arasi istek takibi
- Alerting: Slack, email, PagerDuty entegrasyonlari
Laravel Entegrasyonu
composer require sentry/sentry-laravel
// .env
SENTRY_LARAVEL_DSN=https://[email protected]/0
// config/sentry.php
return [
'dsn' => env('SENTRY_LARAVEL_DSN'),
'traces_sample_rate' => 0.2, // %20 transaction orneklemesi
'profiles_sample_rate' => 0.1,
];
Kurulum bu kadar. Artisan komutuyla test edebilirsiniz:
php artisan sentry:test
Bu komut bir test exception firlatiyor ve Sentry'de gorunup gorunmedigini kontrol ediyor.
Ozel Hata Yakalama
// app/Exceptions/Handler.php veya bootstrap/app.php (Laravel 11+)
use Sentry\Laravel\Integration;
->withExceptions(function (Exceptions $exceptions) {
Integration::handles($exceptions);
})
// Controller icinde manuel hata raporlama
use function Sentry\captureException;
use function Sentry\captureMessage;
try {
$result = $paymentGateway->charge($amount);
} catch (\Exception $e) {
captureException($e);
// Kullaniciya guzel bir hata mesaji goster
return back()->with('error', 'Odeme islenemedi.');
}
// Ozel mesaj gonderme (exception olmadan)
captureMessage('Stok miktari kritik seviyeye dustu: ' . $product->name);
Breadcrumbs ve Context
use Sentry\State\Scope;
use function Sentry\configureScope;
configureScope(function (Scope $scope): void {
$scope->setUser([
'id' => auth()->id(),
'email' => auth()->user()->email,
]);
$scope->setTag('payment_provider', 'iyzico');
$scope->setExtra('order_id', $order->id);
});
Hata olustugunda Sentry panelinde kullanicinin kim oldugunu, hangi odeme saglayicisini kullandigini ve siparis ID'sini gorebilirsiniz.
Fiyatlandirma
- Developer: Ucretsiz (5K hata/ay, 1 kullanici)
- Team: 26$/ay (50K hata/ay, session replay)
- Business: 80$/ay (100K hata/ay, code profiling)
- Self-hosted: Ucretsiz ama BSL lisansi (rekabetci hosting yasak)
GlitchTip: Hafif Alternatif
GlitchTip, Sentry'nin API'siyle uyumlu acik kaynak bir alternatif. MIT lisansli, yani istediginiz gibi kullanabilirsiniz. Django + Celery ile yazilmis.
Temel Ozellikler
- Error Tracking: Sentry SDK'lariyla tam uyumlu
- Performance Monitoring: Temel transaction takibi
- Uptime Monitoring: Web sitesi erisilebilirlik kontrolu (Sentry'de yok)
- MIT Lisans: Tamamen ozgur, ticari kullanim dahil
- Hafif: 256MB-1GB RAM yeterli
Sentry'de Olup GlitchTip'te Olmayanlar
- Session Replay (kullanici ekran kaydi)
- Cron Monitoring
- Code Profiling
- Distributed Tracing
- Gelismis filtreleme ve arama
GlitchTip'te Olup Sentry'de Olmayanlar
- Uptime Monitoring: Dahili site erisilebilirlik kontrolu
- MIT Lisansi: Gercek anlamda acik kaynak
- Minimal kaynak tuketimi: Ucuz VPS'te calisir
Self-Hosted Kurulum Karsilastirmasi
Iki platform arasindaki en buyuk fark self-hosted kurulumda ortaya cikiyor.
Sentry Self-Hosted
# Sentry icin gereken servisler (12+)
services:
web, worker, cron # Sentry core (3)
postgres # Database
redis # Cache + queue
kafka, zookeeper # Event streaming (2)
clickhouse # Analytics DB
snuba-api, snuba-consumer # Query engine (2+)
relay # Event ingestion
memcached # Additional cache
symbolicator # Stack trace processing
- Minimum RAM: 16GB (resmi onerilen)
- Disk: 50GB+ (ClickHouse cok yer kaplar)
- Container sayisi: 12-20 arasi
- Kurulum:
./install.shile 15-20 dakika - Guncelleme: Bazen breaking change, dikkatli olmak lazim
GlitchTip Self-Hosted
# docker-compose.yml (minimal)
services:
web:
image: glitchtip/glitchtip
ports:
- "8000:8000"
environment:
DATABASE_URL: postgres://postgres:secret@postgres:5432/glitchtip
SECRET_KEY: degistir-bunu-rastgele-uzun-string
PORT: 8000
GLITCHTIP_DOMAIN: https://glitchtip.example.com
DEFAULT_FROM_EMAIL: [email protected]
EMAIL_URL: smtp://user:[email protected]:587
CELERY_WORKER_CONCURRENCY: 2
depends_on:
- postgres
- redis
worker:
image: glitchtip/glitchtip
command: ./bin/run-celery-with-beat.sh
environment:
DATABASE_URL: postgres://postgres:secret@postgres:5432/glitchtip
SECRET_KEY: degistir-bunu-rastgele-uzun-string
depends_on:
- postgres
- redis
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: glitchtip
POSTGRES_PASSWORD: secret
volumes:
- pg-data:/var/lib/postgresql/data
redis:
image: valkey/valkey:7-alpine
volumes:
pg-data:
docker compose up -d
- Minimum RAM: 256MB (minimal), 512MB-1GB (onerilen)
- Disk: 5-10GB yeterli
- Container sayisi: 4
- Kurulum: 5 dakika
- Guncelleme:
docker compose pull && docker compose up -d
Fark dramatik. GlitchTip'i Azure B1s (1 vCPU, 2GB RAM) uzerinde rahatca calistirabilirsiniz. Sentry icin minimum B2ms (2 vCPU, 8GB RAM) lazim.
Laravel ile GlitchTip Entegrasyonu
GlitchTip, Sentry SDK'lariyla uyumlu oldugu icin kurulum neredeyse ayni:
composer require sentry/sentry-laravel
// .env
SENTRY_LARAVEL_DSN=https://[email protected]/1
Tek fark DSN adresi. ingest.sentry.io yerine kendi GlitchTip sunucunuzun adresini yaziyorsunuz. Kod degisikligi sifir.
JavaScript Frontend
<script src="https://browser.sentry-cdn.com/7.x/bundle.min.js"></script>
<script>
Sentry.init({
dsn: "https://[email protected]/2",
tracesSampleRate: 0.2,
});
</script>
Flutter
import 'package:sentry_flutter/sentry_flutter.dart';
await SentryFlutter.init(
(options) {
options.dsn = 'https://[email protected]/3';
options.tracesSampleRate = 0.2;
},
appRunner: () => runApp(MyApp()),
);
Ayni Sentry SDK'lari, farkli DSN. Bu gecis kolayligi GlitchTip'in en buyuk avantaji.
Karsilastirma Tablosu
| Ozellik | Sentry | GlitchTip |
|---|---|---|
| Error Tracking | Tam | Tam |
| Performance Monitoring | Gelismis | Temel |
| Session Replay | Var | Yok |
| Uptime Monitoring | Yok | Var |
| Cron Monitoring | Var | Yok |
| Distributed Tracing | Var | Yok |
| Code Profiling | Var | Yok |
| SDK Uyumu | Kendi SDK'lari | Ayni Sentry SDK'lari |
| Self-hosted RAM | 16GB+ | 256MB-1GB |
| Container sayisi | 12-20 | 4 |
| Lisans | BSL (kisitli) | MIT (ozgur) |
| SaaS ucretsiz plan | 5K event/ay | 1K event/ay |
| SaaS ucretli | 26$/ay'dan | 15$/ay'dan |
| Kurulum suresi | 15-20 dk | 5 dk |
Ne Zaman Sentry, Ne Zaman GlitchTip?
Sentry'yi sec eger:
- Session Replay lazimsa (kullanicinin ne yaptigini gormek)
- Distributed tracing gerekiyorsa (mikroservis mimarisi)
- Buyuk ekip ve karmasik proje yonetiyorsaniz
- SaaS kullanmak istiyorsaniz ve butce varsa
- Code profiling ile performans analizi yapacaksaniz
GlitchTip'i sec eger:
- Self-hosted istiyorsaniz ve sunucu kaynaklari kisitliysa
- MIT lisans onemli ise (ticari kullanim, modifikasyon ozgurlugu)
- Temel error tracking + uptime monitoring yeterliyse
- Butce kisitli ise (ucuz VPS'te calisir)
- Birden fazla kucuk-orta proje izliyorsaniz
- KVKK uyumu icin verilerin Turkiye'de kalmasini istiyorsaniz
Ucuncu Secenek: Bugsink
Arastirma sirasinda Bugsink'e de rastladim. Tek container, SQLite destegi, gunde 1.5 milyon event isleyebiliyor. GlitchTip bile fazla geliyorsa Bugsink en minimal secim. Ama uptime monitoring ve performance tracking yok, sadece error tracking.
Grafana Entegrasyonu
GlitchTip'i Grafana ile entegre edebilirsiniz. Sentry data source olarak ekleyin, GlitchTip URL'ini verin:
Data Source Type: Sentry
URL: https://glitchtip.example.com
Auth Token: (GlitchTip profil sayfasindan)
Organization Slug: your-org
Mevcut Grafana dashboard'larinizda hata istatistiklerini, trend grafikleri ve alert kurallarini gorebilirsiniz. Zaten sunucu monitoring icin Grafana kullaniyorsaniz hata izlemeyi de ayni panele tasimak mantikli.
Sonuc
Sentry endustri standardi ve ozellik olarak rakipsiz. Ama self-hosted kurulumun agir kaynak gereksinimi ve BSL lisansi dezavantaj. GlitchTip ayni SDK'larla calisan, MIT lisansli, 4 container ile kurulabilen pratik bir alternatif. Cogu proje icin GlitchTip'in sundugu error tracking + uptime monitoring yeterli.
Pragmatik yaklasim su olabilir: development ve kucuk projelerde GlitchTip self-hosted ile baslayin. Proje buyudukce ve session replay, distributed tracing gibi gelismis ozellikler gerektiginde Sentry SaaS'a gecin. DSN degistirmek disinda kod degisikligi yok.